基于 Hortonworks 2.6.1 的 Docker 中的 Pyspark 使用 EnableHiveSupport() 引发错误
Posted
技术标签:
【中文标题】基于 Hortonworks 2.6.1 的 Docker 中的 Pyspark 使用 EnableHiveSupport() 引发错误【英文标题】:Pyspark in Docker based on Hortonworks 2.6.1 is throwing error with EnableHiveSupport() 【发布时间】:2017-10-27 02:46:28 【问题描述】:我正在尝试使用带有 HDP2.6.1 的 docker 构建一个边缘节点。除 Spark 支持外,一切都可用并正在运行。我能够安装和运行 pyspark,但只有当我评论 enableHiveSupport() 时。我也从 ambari 将 hive-site.xml 复制到 /etc/spark2/conf 并且所有 spark conf 都与集群设置匹配。但是还是会出现这个错误:
17/10/27 02:35:57 WARN conf.HiveConf: HiveConf of name hive.groupby.position.alias does not exist
17/10/27 02:35:57 WARN conf.HiveConf: HiveConf of name hive.mv.files.thread does not exist
Traceback (most recent call last):
File "/usr/hdp/current/spark2-client/python/pyspark/shell.py", line 43, in <module>
spark = SparkSession.builder\
File "/usr/hdp/current/spark2-client/python/pyspark/sql/session.py", line 187, in getOrCreate
session._jsparkSession.sessionState().conf().setConfString(key, value)
File "/usr/hdp/current/spark2-client/python/lib/py4j-0.10.4-src.zip/py4j/java_gateway.py", line 1133, in __call__
File "/usr/hdp/current/spark2-client/python/pyspark/sql/utils.py", line 79, in deco
raise IllegalArgumentException(s.split(': ', 1)[1], stackTrace)
pyspark.sql.utils.IllegalArgumentException: u"Error while instantiating 'org.apache.spark.sql.hive.HiveSessionState':"
>>> spark.createDataFrame([(1,'a'), (2,'b')], ['id', 'nm'])
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
NameError: name 'spark' is not defined
我已尝试搜索此错误,但我得到的所有结果都是可能与权限相关的 windows 错误和 hive-site.xml 丢失。但我在 centos:7.3.1611 上构建它。并安装以下内容:
RUN wget http://public-repo-1.hortonworks.com/HDP/centos7/2.x/updates/2.6.1.0/hdp.repo
RUN cp hdp.repo /etc/yum.repos.d
RUN yum -y install hadoop sqoop spark2_2_6_1_0_129-master spark2_2_6_1_0_129-python hive-hcatalog
【问题讨论】:
【参考方案1】:所以上述问题的解决方案是 hive-site.xml 只需要包含 hive.metastore.uris 的属性而不是其他的。 (参考:https://docs.hortonworks.com/HDPDocuments/HDP2/HDP-2.6.2/bk_spark-component-guide/content/spark-config-hive.html)。一旦你把其他属性拿出来,它就像一个魅力!
【讨论】:
以上是关于基于 Hortonworks 2.6.1 的 Docker 中的 Pyspark 使用 EnableHiveSupport() 引发错误的主要内容,如果未能解决你的问题,请参考以下文章