【问题标题】:Unable to save spark dataframe in phoenix无法在凤凰中保存火花数据帧
【发布时间】:2017-02-22 01:00:04
【问题描述】:

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

phoenix_df.write.format("org.apache.phoenix.spark").mode(SaveMode.Overwrite).options(Map("table"->"TEST","zkUrl"->"defabc10d")) .save()

使用火花 1.6.0。

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

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

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

【问题讨论】:

    标签: apache-spark cloudera-cdh phoenix


    【解决方案1】:

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

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

    【讨论】:

    • 您好 Samson,感谢您的帮助。
    猜你喜欢
    • 2017-05-20
    • 2018-08-07
    • 1970-01-01
    • 2015-03-07
    • 2018-03-21
    • 2020-08-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多