HBase實操 | 使用Spark通過BulkLoad快速匯入資料到HBase
HBase社群直播本期分享專家:明惠(網名:過往記憶)-阿里雲資料架構師
視訊地址:
https://yq.aliyun.com/live/590?spm=a2c4e.11155435.0.0.460177969kCLxf
PPT地址:
https://yq.aliyun.com/download/3033
PS:歡迎關注HBase+Spark團隊號 https://yq.aliyun.com/teams/382 部落格,問答,直播,各類HBase資料,線下meetup都會發布到這裡。
1.文件編寫目的
在專案中有需求需要將Hive表中的資料儲存在HBase中。使用Spark訪問Hive表,將讀表資料匯入到HBase中,寫入HBase有兩種方式:一種是通過HBase的API介面批量的將資料寫入HBase,另一種是通過BulkLoad的方式生成HFile檔案然後載入到HBase中,兩種方式相比之下第二種效率會更高。本篇文章Fayson主要介紹如何使用Spark讀取Hive表資料通過BulkLoad的方式快速的將資料匯入到HBase。
-
文章概述
1.環境準備
2.示例程式碼及執行
3.總結
-
測試環境
1.CM5.14.3和CDH5.14.2
2.叢集未啟用Sentry和Kerberos
3.Spark1.6.0
2.環境準備
本篇文章主要使用HBase中hbase-spark包提供的HBaseContext來實現,需要準備hbase-spark的依賴包並部署到Spark叢集。
1.將準備好的hbase-spark-1.2.0-cdh5.13.1.jar部署到叢集所有節點的/opt/cloudera/parcels/CDH/lib/spark/lib目錄下
儲存配置,並重新部署Spark客戶端配置
3.Hive表示例資料檢視
3.Spark示例程式碼
1.使用Maven建立Scala示例工程,pom.xml檔案內容如下:
2.在工程中建立Hive2HBase.scala檔案,內容如下:
查看錶資料
5.總結
1.本篇文章是使用hbase-spark包中提供的bulkload方法生成HFile檔案,然後將生成的檔案匯入到HBase表中。
2.使用bulkload的方式匯入資料到HBase表時,在load HFile檔案到表過程中會有短暫的時間導致該錶停止服務(在load檔案過程中需要先disable表,load完成後在enable表。
3.需要使用hbase使用者提交Spark作業
GitHub地址:
https://github.com/fayson/cdhproject/blob/master/sparkdemo/src/main/scala/com/cloudera/hbase/Hive2HBase.scala
HBase直播主題調研,以及2019年HBase Meetup舉辦城市調研,歡迎大家積極參與。
推薦關注Hadoop實操,第一時間,分享更多Hadoop乾貨,歡迎轉發和分享。
大家工作學習遇到HBase技術問題,把問題釋出到HBase技術社群論壇http://hbase.group,歡迎大家論壇上面提問留言討論。想了解更多HBase技術關注HBase技術社群公眾號(微信號:hbasegroup),非常歡迎大家積極投稿。
HBase技術交流社群 - 阿里官方“HBase生態+Spark社群大群”點選加入: ofollow,noindex">https://dwz.cn/Fvqv066s