本篇内容介绍了“hbase中怎么将已知表移植到另一张表中”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!
将已经存在某张表,比如 blog,将此表中的数据“移植”到另外一张新表中。
/*将hbase中一张表的数据移植到另一张表中。/publicclasshbaseandmapreduce4{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(hbaseandmapreduce4.class);//实例化scan对象。scanscan=newscan();scan.addcolumn(bytes.tobytes(\”article\”),bytes.tobytes(\”tags\”));scan.addcolumn(bytes.tobytes(\”author\”),bytes.tobytes(\”nickname\”));tablemapreduceutil.inittablemapperjob(\”blog\”,scan,findfriendmapper.class,immutablebyteswritable.class,immutablebyteswritable.class,job);tablemapreduceutil.inittablereducerjob(\”friend02\”,findfriendreducer.class,job);checktable(conf);returnjob.waitforcompletion(true)?0:1;}privatestaticvoidchecktable(configurationconf)throwsexception{connectioncon=connectionfactory.createconnection(conf);adminadmin=con.getadmin();tablenametn=tablename.valueof(\”friend02\”);if(!admin.tableexists(tn)){htabledescriptorhtd=newhtabledescriptor(tn);hcolumndescriptorhcd=newhcolumndescriptor(\”person\”);htd.addfamily(hcd);admin.createtable(htd);system.out.println(\”表不存在,新创建表成功….\”);}}publicstaticclassfindfriendmapperextendstablemapper<immutablebyteswritable,immutablebyteswritable>{@override//key是hbase中的行键//value是hbase中的所行键的所有数据protectedvoidmap(immutablebyteswritablekey,resultvalue,mapper<immutablebyteswritable,result,immutablebyteswritable,immutablebyteswritable>.contextcontext)throwsioexception,interruptedexception{immutablebyteswritablev=null;string[]kstrs=null;list<cell>cs=value.listcells();for(cellcell:cs){if(\”tags\”.equals(bytes.tostring(cellutil.clonequalifier(cell)))){kstrs=bytes.tostring(cellutil.clonevalue(cell)).split(\”,\”);}elseif(\”nickname\”.equals(bytes.tostring(cellutil.clonequalifier(cell)))){v=newimmutablebyteswritable(cellutil.clonevalue(cell));}}for(stringkstr:kstrs){context.write(newimmutablebyteswritable(bytes.tobytes(kstr.tolowercase())),v);}}}publicstaticclassfindfriendreducerextendstablereducer<immutablebyteswritable,immutablebyteswritable,immutablebyteswritable>{@overrideprotectedvoidreduce(immutablebyteswritablekey,iterable<immutablebyteswritable>values,reducer<immutablebyteswritable,immutablebyteswritable,immutablebyteswritable,mutation>.contextcontext)throwsioexception,interruptedexception{system.out.println(\”key—>\” key.get());putput=newput(key.get());stringbuildervstr=newstringbuilder();for(immutablebyteswritablevalue:values){system.out.println(\”value–>\” value.get());vstr.append((vstr.length()>0?\”,\”:\”\”) bytes.tostring(value.get()));}put.addcolumn(bytes.tobytes(\”person\”),bytes.tobytes(\”nickname\”),bytes.tobytes(vstr.tostring()));context.write(key,put);}}}
“hbase中怎么将已知表移植到另一张表中”的内容就介绍到这里了,感谢大家的阅读。如果想了解更多行业相关的知识可以关注西部数码网站,小编将为大家输出更多高质量的实用文章!
怎么做网页才能避免各类问题图文详解怎样压缩照片大小 示范压缩照片大小的方法百度云服务器有什么作用是什么低价的云服务器今日价格行情云南web服务器托管服务器京东云携手玉溪共建新经济产业园,打造“互联网 ”产业品牌示范样板请帮我看下我们的域名备案有什么问题吗腾讯云南京节点高防服务器