【问题标题】:Load data into hbase将数据加载到 hbase
【发布时间】:2012-04-27 06:28:40
【问题描述】:

如何将任意格式的数据(如:json、xml等)加载到hbase表中?是否有可以在job config(java)中设置的特定输出格式,以便任何形式的数据都可以被加载到 hbase 中还是有任何应用程序可以在内部将任何形式的数据加载到 hbase 中?

【问题讨论】:

    标签: hbase


    【解决方案1】:

    你要插入到 hbase 表的数据应该是以字节为单位的。所以,即使是 XML 或 JSON,你也应该将其转换为字节。从 hbase 表中检索数据时应应用反向逻辑。包含转换逻辑的实用程序类将完成这项工作。

    【讨论】:

      【解决方案2】:

      当您想将数据存储在 HBase 中时,您需要做出一些额外的选择,而不仅仅是一个文件。例如,您需要确定键是什么,您将拥有哪些列族,它们的特征(例如,压缩、使用 TTL 等)以及是否将所有输入存储在单个列中,或者解析它并将片段存储在不同的列中列。

      这意味着您必须在存储数据之前进行一些处理,而不仅仅是作业配置。

      也就是说,当您想要创建一个将写入 HBase 的作业时,您可以通过 TableMapReduceUtil 告诉它涉及哪些表/表 如:

          Job job = new Job(conf, "My Job");
          job.setJarByClass(Mymapred.class);
      
          Scan scan = new Scan();
          // set the scan parameters ..
      
          TableMapReduceUtil.initTableMapperJob(
                  INPUT_TABLE_NAME,
                  scan,
                  MyMapper.class,Text.class,Result.class,
                  job);
      
          TableMapReduceUtil.initTableReducerJob(
                  OUTPUT_TABLE_NAME,
                  MyReducer.class,
                  job);
      

      【讨论】:

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