Hadoop 将键值对数据批量加载到HBASE中
我正在评估HBASE是否能够处理每行具有可变列数的非常广泛的数据集。在原始形式中,“我的数据”有一个变量列表,其中包含每行的参数名称和值。在其转换形式中,它以键值对的形式提供 我想将此数据加载到HBASE中。将经过处理的键值对数据转换为单独的“put”语句以获取数据非常容易。然而,我需要大量加载,因为我有1000个列和数百万行,导致数十亿个单独的键值对,需要数十亿个“put”语句。此外,列(a、b、c、d等)的列表在时间之前并不完全已知。到目前为止,我调查了以下选项:Hadoop 将键值对数据批量加载到HBASE中,hadoop,hbase,bigdata,nosql,Hadoop,Hbase,Bigdata,Nosql,我正在评估HBASE是否能够处理每行具有可变列数的非常广泛的数据集。在原始形式中,“我的数据”有一个变量列表,其中包含每行的参数名称和值。在其转换形式中,它以键值对的形式提供 我想将此数据加载到HBASE中。将经过处理的键值对数据转换为单独的“put”语句以获取数据非常容易。然而,我需要大量加载,因为我有1000个列和数百万行,导致数十亿个单独的键值对,需要数十亿个“put”语句。此外,列(a、b、c、d等)的列表在时间之前并不完全已知。到目前为止,我调查了以下选项: importtsv:无法
- importtsv:无法使用,因为这要求数据在导入固定的已知列集之前从行到列进行数据透视
- 配置单元生成HFile:此选项也要求提前指定列名,并将配置单元表中的每一列映射到hbase中的一列
rowkey1, {a:a1, b:b1}
rowkey2, {a:a2, c:c2}
rowkey3, {a:a3, b:b3, c:c3, d:d3}
rowkey1, a, a1
rowkey1, b, b1
rowkey2, a, a2
rowkey2, c, c2
rowkey3, a, a3
rowkey3, b, b3
rowkey3, c, c3
rowkey3, d, d3
处理后的数据格式:
rowkey1, {a:a1, b:b1}
rowkey2, {a:a2, c:c2}
rowkey3, {a:a3, b:b3, c:c3, d:d3}
rowkey1, a, a1
rowkey1, b, b1
rowkey2, a, a2
rowkey2, c, c2
rowkey3, a, a3
rowkey3, b, b3
rowkey3, c, c3
rowkey3, d, d3
您几乎肯定希望使用客户M/R作业+增量加载(也称为批量加载) 一般程序将是:
总的来说,我建议大家看看这一点,它似乎涵盖了流程的基本知识。您几乎肯定希望使用客户M/R作业+增量加载(也称为批量加载) 一般程序将是: