似乎无法为火花建立蜂巢

Can't seem to build hive for spark

我一直在尝试 运行 pyspark 中的这段代码。

sqlContext = HiveContext(sc) 
datumDF = sqlContext.createDataFrame(datumX, schema)

但是一直收到这个警告:

Exception: ("You must build Spark with Hive. Export 'SPARK_HIVE=true' and run build/sbt assembly", Py4JJavaError(u'An error occurred while calling None.org.apache.spark.sql.hive.HiveContext.\n', JavaObject id=o44))

我登录 AWS 并使用以下代码启动集群:/User/Downloads/spark-1.5.2-bin-hadoop2.6/ec2/spark-ec2 -k name -i /User/Desktop/pemfile.pem login clustername

但是我找到的所有文档都涉及这个命令,它存在于文件中 /users/downloads/spark-1.5.2/ 无论如何,我已经 运行 他们了,并且尝试在我登录后使用该文件夹中的 ec2 命令登录。尽管如此,还是出现了同样的错误

我在 运行 在我的本地计算机上执行这些命令之前提交了 export SPARK_HIVE=TRUE,但我看到消息说它已被弃用,无论如何都会被忽略。

使用 maven 构建配置单元:

mvn -Pyarn -Phadoop-2.4 -Dhadoop.version=2.4.0 
    -Phive -Phive-thriftserver -DskipTests clean package

用sbt搭建hive

 build/sbt -Pyarn -Phadoop-2.3 assembly

还有一个我找到了

./sbt/sbt -Phive assembly

我也拿了 hive-site.xml file 并把 /Users/Downloads/spark-1.5.2-bin-hadoop2.6/conf folder and the /Users/Downloads/spark-1.5.2/conf

仍然没有运气。

无论我用什么构建它或如何登录,我似乎都无法 运行 配置单元命令。有什么明显的我遗漏的东西吗?

在使用 Spark 包(在我的例子中是 v1.5.2)附带的 ec2 脚本构建的 EC2 集群上使用 HiveContext 时,我也遇到了同样的错误。通过多次试验和错误,我发现使用以下选项构建 EC2 集群可以正确构建带有 Hive 的 Hadoop 版本,这样我就可以在我的 PySpark 作业中使用 HiveContext

spark-ec2 -k <your key pair name> -i /path/to/identity-file.pem -r us-west-2 -s 2 --instance-type m3.medium --spark-version 1.5.2 --hadoop-major-version yarn  launch <your cluster name>

此处的关键参数是您将 --spark-version 设置为 1.5.2 并将 --hadoop-major-version 设置为 yarn - 即使您不习惯使用 Yarn 来提交作业强制 hadoop 构建为 2.4。当然,根据您想要的集群调整其他参数。