Hbase之官方Hbase-Mapreduce案例
阿新 • • 發佈:2018-11-14
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表中是否有資料