博客
关于我
kudu使用方法
阅读量:652 次
发布时间:2019-03-15

本文共 1790 字,大约阅读时间需要 5 分钟。

Kudu技术文档

1. Kudu使用方法

Kudu是一款分布式键值存储系统,可通过多种方式进行操作。

1.1 常用客户端工具

  • Java client:通过Java客户端绑定并编写应用程序。
  • C++ client:通过C++客户端进行操作。
  • Python client:通过Python客户端实现数据操作。

1.2 集成与交互

  • Spark集成:使用kudu-spark包将Spark与Kudu结合,编写Spark应用程序进行操作。
  • Impala交互式操作:Impala版本2.8及以上已集成Kudu支持,可通过Impala Shell进行交互式操作。

2. 配置与环境要求

  • Impala版本要求:安装Impala 2.8及以上版本。
  • 依赖安装:确保已安装Hive,并使用其Metastore服务存储Impala元数据。
  • Hadoop环境:由于Impala依赖Hadoop,需确保基础镜像和配置正确。

3. Kudu与Impala的联通配置

  • 配置说明:Impala在默认配置文件/etc/default/impala中,添加参数-kudu_master_hosts指定Kudu主节点地址。
  • 示例配置:如将kudu_master_hosts设置为slave217:7051

4. 数据表管理

4.1 创建外部表

  • 使用Impala创建外部表,将Kudu表映射到Impala中,可参考以下命令:
CREATE EXTERNAL TABLE my_mapping_table
STORED AS KUDU
TBLPROPERTIES ('kudu.table_name' = 'my_kudu_table');

4.2 创建内部表

  • 创建Impala内部表,可参考以下模板:
CREATE TABLE testinkudu (
name string,
age int,
primary key (name)
)
PARTITION BY HASH (name)
PARTITIONS 8
STORED AS KUDU [AS SELECT * FROM OTHER_TABLE];
  • 新表可通过Impala UI查看分区信息。

5. 分区策略

  • 基于 HASH的分区
    • 将主键字段的值映射到分区,分区个数需在建表时指定,如下示例:
    create table testinkudu (
    name string,
    age int,
    primary key (name)
    )
    partition by hash (name)
    partitions 8
    stored as kudu;
  • 基于 RANGE的分区
    • 根据主键范围划分分区,需在表定义中明确各区间值。示例:
    create table testinkudu2 (
    classes int,
    name string,
    age int,
    primary key (classes, name)
    )
    partition by range (classes) (
    partition value = 1,
    partition value = 2,
    partition value =3,
    partition value =4
    )
    stored as kudu;
  • 组合分区:可同时使用HASH和RANGE策略,详细操作方法类似。

6. 数据操作

6.1 插入数据

  • 单行录入
insert into testinkudu values ('a', 12);
  • 多行录入
insert into testinkudu values ('a', 12), ('b', 13), ('c', 14);
  • 从其他表录入
insert into testinkudu select * from other_table;

6.2 更新操作

  • 更新操作支持标准SQL语法,但不得修改主键值。

6.3 插入或更新

-UPSERT语法支持,若主键已存在则执行UPDATE,否则执行INSERT。

6.4 删除操作

-支持标准SQL删除语法,可按主键或全表删除。

本文为Kudu数据存储管理的基础指南,涵盖创建、管理及数据操作等内容,帮助用户高效使用Kudu进行数据存储和处理。

转载地址:http://smxlz.baihongyu.com/

你可能感兴趣的文章
Objective-C实现拓扑排序算法(附完整源码)
查看>>
Objective-C实现拦截输入法(附完整源码)
查看>>
Objective-C实现括号匹配(附完整源码)
查看>>
Objective-C实现拷贝二进制文件(附完整源码)
查看>>
Objective-C实现指定内存空间获取时间的函数(附完整源码)
查看>>
Objective-C实现指定点 x 处计算多项式 f(x) 并返回值算法(附完整源码)
查看>>
Objective-C实现按位倒序(附完整源码)
查看>>
Objective-C实现按位的isPowerOfTwo算法(附完整源码)
查看>>
Objective-C实现按位运算将两个有符号数相乘multiply算法(附完整源码)
查看>>
Objective-C实现按位运算符乘以无符号数multiplyUnsigned算法(附完整源码)
查看>>
Objective-C实现按字典顺序查找给定字符串的所有不同的非空子序列算法(附完整源码)
查看>>
Objective-C实现排队叫号系统(附完整源码)
查看>>
Objective-C实现控制NRP8S功率计读取功率 (附完整源码)
查看>>
Objective-C实现控制程控电源2306读取电流 (附完整源码)
查看>>
Objective-C实现插值查找算法(附完整源码)
查看>>
Objective-C实现摄氏温度和华氏温度互转(附完整源码)
查看>>
Objective-C实现播放器(附完整源码)
查看>>
Objective-C实现操作MySQL(附完整源码)
查看>>
Objective-C实现操作注册表 (附完整源码)
查看>>
Objective-C实现攀登 n 级楼梯的不同方式算法(附完整源码)
查看>>