hadoop之深坑:
第一:hadoop长时间运行之后可能会出现stop-all.sh命令无效的情况,具体表现为hadoop各种进程关闭不掉。主要原因为hadoop在stop的时候依据的是datanode上的mapred和dfs进程号。而默认的进程号保存在/tmp下,linux默认会每 隔一段时间(一般是一个月或者7天左右)去删除这个目录下的文件。因此删掉hadoop-hadoop-jobtracker.pid和hadoop- hadoop-namenode.pid两个文件后,namenode自然就找不到datanode上的这两个进程了。此时应该手动杀死这些进程 kill -9 进程ID,然后在
H
A
D
O
O
P
H
O
M
E
/
c
o
n
f
/
h
a
d
o
o
p
−
e
n
v
.
s
h
中
修
改
H
A
D
O
O
P
P
I
D
D
I
R
=
HADOOP_HOME/conf/hadoop-env.sh中修改 HADOOP_PID_DIR=
HADOOPHOME/conf/hadoop−env.sh中修改HADOOPPIDDIR={HADOOP_HOME}/pids。
第二:hadoop的很多配置需要重新启动hadoop,一定要确保hadoop重启成功
花费了两天时间处理一个问题,一直在找错误原因,各种修改配置,最后还给集群弄崩了,最后发现是hadoop没有重启成功,问题的解决方式在第一次就搞定了。