无法在凤凰中保存火花数据帧

时间:2017-02-17 16:28:36

标签: apache-spark cloudera-cdh phoenix

我正在编写以下代码以将火花数据帧保存到phonenix:

phoenix_df.write.format( “org.apache.phoenix.spark”)模式(SaveMode.Overwrite)可供选项(地图( “表” - > “中TEST”, “zkUrl” - > “中defabc10d” ))。保存()

使用spark 1.6.0。

但是,作业失败并出现以下错误:

java.lang.NoSuchMethodError:org.apache.hadoop.hbase.HTableDescriptor.setValue(Ljava / lang / String; Ljava / lang / String;)Lorg / apache / hadoop / hbase / HTableDescriptor

请提供一些解决方案是否有人遇到同样的问题?

1 个答案:

答案 0 :(得分:1)

看起来您的Phoenix连接器是针对HBase客户端的特定版本(例如V1.3)构建的,但是CDH中捆绑的HBase客户端是不同的版本(V1.2),并且存在重大的API更改。

  1. 找出Phoenix连接器所需的HBase客户端
  2. HortonWorks repo
  3. 下载该客户端
  4. 将这些自定义JAR添加到驱动程序/执行程序CLASSPATH,就像使用Phoenix连接器一样(例如--jars
  5. 确保您的自定义JAR使用--conf spark.yarn.user.classpath.first=true覆盖默认的Cloudera HBase客户端