Python 运行PySpark示例时出错。我认为这是Hadoop1.x和2.x的问题,但不确定如何继续

Python 运行PySpark示例时出错。我认为这是Hadoop1.x和2.x的问题,但不确定如何继续,python,hadoop,apache-spark,hbase,pyspark,Python,Hadoop,Apache Spark,Hbase,Pyspark,我正在尝试为pyspark运行hbase_input.py示例。这是我正在使用的命令: /opt/cloudera/parcels/CDH/lib/spark/bin/spark submit——驱动程序类路径/opt/cloudera/parcels/CDH/lib/spark/lib/lib/lib/spark-examples-1.2.0-cdh5.3.0-hadoop2.5.0-cdh5.3.0.jar~/workspace/pyspark\u hbase.py midway1表1 我

我正在尝试为pyspark运行hbase_input.py示例。这是我正在使用的命令:

/opt/cloudera/parcels/CDH/lib/spark/bin/spark submit——驱动程序类路径/opt/cloudera/parcels/CDH/lib/spark/lib/lib/lib/spark-examples-1.2.0-cdh5.3.0-hadoop2.5.0-cdh5.3.0.jar~/workspace/pyspark\u hbase.py midway1表1
我得到了下面的回溯,我认为这表明我正在使用的东西是针对Hadoop1.X编译的,我正在尝试将它用于Hadoop2.X。我只是不确定我需要重新编译什么….(Spark?)。我使用的所有东西都来自cloudera发行版,所以我认为它们都会合作。然而,不同的人在这个集群上“玩”,可能安装了以前版本的Spark或其他东西。任何指导都将不胜感激

回溯(最近一次呼叫最后一次):
文件“/users/henry/workspace/pyaccumulo/pyspark_hbase.py”,第77行,在
conf=conf)
文件“/opt/cloudera/parcels/CDH-5.3.0-1.cdh5.3.0.p0.30/lib/spark/python/pyspark/context.py”,第530行,在newAPIHadoopRDD中
jconf,batchSize)
文件“/opt/cloudera/parcels/CDH-5.3.0-1.cdh5.3.0.p0.30/lib/spark/python/lib/py4j-0.8.2.1-src.zip/py4j/java_gateway.py”,第538行,在__
文件“/opt/cloudera/parcels/CDH-5.3.0-1.cdh5.3.0.p0.30/lib/spark/python/lib/py4j-0.8.2.1-src.zip/py4j/protocol.py”,第300行,在get\u返回值中
py4j.protocol.Py4JJavaError:调用z:org.apache.spark.api.python.PythonRDD.newAPIHadoopRDD时出错。
:java.lang.CompatibleClassChangeError:找到接口org.apache.hadoop.mapreduce.JobContext,但应为类
位于org.apache.hadoop.hbase.mapreduce.TableInputFormatBase.getSplits(TableInputFormatBase.java:158)
位于org.apache.spark.rdd.NewHadoopRDD.getPartitions(NewHadoopRDD.scala:98)
位于org.apache.spark.rdd.rdd$$anonfun$partitions$2.apply(rdd.scala:205)
位于org.apache.spark.rdd.rdd$$anonfun$partitions$2.apply(rdd.scala:203)
在scala.Option.getOrElse(Option.scala:120)
位于org.apache.spark.rdd.rdd.partitions(rdd.scala:203)
位于org.apache.spark.rdd.mapperdd.getPartitions(mapperdd.scala:28)
位于org.apache.spark.rdd.rdd$$anonfun$partitions$2.apply(rdd.scala:205)
位于org.apache.spark.rdd.rdd$$anonfun$partitions$2.apply(rdd.scala:203)
在scala.Option.getOrElse(Option.scala:120)
位于org.apache.spark.rdd.rdd.partitions(rdd.scala:203)
位于org.apache.spark.rdd.rdd.take(rdd.scala:1060)
位于org.apache.spark.rdd.rdd.first(rdd.scala:1093)
在org.apache.spark.api.python.SerDeUtil$.pairrdtopython(SerDeUtil.scala:202)上
位于org.apache.spark.api.PythonRDD$.newAPIHadoopRDD(PythonRDD.scala:500)
位于org.apache.spark.api.PythonRDD.newAPIHadoopRDD(PythonRDD.scala)
在sun.reflect.NativeMethodAccessorImpl.invoke0(本机方法)处
在sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)中
在sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)中
位于java.lang.reflect.Method.invoke(Method.java:606)
位于py4j.reflection.MethodInvoker.invoke(MethodInvoker.java:231)
位于py4j.reflection.ReflectionEngine.invoke(ReflectionEngine.java:379)
在py4j.Gateway.invoke处(Gateway.java:259)
位于py4j.commands.AbstractCommand.invokeMethod(AbstractCommand.java:133)
在py4j.commands.CallCommand.execute(CallCommand.java:79)
在py4j.GatewayConnection.run处(GatewayConnection.java:207)
运行(Thread.java:745)

您可以从下载为不同版本的Hadoop预构建的Spark。您是否使用Hortonworks最新的沙盒虚拟机尝试过相同的脚本?在Cloudera上运行pyspark时,我也遇到了同样的问题。所以我使用沙箱测试了同一个脚本,但是仍然没有成功。同样的错误会弹出。如果有人成功运行了“hbase_input.py”,请告诉我们您的hadoop/spark/hbase版本。您可以从下载为不同版本的hadoop预构建的spark。您是否使用Hortonworks最新的沙盒VM尝试过相同的脚本?在Cloudera上运行pyspark时,我也遇到了同样的问题。所以我使用沙箱测试了同一个脚本,但是仍然没有成功。同样的错误会弹出。如果有人成功运行了“hbase_input.py”,请告诉我们您的hadoop/spark/hbase版本。