create table testdb.testtable1(
uuid string,
number int,
name string,
sex string
)distribute by hash(uuid) into 3 buckets, //利用哈希根据uuid分成三个桶
Range (number) split rows(('10001'),('10002'),('10003')) //利用number进行分区
TABLEPROPERTIES(
'storage_handler' = 'com.cloudera.kudu.hive.KuduStorageHandler',
'kudu.table_name' = 'testtable1',
'kudu.master_addresses' = 'master:7051',
'kudu.key_columns' = 'uuid' //指定主键
)
java kudu是什么,让我们一起了解一下?
kudu是一个与hbase类似的列式存储分布式数据库,虽不及HDFS批处理快,也不及HBase随机读写能力强,但是比HBase批处理快(适用于OLAP的分析场景),而且比HDFS随机读写能力强(适用于实时写入或者更新的场景)。
kudu的工作机制是怎样的?
1、kudu主要角色分为master与tserver。
2、master主要负责:管理元数据信息,监听server,当server宕机后负责tablet的重分配。
3、tserver主要负责tablet的存储与和数据的增删改查。
kudu的详细 *** 作步骤解析如下:
1、客户端master请求查询表指定数据。
2、master对请求进行校验,校验表是否存在,schema中是否存在指定查询的字段,主键是否存在。
3、master通过查询catalog Table返回表,将tablet对应的tserver信息、tserver状态等元数据信息返回给client。
4、client与tserver建立连接,通过metaData找到primary key对应的RowSet。
5、首先加载RowSet内存中MemRowSet与DeltMemStore中的数据。
6、然后加载磁盘中的数据,也就是DiskRowSet中的BaseData与DeltFile中的数据。
7、返回数据给Client。
8、继续4-7步骤,直到拿到所有数据返回给client。
Kudu之java的 *** 作是怎样的?
示例代码如下: org.apache.kudu kudu-client ${kudu.version} test--> org.apache.kudukudu-client-tools${kudu.version}
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)