大數據教程(6.7)第六章問題總結

    本篇博主將介紹你們中學習前面的hadoop文章中可能出現的問題。java

    首先,可能涉及的命令:node

#命令:startx啓動linux圖形界面

#設置時間(或者也可以使用ntp作linux時間同步)
sudo date -s  "2018-11-06 21:00:00"
#安裝tree命令(可用於查看進程、目錄等)
yum install -y tree
#遞歸查看根目錄
ll -R /

    1、運行mr程序出錯linux

#錯誤效果
connecting to resoucemanager 
retrying ....  
retrying .....
#緣由是沒有啓動yarn或者啓動失敗

    2、初始化工做目錄結構apache

           hdfs namenode -format 只是初始化了namenode的工做目錄,而datanode的工做目錄是在第一次將datanode啓動後本身初始化的。若是將datanode的原來的工做目錄刪除掉,再次啓動會獲得一個全新的datanode。windows

    3、datanode不被namenode識別的問題api

           namenode在format初始化的時候會造成兩個標識:blockPoolId、clusterId;這兩個標識會在datanode初始化成功加入集羣后記錄到namenode的工做空間,標識該namenode所屬的hdfs集羣的惟一標識。若是namenode從新format後,這兩個值會生成新的值,原來的namenode就沒法被識別,此時須要刪除原來的namenode的工做目錄,從新啓動。安全

    4、datanode下線後多久看到效果
           datanode沒有作相似於以前文章中提到的利用zookeeper作成服務動態感知的方式,不是一下線就會被namenode認定爲下線的,有一個超時時間。服務器

    5、關於副本數量的問題oop

           副本數由客戶端的參數dfs.replication決定(優先級: 代碼conf.set() >  自定義配置文件 > jar包中的hdfs-default.xml),服務器上配置的那個值 只對命令行客戶端生效。學習

    6、HADOOP_HOME or hadoop.home.dir are not set問題

[main] DEBUG org.apache.hadoop.util.Shell  - Failed to detect a valid hadoop home directory
java.io.IOException: HADOOP_HOME or hadoop.home.dir are not set

          1.在windows中設置環境變量HADOOP_HOME和hadoop.home.dir

          2.若是還不行就在代碼中初始化hdfs客戶端以前設置系統環境變量:

    ·        windows中:System.setProperty("hadoop.home.dir", "E:\\\\hadoop-2.9.1");

             linux中:System.setProperty("hadoop.home.dir", "/usr/local/hadoop-2.9.1");

    7、windows鏈接上hdfs服務器後,安全模式關閉後,java程序可讀取可是不能寫操做,

           這是由於默認是用當前用戶名去通訊的;解決方案:(1)可關閉權限校驗或去改當前用戶名(2)System.setProperty("HADOOP_USER_NAME","xxx");

    8、windos中命令運行hdfs api是報錯

           檢查本身是否已經將hadoop在本機上編譯生成的文件放入相應的hadoop目錄。

    最後寄語,以上是博主本次文章的所有內容,若是你們以爲博主的文章還不錯,請點贊;若是您對博主其它服務器大數據技術或者博主本人感興趣,請關注博主博客,而且歡迎隨時跟博主溝通交流。

相關文章
相關標籤/搜索