Hadoop常見錯誤解決


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


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM