189 8069 5689

HBase中怎么把数据写到HDFS文件中

这篇文章主要讲解了“HBase中怎么把数据写到HDFS文件中”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“HBase中怎么把数据写到HDFS文件中”吧!

河南网站制作公司哪家好,找创新互联!从网页设计、网站建设、微信开发、APP开发、成都响应式网站建设公司等网站项目制作,到程序开发,运营维护。创新互联公司2013年成立到现在10年的时间,我们拥有了丰富的建站经验和运维经验,来保证我们的工作的顺利进行。专注于网站建设就选创新互联

从HBase中选定某张表,比如blog,然后限定表中的某些列,比如昵称nickname,标签tags,将这些列的数据内容写入到HDFS文件中去。

/***选定HBase中的某张表,限定列,然后将其内容数据写入到HDFS文件中。**/publicclassHBaseAndMapReduce2{publicstaticvoidmain(String[]args)throwsException{System.exit(run());}publicstaticintrun()throwsException{Configurationconf=newConfiguration();conf=HBaseConfiguration.create(conf);conf.set("hbase.zookeeper.quorum","192.168.226.129");Jobjob=Job.getInstance(conf,"findFriend");job.setJarByClass(HBaseAndMapReduce2.class);Scanscan=newScan();//取对业务有用的数据tags,nicknamescan.addColumn(Bytes.toBytes("article"),Bytes.toBytes("tags"));scan.addColumn(Bytes.toBytes("author"),Bytes.toBytes("nickname"));//ImmutableBytesWritable来自hbase数据的类型/***publicstaticvoidinitTableMapperJob(Stringtable,Scanscan,*Classmapper,*ClassoutputKeyClass,*ClassoutputValueClass,Jobjob)**///确保blog表存在,且表结构与本文一样。TableMapReduceUtil.initTableMapperJob("blog",scan,FindFriendMapper.class,Text.class,Text.class,job);DateFormatdf=newSimpleDateFormat("yyyyMMddHHmmssS");FileOutputFormat.setOutputPath(job,newPath("hdfs://192.168.226.129:9000/hbasemapreduce1/"+df.format(newDate())));job.setReducerClass(FindFriendReducer.class);returnjob.waitForCompletion(true)?0:1;}//输入输出的键值publicstaticclassFindFriendMapperextendsTableMapper{//key是hbase中的行键//value是hbase中的所行键的所有数据@Overrideprotectedvoidmap(ImmutableBytesWritablekey,Resultvalue,Mapper.Contextcontext)throwsIOException,InterruptedException{Textv=null;String[]kStrs=null;Listcs=value.listCells();for(Cellcell:cs){System.out.println("Cell--->:"+cell);if("tags".equals(Bytes.toString(CellUtil.cloneQualifier(cell)))){kStrs=Bytes.toString(CellUtil.cloneValue(cell)).split(",");}elseif("nickname".equals(Bytes.toString(CellUtil.cloneQualifier(cell)))){v=newText(CellUtil.cloneValue(cell));}}for(StringkStr:kStrs){context.write(newText(kStr.toLowerCase()),v);}}}publicstaticclassFindFriendReducerextendsReducer{@Overrideprotectedvoidreduce(Textkey,Iterablevalues,Reducer.Contextcontext)throwsIOException,InterruptedException{System.out.println("key--->"+key);StringBuildersb=newStringBuilder();for(Texttext:values){System.out.println("value-->"+text);sb.append((sb.length()>0?",":"")+text.toString());}context.write(key,newText(sb.toString()));}}}

输出结构:

hadoopBerg-OSChina,BergBerghbaseOSChina,BergBergzookeeperOSChina,BergBerg

感谢各位的阅读,以上就是“HBase中怎么把数据写到HDFS文件中”的内容了,经过本文的学习后,相信大家对HBase中怎么把数据写到HDFS文件中这一问题有了更深刻的体会,具体使用情况还需要大家实践验证。这里是箭头云,小编将为大家推送更多相关知识点的文章,欢迎关注!


分享标题:HBase中怎么把数据写到HDFS文件中
文章URL:http://cdxtjz.com/article/chsehe.html

其他资讯