报错提示1:at org.apache.spark.scheduler.cluster.YarnClientSchedulerBackend.waitForAppl
报错提示2:Error initializing SparkContext
解决方案:
首先看一下Java版本 Java -version 和 javac -version 输出是否一致。若不一致:
在Linux系统里,#which Java 会出现几个Java路径,cd到这些路径里,#cd /usr/bin
当我们输入Java的时候系统就会在/usr/bin 里面找,然后我们看一下其属性:#file java*,发现这些都是连接,
连接到/etc/alternatives里面去,这里面是之前安装的Java,自然就和现在安装的不匹配。
解决方法是把他们删除,或者弄成备注,使他们不起作用。#mv Java Java.bak
这样就输出一致了,Java的问题的到解决。
报错的代码:
at org.apache.spark.network.client.TransportClient$3.operationComplete(TransportClient.java:249)
at org.apache.spark.network.client.TransportClient$3.operationComplete(TransportClient.java:233)
at io.netty.util.concurrent.DefaultPromise.notifyListener0(DefaultPromise.java:514)
at io.netty.util.concurrent.DefaultPromise.notifyListenersNow(DefaultPromise.java:488)
at io.netty.util.concurrent.DefaultPromise.access$000(DefaultPromise.java:34)
at io.netty.util.concurrent.DefaultPromise$1.run(DefaultPromise.java:438)
at io.netty.util.concurrent.SingleThreadEventExecutor.runAllTasks(SingleThreadEventExecutor.java:408)
at io.netty.channel.nio.NioEventLoop.run(NioEventLoop.java:455)
at io.netty.util.concurrent.SingleThreadEventExecutor$2.run(SingleThreadEventExecutor.java:140)
at io.netty.util.concurrent.DefaultThreadFactory$DefaultRunnableDecorator.run(DefaultThreadFactory.java:144)
at java.lang.Thread.run(Thread.java:748)
这些代码的意思是,系统需要调这些包,调包是出现错误,故出现了这些东西。。。。。。。。
解决方法是:在yarn-site.sh中写入以下代码:
yarn.nodemanager.pmem-check-enabled
false
yarn.nodemanager.vmem-check-enabled
false
划重点,敲黑板 :namenode和datanode都需要配置!重启!重启Hadoop!
继续重启spark,在yarn模式打开jupyter,可以运行了。
yarn模式启动jupyter:PYSPARK_DRIVER_PYTHON=ipython PYSPARK_DRIVER_PYTHON_OPTS="notebook"
HADOOP_CONF_DIR=/usr/local/hadoop/etc/hadoop pyspark --master yarn --deploy-mode client
转载连接:https://blog.csdn.net/gg584741/article/details/72825713
还有:其实我的错误还有另外一个致命的,粗心的错误,就是配置spark-env.sh时,写Hadoop的环境变量时多写了一个w!!!
手残多打了一个字符,太粗心了。