1. 程式人生 > >Hadoop常見問題一

Hadoop常見問題一

1.在使用Hadoop的有關命令的時候,出現Warnning ...等提示時?

這是因為JDK內部的原因而導致的,所以提示建議選用不同版本的JDK。本人剛開始使用的是:JDK11,Centos作業系統,hadoop2.9.2,在進行hadoop命令操作時,出現Warnning,之後將JDK11改為JDK8後,使用hadoop命令不在出現警告,當然讀者也可以嘗試不同的JDK版本。

2.在linux中執行jar檔案?

在window下使用eclipseIDE進行java原始碼的編輯,然後打包成jar檔案,然後上傳到Hadoop所在的主機上,然後啟動hadoop的所有元件,進而使用hadoop jar xxx.jar檔案,這裡有一個問題注意:在window中使用的JDK的版本需要與hadoop上配置的JDK的版本一致,因此Java支援高版本JVM執行低版本的class檔案,但是不支援低版本的JVM執行高版本編譯的class檔案。

3.注意hadoop的類路徑配置問題

當執行jar檔案的時候,提示Could not find or load main class XXXXX.jar,主要原因是沒有執行時沒有找到jar包,有兩種方式:一種是使用export HADOOP_CLASSPATH="XXX" 或者在 hadoop-env.sh中新增export HADOOP_CLASSPATH="XXX".

4.啟動hadoop的各個元件的時候,沒有namenode節點?

配置:core-site.xml

<property>
           <name>hadoop.tmp.dir</name>
           <value>xxxx</value>  //不要是temp檔案就是,預設是temp檔案,但是temp檔案在每次重啟後內容會被清空
           </property>

配置完成後,,需要先初始化namenode節點: 使用 hadoop namenode -format

5.在從HDFS中讀取檔案的時候,URI的注意事項?

如果core-site.xml中的配置如下:

 <name>fs.defaultFS</name>
            <value>hdfs://localhost/</value>

則在編輯JAVA程式碼的時候,確定URI的時候需要和這個一致,應該是:

String uri="hdfs://localhost/test/test.txt";