首页 > 解决方案 > 如何在 Google Dataproc 主节点上启用 pyspark HIVE 支持

问题描述

我创建了一个 dataproc 集群并手动安装 conda 和 Jupyter notebook。然后,我通过 conda 安装 pyspark。我可以成功地运行火花

from pyspark import SparkSession
sc = SparkContext(appName="EstimatePi")

但是,我无法启用 HIVE 支持。以下代码被卡住并且不返回任何内容。

from pyspark.sql import SparkSession
spark = (SparkSession.builder
         .config('spark.driver.memory', '2G')
         .config("spark.kryoserializer.buffer.max", "2000m")
         .enableHiveSupport()
         .getOrCreate())

Python 2.7.13 版、Spark 2.3.4 版

有什么方法可以启用 HIVE 支持?

标签: apache-sparkhivepysparkgoogle-cloud-dataproc

解决方案


我不建议手动安装pyspark. 执行此操作时,您将获得与 Dataproc 自己的不同的新 spark/pyspark 安装,并且不会获得配置/调整/类路径/等。这可能是 Hive 支持不起作用的原因。

要使用正确配置的 pyspark 获得 conda,我建议在图像(默认)或更高版本上选择ANACONDAJUPYTER可选组件。1.3

此外,在1.4及更高版本的图像中,Mini-Conda 是默认用户 Python,预配置了 pyspark。如果你愿意,你可以自己 pip/conda 安装 Jupyter。

请参阅https://cloud.google.com/dataproc/docs/tutorials/python-configuration

同样正如@Jayadeep Jayaraman 指出的那样,Jupyter 可选组件与组件网关一起使用,这意味着您可以从开发人员控制台中的链接使用它,而不是向世界开放端口或 SSH 隧道。

tl/dr:我为您的下一个集群推荐这些标志:--optional-components ANACONDA,JUPYTER --enable-component-gateway


推荐阅读