Hbase與Mapreduce整合的案例
【需求】將info列簇中的name這一列匯入到另外一張表中去
建表:
create 'test:stu_info','info','degree','work'
插入資料:6個rowkey 3個列簇
put 'test:stu_info','20170222_10001','degree:xueli','benke'
put 'test:stu_info','20170222_10001','info:age','18'
put 'test:stu_info','20170222_10001','info:sex','male'
put 'test:stu_info','20170222_10001','info:name','tom'
put 'test:stu_info','20170222_10001','work:job','bigdata'
put 'test:stu_info','20170222_10002','degree:xueli','gaozhong'
put 'test:stu_info','20170222_10002','info:age','22'
put 'test:stu_info','20170222_10002','info:sex','female'
put 'test:stu_info','20170222_10002','info:name','jack'
put 'test:stu_info','20170222_10003','info:age','22'
put 'test:stu_info','20170222_10003','info:name','leo'
put 'test:stu_info','20170222_10004','info:age','18'
put 'test:stu_info','20170222_10004','info:name','peter'
put 'test:stu_info','20170222_10005','info:age','19'
put 'test:stu_info','20170222_10005','info:name','jim'
put 'test:stu_info','20170222_10006','info:age','20'
put 'test:stu_info','20170222_10006','info:name','zhangsan'
create 't5' , {NAME=>'info'}
一個region就是一個maptask任務
在hadoop中的hadoop-env.sh檔案中新增相關的jar,進行整合依賴
export HADOOP_CLASSPATH=$HADOOP_CLASSPATH:/opt/moduels/hbase-0.98.6-hadoop2/lib/*
JAVA程式碼如下:
package com.bigdata.hadoop.mapreduce; import org.apache.hadoop.conf.Configuration; import org.apache.hadoop.conf.Configured; import org.apache.hadoop.hbase.HBaseConfiguration; import org.apache.hadoop.hbase.client.Put; import org.apache.hadoop.hbase.client.Scan; import org.apache.hadoop.hbase.io.ImmutableBytesWritable; import org.apache.hadoop.hbase.mapreduce.TableMapReduceUtil; import org.apache.hadoop.mapreduce.Job; import org.apache.hadoop.util.Tool; import org.apache.hadoop.util.ToolRunner; public class TestDriver2 extends Configured implements Tool{ public int run(String[] args) throws Exception { Configuration conf = this.getConf(); Job job=Job.getInstance(conf,"mr-hbase2"); job.setJarByClass(TestDriver2.class); // class that contains mapper and reducer Scan scan = new Scan(); // set other scan attrs TableMapReduceUtil.initTableMapperJob( "test:stu_info", // input table scan, // Scan instance to control CF and attribute selection TestHbaseMap.class, // mapper class ImmutableBytesWritable.class, // mapper output key Put.class, // mapper output value job); TableMapReduceUtil.initTableReducerJob( "test:info_name", // output table null, // reducer class job); job.setNumReduceTasks(1); return job.waitForCompletion(true)? 0:1; } public static void main(String[] args) { Configuration conf=HBaseConfiguration.create(); try { int status=ToolRunner.run(conf, new TestDriver2(), args); System.exit(status); } catch (Exception e) { e.printStackTrace(); } } }
package com.bigdata.hadoop.mapreduce; import java.io.IOException; import org.apache.hadoop.hbase.Cell; import org.apache.hadoop.hbase.CellUtil; import org.apache.hadoop.hbase.client.Put; import org.apache.hadoop.hbase.client.Result; import org.apache.hadoop.hbase.io.ImmutableBytesWritable; import org.apache.hadoop.hbase.mapreduce.TableMapper; import org.apache.hadoop.hbase.util.Bytes; public class TestHbaseMap extends TableMapper<ImmutableBytesWritable, Put>{ @Override protected void map(ImmutableBytesWritable key, Result value,Context context) throws IOException, InterruptedException { Put put=new Put(key.get()); for(Cell cell:value.rawCells()){ if("info".equals(Bytes.toString(CellUtil.cloneFamily(cell)))){ //匹配info列簇的資料 if("name".equals(Bytes.toString(CellUtil.cloneQualifier(cell)))){ //匹配name列這列的資料 put.add(cell); } } } context.write(key, put); } }
打成jar包 mr-hbase.jar上傳linux
hbase目錄下執行如下程式碼
/opt/moduels/hadoop-2.5.0/bin/yarn jar /opt/datas/mr-hbase.jar
20170222_10001 column=info:name, timestamp=1497059738675, value=tom
20170222_10002 column=info:name, timestamp=1497059738956, value=jack
20170222_10003 column=info:name, timestamp=1497059739013, value=leo
20170222_10004 column=info:name, timestamp=1497059739121, value=peter
20170222_10005 column=info:name, timestamp=1497059739254, value=jim
20170222_10006 column=info:name, timestamp=1497059740585, value=zhangsan
importtsv格式化匯入
Usage: importtsv -Dimporttsv.columns=a,b,c <tablename> <inputdir>
-》選項:-D表示指明某一個引數,key=value
-》將檔案上傳到HDFS
/opt/moduels/hadoop-2.5.0/bin/yarn jar lib/hbase-server-0.98.6-hadoop2.jar importtsv -Dimporttsv.columns=HBASE_ROW_KEY,info:name,info:age,info:sex stu_info /test.tsv
-》如果不是預設的\t,就要在語句中指定輸入的分隔符
/opt/moduels/hadoop-2.5.0/bin/yarn jar lib/hbase-server-0.98.6-hadoop2.jar importtsv -Dimporttsv.separator=, -Dimporttsv.columns=HBASE_ROW_KEY,info:name,info:age,info:sex stu_info /test2.csv
第一步:轉換Hfile ->其實就是storefile
/opt/moduels/hadoop-2.5.0/bin/yarn jar lib/hbase-server-0.98.6-hadoop2.jar importtsv -Dimporttsv.columns=HBASE_ROW_KEY,info:name,info:age,info:sex -Dimporttsv.bulk.output=/testHfile stu_info /test3.tsv
第二步:匯入hbase 這一步不是 mapreduce程式 把storefile檔案移動到 hbase對應表的目錄下
官網事例:/opt/moduels/hadoop-2.5.0/bin/yarn jar lib/hbase-server-0.98.6-hadoop2.jar completebulkload
usage: completebulkload /path/to/hfileoutputformat-output tablename
completebulkload
/opt/moduels/hadoop-2.5.0/bin/yarn jar lib/hbase-server-0.98.6-hadoop2.jar completebulkload /testHfile stu_info
注:利用Sqoop可以實現將資料從關係型資料庫匯入到Hbase中
相關推薦
Hbase與Mapreduce整合的案例
【需求】將info列簇中的name這一列匯入到另外一張表中去 建表: create 'test:stu_info','info','degree','work' 插入資料:6個rowkey 3個列簇 put 'test:stu_info','20170222_10001',
HBase與MapReduce整合操作
1、目的:將HBase中stu_info表中的name放到表user_info中 2、TestHbaseMapper: package com.zzw.hbase.mapreduce; import java.io.IOException; import org.apache.had
HBase權威指南學習記錄(五、hbase與MapReduce整合)
新增依賴: <dependency> <groupId>org.apache.hbase</groupId> <artifactId>hbase-client</artifact
HBase與MapReduce整合2-Hdfs2HBase
2)File中解析資料到HBase表中(import) Hdfs2HBase 檔案格式的資料->HBase表中Mapreduce* input: hdfs files Mapper:OutputKey/OutputValue* output: hbase t
HBase新版本與MapReduce整合
1.MapReduce從hbase讀取資料 //讀取hbase表資料 public class HbaseAndMapReduce { public static void main(String[] args) throws Exception
Flume與Kafka整合案例詳解
環境配置 名稱 版本 下載地址 Centos 7.0 64x 百度 Zookeeper 3.4.5 Flume 1.6.0 Kafka 2.1.0 配置Flu
hbase與flume整合程式設計
1、官網下載src包,解壓,需要匯入的——》flume-ng-sinks——》flume-ng-hbase-sink 2、編輯SimpleAsyncHbaseEventSerializer:複製一份重新命名為MySimpleAsyncHbaseEventSerializer
hbase與mapreduce同時執行的問題
在hbase資料寫入和mapreduce同時執行時出現hbase regionserver掛掉的問題,同時hdfs上的檔案塊出現miss。 目前看來mapreduce和hbase同時執行時出現的一個問題就是記憶體競爭,hbase的regionserver
HBase與Hive的整合案例二
1.案例需求 在 HBase 中已經儲存了某一張表hbase_hive,然後在Hive中建立一個外部表來關聯HBase中的hbase_hive這張表,使之可以藉助 Hive來分析 HBase 這張表中的資料,案例二是緊接著案例一進行的,所以在做案例二之前應該先進行案例一 2.在Hive中建立
HBase與Hive的整合案例一
1.Hive與HBase的對比 Hive 1)資料倉庫 Hive 的本質其實就相當於將 HDFS 中已經儲存的檔案在 Mysql 中做了一個雙射關係,以方便使用 HQL 去管理查詢 2)用於資料分析、清洗
基於LAMP php7.1搭建owncloud雲盤 與ceph對象存儲S3借口整合案例
lamp owncloud ceph ownCloud簡介: 是一個來自 KDE 社區開發的免費軟件,提供私人的 Web 服務。當前主要功能包括文件管理(內建文件分享)、音樂、日歷、聯系人等等,可在PC和服務器上運行。 簡單來說就是一個基於Php的自建網盤。基本上是私人使用這樣,因為
spring boot與jdbcTemplate的整合案例2
database bean n) ret struct mapping rri ott mode 簡單入門了spring boot後,接下來寫寫跟數據庫打交道的案例。博文采用spring的jdbcTemplate工具類與數據庫打交道。 下面是搭建的springbo
HBase與Sqoop的整合
之前學習Sqoop的時候都是Hadoop,Hive和RDBMS之間進行資料的匯入與匯出,並沒有與HBase整合,下面就來講解HBase與Sqoop的整合 需求: 利用 Sqoop 在 HBase 和 RDBMS 中進行資料的轉儲,將 RDBMS(Mysql) 中的資料抽取到 HBase 中
HBase-與Hive的區別、與Sqoop的整合
1、HBase 與 Hive 的對比 Hive: 1)、資料倉庫 Hive 的本質其實就相當於將 HDFS 中已經儲存的檔案在 Mysql 中做了一個雙射關係,以方 便使用 HQL 去管理查詢。 2)、用於資料分析、清洗 Hive 適用於離線的資料分析和清洗,延遲較高。 3)
HBase建表高階屬性,hbase應用案例看行鍵設計,HBase和mapreduce結合,從Hbase中讀取資料、分析,寫入hdfs,從hdfs中讀取資料寫入Hbase,協處理器和二級索引
1. Hbase高階應用 1.1建表高階屬性 下面幾個shell 命令在hbase操作中可以起到很到的作用,且主要體現在建表的過程中,看下面幾個create 屬性 1、 BLOOMFILTER 預設是NONE 是否使用布隆過慮及使用何種方式 布隆
hbase與solr的架構整合
大資料架構-使用HBase和Solr將儲存與索引放在不同的機器上 摘要:HBase可以通過協處理器Coprocessor的方式向Solr發出請求,Solr對於接收到的資料可以做相關的同步:增、刪、改索引的操作,這樣就可以同時使用HBase儲存量大和Solr檢索效能高的優
【Spark深入學習 -12】Spark程序設計與企業級應用案例02
提升 算子 lin count() roi println groupby 工作問題 衍生 ----本節內容------- 1.遺留問題答疑 1.1 典型問題解答 1.2 知識點回顧 2.Spark編程基礎 2.1 Spark開發四部曲 2.2 RDD典型實例
Mybatis中Mapper代理形式開發與spring整合
can sna 修改 jar xid oca pac user cal 1.導入jar包 2.分包 cogfig:存放配置文件 mapper:存放映射與接口 pojo:存放實體類 test:測試代碼 3.編寫配置文件 SqlMapConfig.xml <?
Spring與Mybatis整合
base package div classpath conf data pac 是否 ner 一 概述 1.整合的目的 將Mapper映射器的創建任務交給Spring容器。 二 具體實現 1.創建sqlSessionFactory: <bean id="sql
Atitit.angular.js 使用最佳實踐 原理與常見問題解決與列表顯示案例 attilax總結
依賴 實現 http dsi 概念 模板 style ctr net Atitit.angular.js 使用最佳實踐 原理與常見問題解決與列表顯示案例 attilax總結 1. 本文範圍 1 2. Angular的長處 1 2.1. 雙向數據綁定 1 2.2. d