Hadoop/Spark環境運行過程中可能遇到的問題或注意事項


  1、集群啟動的時候,從節點的datanode沒有啟動

    問題原因:從節點的tmp/data下的配置文件中的clusterID與主節點的tmp/data下的配置文件中的clusterID不一致,導致集群啟動時,hadoop會殺死從節點的datanode進程。

    解決方案:

    a)  將集群關閉;

    b)  刪除你在hadoop配置中設置的tmp下的data和name中的內容(每一個節點都要做這個操作

    c)  重新格式化一次hdfs

    d)  重啟集群,問題解決

  2、集群啟動時,jps顯示所有的hadoop進程都已經存在,但是宿主機的瀏覽器打不開監控頁面

    問題原因:集群中的所有節點的防火牆沒有被禁用,導致宿主機無法訪問監控界面。

    解決方案:

    a)  將防火牆禁用(每一個節點都要做這個操作

          centos 7:

          systemctl stop firewalld.service #停止

          systemctl disable firewalld.service #禁用

        之前的版本:          
         service iptables stop #停止
         
chkconfig iptables off #禁用
   b)  問題解決。
 3、啟動sparkshell的時候出現錯誤:
  Call From master to master:8020 failed on connection exception: java.net.ConnectException: Connection refused
   問題原因:端口設置錯誤或者集群未啟動導致通信失敗
   解決方案:
   a)  先jps查看是否集群啟動,如果啟動則非此原因
   b)  查看hdfs配置時候端口是8020
   c)  hdfsm默認端口為9000
 4、提交任務到集群的時候報錯:
  ERROR SparkDeploySchedulerBackend: Application has been killed. Reason: All masters are unresponsive!
  解決過程:
  a) 先前我以為是scala版本不對,因為官網上spark默認所支持的scala版本是scala2.10,想要支持scala2.11.需要自行編譯。而我用的時scala2.11,所以
  我把集群中scala版本全部換成2.10版本。但是問題未得到解決。
  b) 上網看到有人遇到相同的問題,說是spark提交任務的時候(如果通信工具沒有改變的話,kafka另論),默認使用spark自帶的通信工具akka,但是akka只  能夠識別IP主機映射的hostname,而無法識別IP地址,所以我把集群中的每個節點的spark配置文件中的spark_master_ip修改為hostname(master主節點名  字),集群重啟后,問題得到解決。
 5、在Spark集群提交任務后報錯:
  You need to build Spark before running this program.
  Initial job has not accepted any resources; check your cluster UI to ensure
  通過查看日志發現,主節點的配置文件spark-evn.sh無故丟失(具體原因不詳,可能是我在操作的時候在UI界面kill了一個任務導致),於是把其他節點的spark-evn.sh復制到主節點,集群服務全部關閉,主節點重啟,服務重啟,問題解決。
 6、Spark的Application(print一個結果)在提交到yarn的時候,成功執行完成,但是沒有打印結果:
  Spark提交任務到yarn的時候有兩種模式:yarn-client和yarn-cluster,yarn-client適合於日常生產,而yarn-client更適合於交互,可以作為測試使用。詳細介紹請參看:《
Spark:Yarn-cluster和Yarn-client區別與聯系
  
所以,剛剛提交任務的時候我采用的是cluster模式,故沒有打印結果,換成client模式就可以了。
 7、Spark提交任務后,Application運行成功,但是在SparkUI沒有顯示Application:
  原因:Spark的缺省配置spark-default.conf沒有打開
  解決方案,去掉
spark-default.conf.template最后的 .template,重啟集群,問題解決!
  PS: 其實1.4版本不打開這個spark-default.conf.template,spark默認在UI不可以顯示的,這是因為你設置的主節點主機名不是master,而spark默認顯示是master,所以UI無法正確顯示Application。 另外,spark-submit提交任務到其他集群,在SparkUI中也是無法顯示的,只能在對應的集群管理界面找到,一定要注意這一點!
 8、Spark On Yarn運行時,設置歷史記錄:spark.history.fs.logDirectory要與spark.eventLog.dir指向同一目錄,否則無法正確顯示歷史日志!
 9、Spark On Yarn提交任務模板:spark-submit --master yarn-cluster --deploy-mode cluster --class com.quanttech.ASL.MoviesRecommond  hdfs://192.168.2.201:54310/user/bigdata/script/zj/ScalaTestRecommond.jar
如有其他問題,我會后續更新!O(∩_∩)O


免責聲明!

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



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