1. 通过命令和查看日志文件查看hadoop启动和运行情况
在NameNode端,可以通过
tail -100 /var/log/hadoop/hadoop/hadoop-hadoop-namenode-hadoop-namenode.log
查看NameNode的运行日志
在DataNode端也可以通过
cat /var/log/hadoop/hadoop/hadoop-hadoop-datanode-hadoop-datanode1.log
查看DataNode的运行日志。
通过jps命令分别在datanode和namenode端运行,查看已启动的服务。
2. NameNode不能启动:
Cannot lock storage ……tmp/dfs/name. The directory is already locked.
也许是因为执行hadoop的账号对这个文件夹tmp/dfs/name没有权限。可以使用如下命令解决
chown -R hadoop:hadoop /usr/hadoop
3. DataNode不能启动:
在客户端日志显示 namenode namespaceID = 1713611278; datanode namespaceID = 596511341
这个问题基本上是因为在namenode端多次运行hadoop namenode –format 导致的。在hadoop的core-site.xml文件中(不同的hadoop版本名字会有不同)找到<name>hadoop.tmp.dir</name>,清空对应的文件夹。举例:
[hadoop@hadoop-datanode1 hadoop]$ cat core-site.xmlhadoop.tmp.dir /usr/hadoop/tmp
清空
[hadoop@hadoop-datanode1 tmp]$ rm -rf /usr/hadoop/tmp/*
然后重新启动hadoop,在datanode端用jps看是否datanode已经启动了。
4. 运行wordcount程序时fs找不到文件夹:
Input path does not exist: hdfs://localhost:9000/user/input
在集群环境中,处理的文件都是在hdfs中,所以必须把要处理的文件复制到hadoop 某个文件夹中。下面举例,在fs中新建文件夹,把提前做好的wordcount文件复制带hdfs中,最后运行程序。
[hadoop@hadoop-namenode ~]$ hadoop fs -mkdir /tmp/wordcount/input[hadoop@hadoop-namenode ~]$ hadoop fs -put /home/hadoop/wordcount/input /tmp/wordcount/input[hadoop@hadoop-namenode ~]$ hadoop fs -ls /tmp/wordcount/input hadoop jar /home/hadoop/hadoop-examples-1.1.2.jar wordcount /tmp/wordcount/input/input /tmp/wordcount/output
查看结果
hadoop fs -cat /tmp/wordcount/output/part-r-00000