phoenix-4.7.0:DataFrame讀取和匯入到Hbase (apache版本)
phoenix-4.7.0安裝
1、首先去官網下載Phoenix的壓縮包
下載地址:http://mirror.bit.edu.cn/apache/phoenix/
由於我們系統的Hbase版本是1.1版本的,故下載4.7版本的Phoenix。
2、解壓縮Phoenix的壓縮包
tar –zxvf phoenix-4.7.0-HBase-1.1-bin.tar.gz
3、將phoenix-4.7.0-HBase-1.1-bin/目錄下phoenix-*.jar包複製到hbase的lib目錄下
cp phoenix-*.jar $HBASE_HOME/lib
4、重啟Hbase
$HBASE_HOME/bin/stop-hbase.sh
$HBASE_HOME/bin/start-hbase.sh
1、在IDE中pom.xml檔案中的配置
<dependency>
<groupId>org.apache.phoenix</groupId>
<artifactId>phoenix-spark</artifactId>
<version>4.7.0-HBase-1.1</version>
<scope>provided</scope>
</dependency>
2、在伺服器上每臺spark機器上的spark-defaults.conf檔案中的配置(在Phoenix4.7或以後的版本用phoenix-4.7.0-HBase-1.1-client-spark.jar,而在之前用phoenix-4.7.0-HBase-1.1-client.jar)
spark.driver.extraClassPath /spark/phoenix-client/lib/phoenix-4.7.0-HBase-1.1-client-spark.jar:/spark/phoenix-client/lib/libthrift-0.9.0.jar
spark.executor.extraClassPath /spark/phoenix-client/lib/phoenix-4.7.0-HBase-1.1-client-spark.jar:/spark/phoenix-client/lib/libthrift-0.9.0.jar
注意:官網上只說明需要將phoenix-4.7.0-HBase-1.1-client-spark.jar包匯入,而實際工作環境中需要將libthrift-0.9.0.jar包匯入,否則會報找不到包的錯
程式碼
主要:conf.getString("key")是resources中的application.conf中的key
//載入Hbase中的表作為DataFrame
sqlContext.read.options(Map("table" -> "USER_OVERVIEW", "zkUrl" -> conf.getString("Hbase.url"))).format("org.apache.phoenix.spark").load().registerTempTable("USER_OVERVIEW")
//儲存資料
resultDF.write.mode(SaveMode.Overwrite).options(Map("table" -> "USER_OVERVIEW", "zkUrl" -> conf.getString("Hbase.url"))).format("org.apache.phoenix.spark").save()
如果您喜歡我寫的博文,讀後覺得收穫很大,不妨小額贊助我一下,讓我有動力繼續寫出高質量的博文,感謝您的讚賞!微信