1. 程式人生 > >Hbase之官方Hbase-Mapreduce案例

Hbase之官方Hbase-Mapreduce案例

Hbase是一個非關係型的資料庫,可以分散式部署,擅長儲存資料,但是不能分析資料,所以通過 HBase 的相關 JavaAPI,我們可以實現伴隨HBase 操作的 MapReduce 過程,比如使用MapReduce 將資料從本地檔案系統匯入到 HBase 的表中,比如我們從 HBase 中讀取一些原始資料後使用 MapReduce 做資料分析

Hbase-Mapreduce官方案例(統計有多少行資料)

1.匯入環境變數

因為要引用HBase的API,所以要在Hadoop中引入HBase的jar包

 export HBASE_HOME=/opt/package/hadoop
export HBASE_HOME=/opt/package/hbase
export HADOOP_CLASSPATH=`${HBASE_HOME}/bin/hbase mapredcp`

將其中HADOOP_HOME和HBASE_HOME的目錄換成你自己的

2.執行官方的Hbase-Mapreduce案例

bin/yarn jar /opt/package/hbase/lib/hbase-server-0.98.6-cdh5.3.6.jar rowcounter  HBase中的表名

執行結果:

使用Mapreduce將本地資料匯入到HBase

1.匯入環境變數

如果你剛匯入過上邊案例中的環境變數,並且當時的視窗沒有關閉的話,這裡就不用再從新匯入環境變量了

2.在本地建立一個tsv格式的檔案:test.tsv

1001    zs    blue
1002    ls    yello
1003    ww    red

中間使用tab鍵隔開

3.在HBase中建立表

create 'ys','info'

4.在HDFS中建立資料夾並上傳test.tsv檔案

bin/hdfs dfs -mkdir /usr/ys/test
bin/hdfs dfs -put test.tsv /usr/ys/test

5.執行Mapreduce將資料匯入到HBase的表中


bin/yarn jar /opt/package/lib/hbase-server-0.98.6-cdh5.3.6.jar importtsv \
-Dimporttsv.columns=HBASE_ROW_KEY,info:name,info:color ys \
hdfs://cdh0:8020/usr/ys/test

執行結果:

在HBase的shell中檢視ys表中是否有資料