我应该在 spark-defaults.conf 添加哪些行才能使用 pyspark 中的 phoenix?
Posted
技术标签:
【中文标题】我应该在 spark-defaults.conf 添加哪些行才能使用 pyspark 中的 phoenix?【英文标题】:What lines i should add to spark-defaults.conf to be able to use phoenix from pyspark? 【发布时间】:2017-11-25 01:18:42 【问题描述】:我已经安装了 phoenix-4.7,它可以与 hbase 一起正常工作(我已将 jar 复制到 hbase 文件夹)。现在我想将 phoenix 与 pyspark 一起使用,根据文档(见下文),我需要在 spark-defaults.conf 中添加 2 行:
spark.executor.extraClassPath spark.driver.extraClassPath我应该插入什么才能从 spark 中使用它?
我正在使用 HDP2.6 和 python 2.6 和 spark 2.0
安装指南如下:
火花设置
确保所有必需的 Phoenix / HBase 平台依赖项 在 Spark 执行器和驱动程序的类路径中可用,设置 “spark.executor.extraClassPath”和“spark.driver.extraClassPath” 在 spark-defaults.conf 中包含“phoenix--client.jar”
请注意,对于 Phoenix 4.7 和 4.8 版本,您必须使用 'phoenix--client-spark.jar'。从 Phoenix 4.10 开始, “phoenix--client.jar”是针对 Spark 2.x 编译的。如果 如果需要与 Spark 1.x 的兼容性,您必须使用 spark16 Maven 配置文件。
尝试将数据帧写入 phoenix 时收到的错误消息:
java.lang.ClassNotFoundException:找不到数据源:org.apache.phoenix.spark。请在 spark.apache.org/third-party-projects.html 找到包
【问题讨论】:
尝试将数据帧写入 phoenix 时收到错误消息::java.lang.ClassNotFoundException:找不到数据源:org.apache.phoenix.spark。请在spark.apache.org/third-party-projects.html 找到包 好的,看来我把它复杂化了。 spark.executor.extraClassPath "你的凤凰客户端 jar 路径" 【参考方案1】:我不确定问题是否已为您解决。这对我有用。 在 spark 目录下的我的 conf 目录中的 spark-defaults.conf 中设置以下内容。在我的情况下,它是 phoneix 4.8.1 与 spark 1.6 一起使用,因此 4.8.1 库已添加到路径中。您需要相应地添加您的 Phoenix jars 版本。
spark.executor.extraClassPath=/usr/local/apache-phoenix/phoenix-4.8.1-HBase-1.2-client.jar:/usr/local/apache-phoenix/phoenix-spark-4.8.1-HBase-1.2.jar
spark.driver.extraClassPath=/usr/local/apache-phoenix/phoenix-4.8.1-HBase-1.2-client.jar:/usr/local/apache-phoenix/phoenix-spark-4.8.1-HBase-1.2.jar
【讨论】:
以上是关于我应该在 spark-defaults.conf 添加哪些行才能使用 pyspark 中的 phoenix?的主要内容,如果未能解决你的问题,请参考以下文章
如何使用 EMR 中的引导操作在 spark-conf 中添加 spark.executor.extraClassPath