Hadoop环境搭建问题汇总

一、启动HDFS时dataNode一直没有启动

我们执行hdfs启动命令后,再输入 jps 命令查看启动进程,发现没有DataNode进程

hadoop namenode -format

sbin/start-dfs.sh

原因

当我们使用 hadoop namenode -format 格式化namenode时,会在namenode数据文件夹(这个文件夹为自己配置文件中dfs.name.dir的路径我的是 /usr/local/hadoop/tmp 下面的name和data文件夹)中保存一个current/VERSION文件,记录clusterID,datanode中保存的current/VERSION文件中的clustreID的值是上一次格式化保存的clusterID,这样,datanode和namenode之间的ID不一致。

namenode和datanode路径配置 vim etc/hadoop/hdfs-site.xml

解决方法

  • 第一种:如果dfs文件夹中没有重要的数据,那么删除dfs文件夹,再重新运行下列指令: (删除所有节点下的dfs文件夹,dfs目录在${HADOOP_HOME}/tmp/)

  • 第二种:如果dfs文件中有重要的数据,那么在dfs/name目录下找到一个current/VERSION文件,记录clusterID并复制。然后dfs/data目录下找到一个current/VERSION文件,将其中clustreID的值替换成刚刚复制的clusterID的值即可;

再次启动后输入 jps 即可查看启动情况


二、Hadoop 50070端口无法打开

问题一:配置的时候遇到 JAVA_HOME not set

解决办法:必须在hadoop-env.sh文件中设置JAVA的绝对路径


问题二:能正常启动集群,能看8088端口,但是无法查看50070,但是Namenode和datanode已经能JPS查看

解决办法:首先排除了防火墙的问题,后来看需要格式化,可能我重新修改hadoop-env之后我没有namenode-format了


问题三:namenode format后,能启动了,但是dfsadmin -report发现datanode没有启动

解决办法,还好,以前有过这个经验,修改tmp下面的各个slave的VERSION中的clusterID即可,和namenode匹配。详细见


三、org.apache.hadoop.ipc.RpcException: RPC response exceeds maximum data length 错误

 Exception in thread "main" java.io.IOException: Failed on local exception: org.apache.hadoop.ipc.RpcException: RPC response exceeds maximum data length; Host Details : local host is: "mzmuer/172.19.82.225"; destination host is: "localhost":9870;
    at org.apache.hadoop.net.NetUtils.wrapException(NetUtils.java:808)
    at org.apache.hadoop.ipc.Client.getRpcResponse(Client.java:1495)
    at org.apache.hadoop.ipc.Client.call(Client.java:1437)
    at org.apache.hadoop.ipc.Client.call(Client.java:1347)
    at org.apache.hadoop.ipc.ProtobufRpcEngine$Invoker.invoke(ProtobufRpcEngine.java:228)
    at org.apache.hadoop.ipc.ProtobufRpcEngine$Invoker.invoke(ProtobufRpcEngine.java:116)
    at com.sun.proxy.$Proxy11.getBlockLocations(Unknown Source)
    at org.apache.hadoop.hdfs.protocolPB.ClientNamenodeProtocolTranslatorPB.getBlockLocations(ClientNamenodeProtocolTranslatorPB.java:305)

解决方法: 
1.通过 jps 查看namenode和datanode是否启动。未启动需要调用start-dfs启动。 
2.查看core-site.xml配置文件中的fs.default.name属性。是否是请求的链接。请求到了错误的链接也可能是该错误. 


猜你喜欢

转载自blog.csdn.net/zxl646801924/article/details/84586031