hadoop3.2.2的start-yarn.sh启动失败

根据尚硅谷的hadoop3.2.2分布式教程分三台机子
102开启Namenode 103开启ResoucreManager104开启SecondaryNamenode
image.png
jps情况 namenode和datanode均以配置成功。
hadoop102
image.png
hadoop103
image.png
hadoop104
image.png

在hadoop103上开启yarn.start.sh,hadoop102上配置了nodemanager可是103 和104啥也没有

于是启动失败的错误日志hadoop-qiang-nodemanager-hadoop103.log如下:

Caused by: java.lang.reflect.InaccessibleObjectException: Unable to make protected final java.lang.Class java.lang.ClassLoader.defineClass(java.lang.String,byte[],int,int,java.security.ProtectionDomain) throws java.lang.ClassFormatError accessible: module java.base does not "opens java.lang" to unnamed module @1311d9fb
    at java.base/java.lang.reflect.AccessibleObject.checkCanSetAccessible(AccessibleObject.java:357)
    at java.base/java.lang.reflect.AccessibleObject.checkCanSetAccessible(AccessibleObject.java:297)
    at java.base/java.lang.reflect.Method.checkCanSetAccessible(Method.java:199)
    at java.base/java.lang.reflect.Method.setAccessible(Method.java:193)
    at com.google.inject.internal.cglib.core.$ReflectUtils$2.run(ReflectUtils.java:56)
    at java.base/java.security.AccessController.doPrivileged(AccessController.java:312)
    at com.google.inject.internal.cglib.core.$ReflectUtils.<clinit>(ReflectUtils.java:46)

配置文件如下:
core-site.xml

<configuration>
 <!-- 指定 NameNode 的地址 -->
 <property>
 <name>fs.defaultFS</name>
 <value>hdfs://hadoop102:8020</value>
 </property>
 <!-- 指定 hadoop 数据的存储目录 -->
 <property>
 <name>hadoop.tmp.dir</name>
 <value>/opt/module/hadoop-3.2.2/data</value>
 </property>
 <!-- 配置 HDFS 网页登录使用的静态用户为 qiang -->
 <property>
 <name>hadoop.http.staticuser.user</name>
 <value>qiang</value>
 </property>
</configuration>

hdfs-site.xml

<configuration>
<!-- nn web 端访问地址-->
<property>
 <name>dfs.namenode.http-address</name>
 <value>hadoop102:9870</value>
</property>
<!-- 2nn web 端访问地址-->
<property>
 <name>dfs.namenode.secondary.http-address</name>
 <value>hadoop104:9868</value>
</property>
</configuration>

yarn-site.xml

<configuration>
 <!-- 指定 MR 走 shuffle -->
 <property>
 <name>yarn.nodemanager.aux-services</name>
 <value>mapreduce_shuffle</value>
 </property>
 <!-- 指定 ResourceManager 的地址-->
 <property>
 <name>yarn.resourcemanager.hostname</name>
 <value>hadoop103</value>
 </property>
 <property>
 <name>yarn.resourcemanager.address</name>
 <value>hadoop103:8088</value>
 </property>
</configuration>

mapred-site.xml

<configuration>
<!-- 指定 MapReduce 程序运行在 Yarn 上 -->
 <property>
 <name>mapreduce.framework.name</name>
 <value>yarn</value>
 </property>
</configuration>

不知道咋整了,百度论文有人说是jdk问题,我分别又把三台的jdk(原先16)改为8,可还是不行。
求助好心人。。。

阅读 6.2k
1 个回答

已解决,将三台机子上的服务器jdk都改为8,另外yarn-site.xml删除

<property>
 <name>yarn.resourcemanager.address</name>
 <value>hadoop103:8088</value>
</property>

初始化后再跑一遍就好了

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进