似乎无法为火花建造蜂巢



我一直在尝试在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命令。尽管如此,只是得到了相同的错误

在本地机器上运行这些命令之前,我提交了导出SPARK_HIVE=TRUE,但我看到消息说它不推荐使用,无论如何都会被忽略。

用maven构建蜂窝:

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

使用sbt-构建蜂窝

 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

仍然没有运气。

无论我用什么构建或如何登录,我似乎都无法运行hive命令。有什么明显的我遗漏了吗。

在使用Spark包附带的EC2脚本构建的EC2集群上使用HiveContext时,我也遇到了同样的错误(在我的案例中是v1.5.2)。经过多次尝试和错误,我发现用以下选项构建EC2集群可以获得正确版本的Hadoop,并正确构建Hive,这样我就可以在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。当然,根据需要的集群调整其他参数。

相关内容

  • 没有找到相关文章

最新更新