似乎无法为火花建立蜂巢
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。当然,根据您想要的集群调整其他参数。
我一直在尝试 运行 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。当然,根据您想要的集群调整其他参数。