将数据加载到hbase中

时间:2012-04-27 06:28:41

标签: hbase

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

2 个答案:

答案 0 :(得分:2)

您要插入hbase表的数据应该是字节。因此,即使它是XML或JSON,您也应该将它们转换为字节。从hbase表中检索数据时应该应用反向逻辑。包含转换逻辑的Utility类将完成这项工作。

答案 1 :(得分:0)

当您想要将数据存储在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);