簡體   English   中英

當我嘗試啟動PySpark時獲得空指針異常

[英]Getting a Null Pointer Exception when I am trying to start PySpark

我正在使用以下命令啟動pyspark

./bin/pyspark --master yarn --deploy-mode client --executor-memory 5g

我得到以下錯誤

15/10/14 17:19:15 INFO spark.SparkContext: SparkContext already stopped.
Traceback (most recent call last):
  File "/opt/spark-1.5.1/python/pyspark/shell.py", line 43, in <module>
    sc = SparkContext(pyFiles=add_files)
  File "/opt/spark-1.5.1/python/pyspark/context.py", line 113, in __init__
    conf, jsc, profiler_cls)
  File "/opt/spark-1.5.1/python/pyspark/context.py", line 178, in _do_init
    self._jvm.PythonAccumulatorParam(host, port))
  File "/opt/spark-1.5.1/python/lib/py4j-0.8.2.1-src.zip/py4j/java_gateway.py", line 701, in __call__
  File "/opt/spark-1.5.1/python/lib/py4j-0.8.2.1-src.zip/py4j/protocol.py", line 300, in get_return_value
py4j.protocol.Py4JJavaError: An error occurred while calling None.org.apache.spark.api.python.PythonAccumulatorParam.
: java.lang.NullPointerException
        at org.apache.spark.api.python.PythonAccumulatorParam.<init>(PythonRDD.scala:825)
        at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
        at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62)
        at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
        at java.lang.reflect.Constructor.newInstance(Constructor.java:422)
        at py4j.reflection.MethodInvoker.invoke(MethodInvoker.java:234)
        at py4j.reflection.ReflectionEngine.invoke(ReflectionEngine.java:379)
        at py4j.Gateway.invoke(Gateway.java:214)
        at py4j.commands.ConstructorCommand.invokeConstructor(ConstructorCommand.java:79)
        at py4j.commands.ConstructorCommand.execute(ConstructorCommand.java:68)
        at py4j.GatewayConnection.run(GatewayConnection.java:207)
        at java.lang.Thread.run(Thread.java:745)

由於某種原因,我也收到此消息

 ERROR cluster.YarnClientSchedulerBackend: Yarn application has already exited with state FINISHED!

WARN remote.ReliableDeliverySupervisor: Association with remote system [akka.tcp://sparkYarnAM@192.168.1.112:48644] has failed, address is now gated for [5000] ms. Reason: [Disassociated]

可能這就是為什么我的SparkContext停止的原因。

我正在將Spark 1.5.1和Hadoop 2.7.1與Yarn 2.7一起使用。

有誰知道為什么在發生任何事情之前退出Yarn應用程序?

有關其他信息,這是我的yarn-site.xml

        <property>
                <name>yarn.nodemanager.resource.memory-mb</name>
                <value>26624</value>
        </property>
        <property>
                <name>yarn.scheduler.minimum-allocation-mb</name>
                <value>1024</value>
        </property>
        <property>
                <name>yarn.scheduler.maximum-allocation-mb</name>
                <value>26624</value>
        </property>
        <property>
                <name>yarn.nodemanager.vmem-pmem-ratio</name>
                <value>2.1</value>
        </property>

這是我的mapred-site.xml

    <property>
            <name>mapreduce.map.memory.mb</name>
            <value>2048</value>
    </property>
    <property>
            <name>mapreduce.map.java.opts</name>
            <value>-Xmx1640M</value>
            <description>Heap size for map jobs.</description>
    </property>
    <property>
            <name>mapreduce.reduce.memory.mb</name>
            <value>16384</value>
    </property>
    <property>
            <name>mapreduce.reduce.java.opts</name>
            <value>-Xmx13107M</value>
            <description>Heap size for reduce jobs.</description>
    </property>

我可以通過添加來解決此問題

spark.yarn.am.memory 5g

到spark-default.conf文件。

我認為這是與記憶有關的問題。

此參數的默認值為512m

我有一個類似的問題,當我查看端口8088上的Hadoop GUI並單擊PySpark作業的ID列中的應用程序鏈接時,看到以下錯誤:

未捕獲的異常:org.apache…InvalidResourceRequestException無效的資源請求,請求的虛擬核心<0或請求的虛擬核心>已配置的最大值,requestedVirtualCores = 8,maxVirtualCores = 1

如果我將腳本更改為使用--executor-cores 1而不是默認值( --executor-cores 8 ),則它可以正常工作。 現在,我只需要讓管理員更改一些Yarn設置以允許更多核心,例如yarn.scheduler.maximum-allocation-vcores ,請參閱https://stackoverflow.com/a/29789568/215945

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM