189 8069 5689

HBase之HFileOutputFormat-创新互联

hadoop mr 输出需要导入hbase的话最好先输出成HFile格式, 再导入到HBase,因为HFile是HBase的内部存储格式, 所以导入效率很高,下面是一个示例
1. 创建HBase表t1

成都创新互联公司,专注为中小企业提供官网建设、营销型网站制作、响应式网站开发、展示型成都网站设计、做网站、成都外贸网站建设公司等服务,帮助中小企业通过网站体现价值、有效益。帮助企业快速建站、解决网站建设与网站营销推广问题。
  1. hbase(main):157:0* create 't1','f1' 
  2. >

2.写MR作业
HBaseHFileMapper.java

  1. package com.test.hfile; 
  2. immutableBytesWritablenew

HBaseHFileReducer.java

  1. package com.test.hfile; 
  2. value""
  3. valuevalues
  4. kvcreateKeyValue
  5. // str格式为row:family:qualifier:value 简单模拟下
  6. strstrs
  7. <4
  8. rowstrs
  9. familystrs
  10. qualifierstrs
  11. valuestrs

HbaseHFileDriver.java

  1. package com.test.hfile; 
  2. confnew
  3. otherArgsnew
  4. jobnew

  5. /home/yinjie/input")); 
  6. /home/yinjie/output")); 
  7. HBASE_CONFIGnew
  8. cfgnew
  9. tableName"t1"
  10. htablenew

/home/yinjie/input目录下有一个hbasedata.txt文件,内容为

  1. [root@localhost input]# cat hbasedata.txt  

将作业打包,我的到处路径为/home/yinjie/job/hbasetest.jar
提交作业到hadoop运行:

  1. [root@localhost job]# hadoop jar /home/yinjie/job/hbasetest.jar com.test.hfile.HbaseHFileDriver -libjars /home/yinjie/hbase-0.90.3/hbase-0.90.3.jar 

作业运行完毕后查看下输出目录:

  1. [root@localhost input]# hadoop fs -ls /home/yinjie/output 

OK, 已经生成以列族f1命名的文件夹了。
接下去使用Bulk Load将数据导入到HBbase

  1. [root@localhost job]# hadoop jar /home/yinjie/hbase-0.90.3/hbase-0.90.3.jar completebulkload /home/yinjie/output t1 

导入完毕,查询hbase表t1进行验证

  1. hbase(main):166:0>
  2. columnf1timestamp1314591150788valuevalue1
  3. columnf1timestamp1314591150814valuevalue2
  4. columnf1timestamp1314591150815valuevalue3

数据已经导入!

另外有需要云服务器可以了解下创新互联scvps.cn,海内外云服务器15元起步,三天无理由+7*72小时售后在线,公司持有idc许可证,提供“云服务器、裸金属服务器、高防服务器、香港服务器、美国服务器、虚拟主机、免备案服务器”等云主机租用服务以及企业上云的综合解决方案,具有“安全稳定、简单易用、服务可用性高、性价比高”等特点与优势,专为企业上云打造定制,能够满足用户丰富、多元化的应用场景需求。


网站名称:HBase之HFileOutputFormat-创新互联
文章转载:http://cdxtjz.cn/article/ehpji.html

其他资讯