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.xml <?xml version="1.0"?> <?xml-stylesheet type="text/xsl" href="configuration.xsl"?> <!-- Put site-specific property overrides in this file. --> <configuration> <!--global properties --> <property> <name>hadoop.tmp.dir</name> <value>/usr/hadoop/tmp</value> </property>
清空
[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