#apache-spark #hadoop-yarn
#apache-spark #hadoop-yarn
Вопрос:
Я новичок в больших данных.
Я просто хочу запустить код spark-shell --master yarn --deploy-mode client
, и ошибка появляется после очень долгого ожидания:
20/09/27 21:14:55 ERROR cluster.YarnClientSchedulerBackend: The YARN application has already ended! It might have been killed or the Application Master may have failed to start. Check the YARN application logs for more details.
20/09/27 21:14:55 ERROR spark.SparkContext: Error initializing SparkContext.
org.apache.spark.SparkException: Application application_1601211854090_0001 failed 2 times due to Error launching appattempt_1601211854090_0001_000002. Got exception: java.net.ConnectException: Call From localhost/127.0.0.1 to localhost:46345 failed on connection exception: java.net.ConnectException: Connection refused; For more details see: http://wiki.apache.org/hadoop/ConnectionRefused
at sun.reflect.GeneratedConstructorAccessor44.newInstance(Unknown Source)
at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
at java.lang.reflect.Constructor.newInstance(Constructor.java:423)
at org.apache.hadoop.net.NetUtils.wrapWithMessage(NetUtils.java:824)
at org.apache.hadoop.net.NetUtils.wrapException(NetUtils.java:754)
at org.apache.hadoop.ipc.Client.getRpcResponse(Client.java:1544)
at org.apache.hadoop.ipc.Client.call(Client.java:1486)
at org.apache.hadoop.ipc.Client.call(Client.java:1385)
at org.apache.hadoop.ipc.ProtobufRpcEngine$Invoker.invoke(ProtobufRpcEngine.java:232)
at org.apache.hadoop.ipc.ProtobufRpcEngine$Invoker.invoke(ProtobufRpcEngine.java:118)
at com.sun.proxy.$Proxy83.startContainers(Unknown Source)
at org.apache.hadoop.yarn.api.impl.pb.client.ContainerManagementProtocolPBClientImpl.startContainers(ContainerManagementProtocolPBClientImpl.java:128)
at sun.reflect.GeneratedMethodAccessor14.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
Это происходит только тогда, когда я хочу запустить spark на Yarn. Я могу использовать spark-shell в моем centos7.
Я добавил много вещей в свой yarn-site.sh
:
<property>
<name>yarn.nodemanager.pmem-check-enabled</name>
<value>false</value>
</property>
<property>
<name>yarn.nodemanager.vmem-check-enabled</name>
<value>false</value>
</property>
<property>
<name>yarn.nodemanager.vmem-pmem-ratio</name>
<value>4</value>
</property>
И мой spark-env.sh
:
export SCALA_HOME=/home/scala-2.11.12
export JAVA_HOME=/home/java/jdk1.8.0_251
export HADOOP_HOME=/home/hadoop/hadoop-2.10.0
export SPARK_DIST_CLASSPATH=$(/home/hadoop/hadoop-2.10.0/bin/hadoop classpath)
export HADOOP_CONF_DIR=/home/hadoop/hadoop-2.10.0/etc/hadoop
export SPARK_MASTER_HOST=192.168.99.104
И я действительно не знаю, что я могу сделать, чтобы сохранить свою искру.
Ответ №1:
Пожалуйста, попробуйте найти свое приложение на сервере истории YARN и получить доступ к журналам, они могут быть более информативными с фактической ошибкой, которая указывает на реальную проблему.
В вашем случае выполните поиск application_1601211854090_0001
.
Комментарии:
1. Мне жаль, что я не могу найти журнал, запустив
yarn log -applicationId
. Итак, я иду проверять журнал 192.168.99.104: 8088 и обнаруживаю, что ошибка естьCall From localhost/127.0.0.1 to localhost:46345 failed on connection exception: java.net.ConnectException: Connection refused; For more details see: http://wiki.apache.org/hadoop/ConnectionRefused
, и я до сих пор не знаю, что это такое.