2012-04-27 44 views
1

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

回答

2

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

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);