今天
在启动Hadoop和Hbase之后,发现nodemanager节点并未启动起来,于是对Hadoop进行初始化并启动,但发现启动Hadoop的时候节点正常,但在启动hbase之后,nodemanager节点依然会挂掉。反复试验并重启虚拟机之后问题依然存在。在察看hadoop的日志错误报告后,在
yarn-root-nodemanager-hy.log中找到相应报错信息:
java.lang.RuntimeException: java.lang.RuntimeException: java.lang.ClassNotFoundException: Class org.apache.spark.network.yarn.YarnShuffleService not found
在查找相应资料后,发现解决办法如下:
1.
修改${HADOOP_HOME}/etc/hadoop/yarn-site.xml中关于spark的参数时候,将
<value>mapreduce_shuffle</value>更换为:
<value>mapreduce_shuffle,spark_shuffle</value>,并添加:
<property>
<name>yarn.nodemanager.aux-services.spark_shuffle.class</name>
<value>org.apache.spark.network.yarn.YarnShuffleService</value>
</property>
<property>
<name>spark.shuffle.service.port</name>
<value>7337</value>
</property>
2.
拷贝“${SPARK_HOME}/lib/spark-2.2.0-yarn-shuffle.jar”到“$
{HADOOP_HOME}/share/hadoop/yarn/lib/”目录下。(注意:不是${HADOOP_HOME}下的lib目录,我在第一次复制的时候就搞错了)
3.删除
{HADOOP_HOME}下的dfs、logs、tmp目录并初始化重启hadoop。问题解决