1. WARN org.apache.hadoop.hdfs.server.datanode.DataNode: IOException in offerService java.io.IOExce
出现这个问题多数是由于多次 format 后的文件系统版本不同造成的
解决办法:
删除所有有关名字空间和 secondaryname 的文件,再删除有关hbase的文件;
然后格式化 master, 并且格式化所有的slaves节点。
2. WARN org.apache.hadoop.security.UserGroupInformation: No groups available for user dr.who
注意上述代码的最后几行发出的警告信息,意思是说对于dr.who这个用户,没有有效的组归属,在hadoop的权限认证中,如果默认没有用户组声明,就会把当前的这个hadoop用户,归属于dr.who用户,当然这个用户在我们的用户组里面是不存在的,所以log里面就记录了这个warn信息。
解决方式 1. 在core-site.xml里面添加如下配置:
1 | <property> |
解决方式 2. 在当前的用户组里面添加一个dr.who的用户
1 | # 将dr.who用户添加到hadoop用户组里面 |
如此就能通过linux的权限验证,改完之后,重启hadoop集群之后,就不会出现这样的警告了
3. You have loaded library /hnbian/hadoop-2.2.0/lib/native/libhadoop.so.1.0.0
在 etc/profile 中加入如下代码
1 | export HADOOP_OPTS="-Djava.library.path=$HADOOP_HOME/lib" |
4. util.NativeCodeLoader: Unable to load native-hadoop library for your platform… using builtin-java classes where applicable
官方详细文档请参阅:http://hadoop.apache.org/docs/current/hadoop-project-dist/hadoop-common/NativeLibraries.html
5. hadoop启动时:ssh: Could not resolve hostname ‘,: Name or service not known
1 | # 1. 编辑配置文件 |
6. Unable to load native-hadoop library for your platform… using builtin-java classes where applicable
- 详细报错信息如下:
1 | Unable to load native-hadoop library for your platform... using builtin-java classes where applicable |
- 解决问题
1 | # 编辑下面的配置文件 |
7. yarn 起不来,需更改端口号
修改 yarn-site.xml 配置文件
1 | <property> |
8. java.io.IOException: Incompatible clusterIDs in *****
问题原因:
- 主节点的namenode clusterID与从节点的datanode clusterID不一致
- 多次格式化了namenode跟datanode之后的结果,格式化之后从节点生成了新的ID,造成不一致
解决办法:
- 在格式化之前,先把所有的服务停掉(stop-dfs.sh、stop-yarn.sh或者stop-all.sh),确保都停掉了之后,
- 分别到所有节点的namenode目录、datanode目录、临时目录,把以上目录里面的所有内容都删除掉。
- 然后再重新启动就可以了。
9. no length prefix available
由于DataNode终止了block的传输,所以client会出现这种错误,导致client无法正常数据读写,
查询NameNode和相应DataNode的错误日志即可发现错误原因。
1 | noclassdeffounderror:%20org/apache/hadoop/yarn/util/Apps |
添加yarn 的所有jar即可
10. Operation category READ is not supported in state standby
- 问题描述
在执行 hive 命令时,报错信息如下
1 | Exception in thread "main" java.lang.RuntimeException: org.apache.hadoop.ipc.RemoteException(org.apache.hadoop.ipc.StandbyException): Operation category READ is not supported in state standby |
初步判断是由于HA节点中处于standby状态造成的异常
- 问题验证
1 | # 执行命令 |
- 解决问题
1 | # 强行将 namenode1 状态转换为 active |
11. HADOOP:WARN util.NativeCodeLoader: Unable to load native-hadoop library for your platform… using builtin-java classes where applicable
- 通常编译好的 hadoop 库是在 lib 中,如果你不想编译,可以用 lib/native 里面的预编译库,然后把 native 的库移动到 lib 文件夹中。
1 | cp hadoop-2.6.0/lib/native/* hadoop-2.6.0/lib/ |
- 加入系统变量
1 | export HADOOP_COMMON_LIB_NATIVE_DIR=/home/administrator/work/hadoop-2.6.0/lib/native |
12. hadoop Safe mode is ON
- 报错信息
1 | org.apache.hadoop.hdfs.server.namenode.SafeModeException: Cannot delete /home/hadoop/tmp/mapred/system. Name node is in safe mode. |
- 解决方式
1 | # 强制离开安全模式 |