habse与hdfs 数据之间的相互转换

MapReduce功能实现系列:

MapReduce功能实现一---Hbase和Hdfs之间数据相互转换

MapReduce功能实现二---排序

MapReduce功能实现三---Top N

MapReduce功能实现四---小综合(从hbase中读取数据统计并在hdfs中降序输出Top 3)

MapReduce功能实现五---去重(Distinct)、计数(Count)

MapReduce功能实现六---最大值(Max)、求和(Sum)、平均值(Avg)

MapReduce功能实现七---小综合(多个job串行处理计算平均值)

MapReduce功能实现八---分区(Partition)

MapReduce功能实现九---Pv、Uv

MapReduce功能实现十---倒排索引(Inverted Index)

MapReduce功能实现十一---join

一、从Hbase表1中读取数据再把统计结果存到表2

在Hbase中建立相应的表1:

create'hello','cf'

put'hello','1','cf:hui','hello world'

put'hello','2','cf:hui','hello hadoop'

put'hello','3','cf:hui','hello hive'

put'hello','4','cf:hui','hello hadoop'

put'hello','5','cf:hui','hello world'

put'hello','6','cf:hui','hello world'

java代码:

importjava.io.IOException;

importjava.util.Iterator;

importorg.apache.hadoop.conf.Configuration;

importorg.apache.hadoop.hbase.HBaseConfiguration;

importorg.apache.hadoop.hbase.HColumnDescriptor;

importorg.apache.hadoop.hbase.HTableDescriptor;

importorg.apache.hadoop.hbase.client.HBaseAdmin;

importorg.apache.hadoop.hbase.client.Put;

importorg.apache.hadoop.hbase.client.Result;

importorg.apache.hadoop.hbase.client.Scan;

importorg.apache.hadoop.hbase.io.ImmutableBytesWritable;

importorg.apache.hadoop.hbase.mapreduce.TableMapReduceUtil;

importorg.apache.hadoop.hbase.mapreduce.TableMapper;

importorg.apache.hadoop.hbase.mapreduce.TableReducer;

importorg.apache.hadoop.hbase.util.Bytes;

importorg.apache.hadoop.io.IntWritable;

importorg.apache.hadoop.io.NullWritable;

importorg.apache.hadoop.io.Text;

importorg.apache.hadoop.mapreduce.Job;

publicclassHBaseToHbase{

publicstaticvoidmain(String[] args)throwsIOException, ClassNotFoundException, InterruptedException{

String hbaseTableName1 ="hello";

String hbaseTableName2 ="mytb2";


prepareTB2(hbaseTableName2); 


Configuration conf =newConfiguration();


Job job = Job.getInstance(conf); 

job.setJarByClass(HBaseToHbase.class); 

job.setJobName("mrreadwritehbase");


Scan scan =newScan();

scan.setCaching(500);

scan.setCacheBlocks(false);


TableMapReduceUtil.initTableMapperJob(hbaseTableName1, scan, doMapper.class, Text.class, IntWritable.class, job); 

TableMapReduceUtil.initTableReducerJob(hbaseTableName2, doReducer.class, job); 

System.exit(job.waitForCompletion(true) ?1:0);


publicstaticclassdoMapperextendsTableMapper{

privatefinalstaticIntWritable one =newIntWritable(1);

@Override

protectedvoidmap(ImmutableBytesWritable key, Result value, Context context)throwsIOException, InterruptedException{

String rowValue = Bytes.toString(value.list().get(0).getValue());

context.write(newText(rowValue), one);


publicstaticclassdoReducerextendsTableReducer{

@Override

protectedvoidreduce(Text key, Iterable values, Context context)throwsIOException, InterruptedException{

System.out.println(key.toString()); 

intsum =0;

Iterator haha = values.iterator(); 

while(haha.hasNext()) {

sum += haha.next().get(); 

Put put =newPut(Bytes.toBytes(key.toString()));

put.add(Bytes.toBytes("mycolumnfamily"), Bytes.toBytes("count"), Bytes.toBytes(String.valueOf(sum)));

context.write(NullWritable.get(), put); 


publicstaticvoidprepareTB2(String hbaseTableName)throwsIOException{

HTableDescriptor tableDesc =newHTableDescriptor(hbaseTableName);

HColumnDescriptor columnDesc =newHColumnDescriptor("mycolumnfamily");

tableDesc.addFamily(columnDesc); 

Configuration  cfg = HBaseConfiguration.create(); 

HBaseAdmin admin =newHBaseAdmin(cfg);

if(admin.tableExists(hbaseTableName)) {

System.out.println("Table exists,trying drop and create!");

admin.disableTable(hbaseTableName); 

admin.deleteTable(hbaseTableName); 

admin.createTable(tableDesc); 

}else{

System.out.println("create table: "+ hbaseTableName);

admin.createTable(tableDesc); 

在Linux中执行该代码:

[hadoop@h71 q1]$ /usr/jdk1.7.0_25/bin/javac HBaseToHbase.java

[hadoop@h71 q1]$ /usr/jdk1.7.0_25/bin/jar cvf xx.jar HBaseToHbase*class

[hadoop@h71 q1]$ hadoop jar xx.jar HBaseToHbase

查看mytb2表:

hbase(main):009:0> scan'mytb2'

ROW                                                          COLUMN+CELL                                                                                                                                                                   

hello hadoop                                                column=mycolumnfamily:count, timestamp=1489817182454,value=2

hello hive                                                  column=mycolumnfamily:count, timestamp=1489817182454,value=1

hello world                                                column=mycolumnfamily:count, timestamp=1489817182454,value=3

3row(s)in0.0260seco

有需要的联系我2317348976

yxxy1717

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 203,547评论 6 477
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 85,399评论 2 381
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 150,428评论 0 337
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,599评论 1 274
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,612评论 5 365
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,577评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 37,941评论 3 395
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,603评论 0 258
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,852评论 1 297
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,605评论 2 321
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,693评论 1 329
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,375评论 4 318
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,955评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,936评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,172评论 1 259
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 43,970评论 2 349
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,414评论 2 342

推荐阅读更多精彩内容

  • 简介 HBase是高可靠性,高性能,面向列,可伸缩的分布式存储系统,利用HBase技术可在廉价PC Serve...
    九世的猫阅读 2,170评论 1 6
  • http://blog.csdn.net/fengzheku/article/details/48447791 p...
    木子Qing阅读 2,519评论 1 1
  • hbase是一个数据库,用于数据存储,mapreduce是一个计算框架,用于数据处理 集成的模型 hbase作为m...
    柳仁儿阅读 1,877评论 0 2
  • 首先,我们在使用前先看看HDFS是什麽?这将有助于我们是以后的运维使用和故障排除思路的获得。 HDFS采用mast...
    W_Bousquet阅读 4,167评论 0 2
  • 本期古谱残局——推强扶弱 (第一卷第二十局) 抑强扶弱是指压制强暴,扶助弱小。 出处 —— 汉·袁康《越绝书·外传...
    象棋娘娘阅读 1,353评论 0 1