【问题标题】:HBase composite row key formatHBase 复合行键格式
【发布时间】:2017-10-30 14:48:40
【问题描述】:

我正在尝试将一些大型 .csv 文件导入 HBase(总计 >1TB)。数据看起来像来自关系数据库的转储,但没有 UID。我也不想导入所有列。我决定我需要先运行一个自定义 MapReduce 作业,以使它们成为所需的格式(选择列 + 生成 UID),以便我可以使用标准的 hbase importtsv 批量导入来导入它们。

我的问题:我可以使用 MapReduce 创建自己的复合行键,例如 storeID:year:UID,然后将其提供给 tsv 导入吗?所以说,我的数据看起来像这样:

row_key | price | quantity | item_id
A:2012:1|  0.99 |        1 |     001
A:2012:2|  0.99 |        2 |     012
B:2013:1|  0.99 |        1 |     004

据我了解,HBase 将所有内容都存储为字节,时间戳除外。它会理解这是一个复合键吗?

感谢任何提示!

【问题讨论】:

    标签: csv hbase bulkinsert import-csv


    【解决方案1】:

    我在Cloudera问过同样的问题,答案可以在here.找到

    基本上,答案是肯定的,并且不需要分隔符。我使用 MapReduce 作业将数据转换为以下格式:

    A2012:1,0.99,1,001 A2012:2,0.99,2,012

    使用 importtsv 和 completebulkload,然后将数据正确加载到正确的 HBase 区域。我使用 storeID (A,B,C,...) 预拆分表。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多