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";