使用hbase mapreduce将文件名作为行键插入

nwlls2ji  于 2021-05-29  发布在  Hadoop
关注(0)|答案(4)|浏览(342)

使用javaapi,我正在尝试 Put() hbase 1.1.x中的某些文件的内容。为此,我创建了wholefileinput类(参考:在hadoop mapreduce中使用wholefileinputformat仍然会导致mapper一次处理一行),以使mapreduce读取整个文件,而不是一行。但不幸的是,我不知道如何从给定的文件名形成我的rowkey。
例子:
输入:
文件-123.txt
文件-524.txt
文件-9577.txt
...
文件-“anothernumber”.txt
我的hbase表上的结果:

6bc51xsx

6bc51xsx1#

你的

rowkey

可能是这样

rowkey  = prefix + (filenamepart or full file name) + Murmurhash(fileContent)

其中前缀可以介于您在表创建时所做的预分裂之间。
例如:

create 'tableName', {NAME => 'colFam', VERSIONS => 2, COMPRESSION => 'SNAPPY'}, 
    {SPLITS => ['0','1','2','3','4','5','6','7']}

前缀可以是在预拆分范围之间生成的任意随机id。
如果数据增加,这种行键也可以避免热点数据将分布在区域服务器上。

nnsrf1az

nnsrf1az2#

“第二个文件的内容”
…等等
如果有人已经面对这种情况来帮助我
提前谢谢。

nhaq1z21

nhaq1z214#

-----“第一个文件的内容”
524

相关问题