+-
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,可还是不行。
求助好心人。。。

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

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

初始化后再跑一遍就好了