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

本文共 1762 字,大约阅读时间需要 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_tableSTORED AS KUDUTBLPROPERTIES ('kudu.table_name' = 'my_kudu_table');

4.2 创建内部表

  • 创建Impala内部表,可参考以下模板:
CREATE TABLE testinkudu (  name string,  age int,  primary key (name))PARTITION BY HASH (name)PARTITIONS 8STORED 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 8stored 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实现查找second Largest Element第二大元素算法(附完整源码)
查看>>
Objective-C实现查找整数数组中给定的最小数字算法(附完整源码)
查看>>
Objective-C实现查找给定节点数的树中可能的二叉搜索树的数量树算法(附完整源码)
查看>>
Objective-C实现查找链表的中间元素算法(附完整源码)
查看>>
Objective-C实现样条插值(附完整源码)
查看>>
Objective-C实现根据cpu和磁盘序列号生成注册码( 附完整源码)
查看>>
Objective-C实现格雷码序列算法(附完整源码)
查看>>
Objective-C实现桥接模式(附完整源码)
查看>>
Objective-C实现检查一个数字是否可以被另一个数字整除算法(附完整源码)
查看>>
Objective-C实现检查一年是否是闰年算法 (附完整源码)
查看>>
Objective-C实现检查三个点在 3D 中是否共线算法(附完整源码)
查看>>
Objective-C实现检查字符串是否包含字母表中所有字母的算法(附完整源码)
查看>>
Objective-C实现检查字符是否为字母算法(附完整源码)
查看>>
Objective-C实现检查数字是否为偶数算法(附完整源码)
查看>>
Objective-C实现检查数字是否为奇数算法(附完整源码)
查看>>
Objective-C实现检查给定图中是否存在循环算法(附完整源码)
查看>>
Objective-C实现检查给定字符串是否在camelCase中算法(附完整源码)
查看>>