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
配置
官网配置 http://phoenix.apache.org/phoenix_spark.html
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()