hadoop不能互相訪問和linux防火牆守護程式
作為裝過幾次叢集的菜鳥,對於hadoop叢集的安裝還是比較有心得的:只要配置檔案夠好,叢集配置就非常容易,否則也容易出現莫名其妙的問題!總結了一份3臺機器搭建較完好的叢集的一份配置檔案。
在我將叢集配置檔案,防火牆(自以為)、叢集時間、Java環境變數等等都搞定的情況下,竟然還是出了問題。
現象是訪問不了yarn的web埠。
因為我在機器上搭過好幾次叢集,可能存在版本不一樣的情況,所以我先用bin/hadoop version檢視了hadoop各個節點對應的hadoop版本,發現一樣(在其它場景中,我犯過這樣的錯誤);
jps檢視Java程式是首要的測試手段,但是沒發現明顯異常;
然後經典操作:看日誌,英語能對大佬來說可能是錦上添花,但對菜鳥來說就是落井下石,不過在logs目錄下隱隱發現一個問題,yarn所在機器的logs日誌沒有其它2個幾個節點的日誌,再看裡面檔案裡面內容並沒有明顯的報錯資訊。
然後看日誌、調網路搞了一晚上最終發現了一個十分明顯的問題,在非yarn機器上的機器日誌裡面顯示一直嘗試與yarn程式進行連線卻一直失敗,由此使用網路工具確定了是yarn所在節點自身的問題,使用curl -I檢視虛擬機器互相訪問的情況(沒有裝瀏覽器),也是發現yarn主機能自己訪問8088埠,但叢集裡面其它節點卻訪問不了改節點的8088埠,netstat -ntpl檢視網路埠情況發現一切正常。耗了一段時間後,錯誤資訊已經比較明顯是yarn主機的網路問題。
是不是防火牆問題?但是在最開始就已經使用systemctl disable firewall關了linux(centos7)的防火牆,並且用systemctl status firewall檢視了幾遍的防火牆並且一直都顯示沒有這個模組。
靈機一動,根據最近學習的linux知識,linux的服務守護程式daemon基本都是以d結尾的,然而這裡使用卻是firewall,少了個d。但是就醍醐一般的使用systemctl status firewalld檢視yarn主機的防火牆狀態,結果果然是active,一抹綠色優點扎眼。
systemctl disable firewalld關閉防火牆自啟動,systemctl stop firewalld關閉防火牆,然後刪除叢集的data和logs資訊,重新bin/hadoop namenode -format格式化namenode,重啟叢集,再jps看叢集狀態,windows瀏覽器訪問yarn的8088埠,終於一切正常了。
1這次出錯叢集的訪問狀態很多地方都有較明顯的問題,但是因為沒經驗所以get不到重點,所以空耗了許久。防火牆問題主要還是linux操作不規範和不熟悉,結果導致了一直以為自己執行正確的程式碼關閉了防火牆,最開始手熟使用firewalld,執行正確,結果反而讓自己覺得firewall(錯覺)也是正確的,機器尚且可能硬體出錯,更何況人呢。執行復雜操作時(叢集統一執行某操作)自動化指令碼時第一選擇,當然指令碼因為許可權、環境變數等問題也有可能發生問題,不過也還有測試自動化指令碼。
本次錯誤應該是在三臺機器關閉防火牆,第一次成功了,但第二、三次卻失敗了,但因為對linux操作不熟悉,以為是成功了。這種疲勞錯誤,應該多使用指令碼避免人的疲勞誤差。
總結:以上記載個人犯錯過程,以下對hadoop及linux做一些總結:
1、hadoop叢集出錯,首要檢測手段jps檢視Java的程式,注意是否有異常,如果有應該多加關注。缺點:對於某些問題Java程式不會及時體現出來,所以這個操作應該要經常使用,在大規模叢集裡面肯定要使用自動化指令碼進行相應管理,在大資料方面有進階的zookeeper框架可以管理整個叢集。
2、根據jps結果、bug的具體現象分析,bug是哪個型別的,如網路問題、配置問題、硬體問題(HA解決)等。
3、配置問題:檢視叢集的所有配置是否一致,hadoop框架本身的版本、hadoop及linux網路的配置檔案、叢集時間、namenode與datanode生成的版本資訊是否一致、data與logs檔案是否有隱藏的一些問題等。
4、網路問題:
4.1、windows主機網路是否與虛擬機器網路相連,可以使用ping命令,這個比較基礎,但也不得不查。
4.2、對於伺服器(沒有瀏覽器)web埠進行訪問,可以使用curl -I測試8088埠;ping命令不能測試埠,可以使用埠對應的工具(比如ssh登陸對應22號),或者使用專業的埠掃描工具進行測試。
4.3、關閉防火牆,centos7 systemctl disable firewalld關閉防火牆,centos7使用systemctl工具進行管理,其它linux版本應該使用對應的管理工具關閉防火牆。
4.4、使用netstat -nptl檢視linux系統的埠資訊,ip:埠,監聽ip上面的埠;0.0.0.0ipv4,::::ipv6,監聽本機所有ip的埠;需要開放的埠注意不要監聽127.0.0.1,監聽了loopback本地環回地址,則只能本地訪問。
5、硬體問題:叢集HA可以用secondarynamenode複製後設資料實現大部分(會丟失資料);主備模式則可以根據安全需求增加叢集的安全性,代價是資料冗餘大。
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/69934488/viewspace-2718414/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- Linux 防火牆只允許指定IP 埠訪問Linux防火牆
- Linux 守護程式Linux
- linux關閉防火牆命令 linux防火牆關閉和開啟命令Linux防火牆
- Linux守護程式及SystemdLinux
- Win2003和Win2008防火牆導致FTP伺服器不能訪問的解決方法防火牆FTP伺服器
- Linux防火牆命令Linux防火牆
- Linux配置防火牆Linux防火牆
- LINUX 防火牆 firewalldLinux防火牆
- Linux下的守護程式分析Linux
- linux 7 防火牆操作Linux防火牆
- Linux防火牆基礎Linux防火牆
- Linux 防火牆配置使用Linux防火牆
- 在Ubuntu上配置SSH訪問並關閉防火牆Ubuntu防火牆
- Linux基礎命令---httpd守護程式Linuxhttpd
- Linux守護程式的啟動方法Linux
- 修改防火牆規則,開放 Linux 的 3306 埠,外部訪問 MySQL 資料庫防火牆LinuxMySql資料庫
- Linux 防火牆配置(iptables和firewalld)詳細教程。Linux防火牆
- 使用Tor繞過防火牆進行遠端匿名訪問防火牆
- 守護程式
- Linux設定防火牆iptablesLinux防火牆
- Linux防火牆入門教程Linux防火牆
- Linux防火牆之netfilter/ptablesLinux防火牆Filter
- Linux——防火牆、SELinux規則Linux防火牆
- Linux 7新增防火牆埠Linux防火牆
- linux下mysql開啟遠端訪問許可權及防火牆開放3306埠LinuxMySql訪問許可權防火牆
- linux關閉防火牆命令是什麼 linux永久關閉防火牆命令分享Linux防火牆
- Hadoop叢集搭建之關閉防火牆(一)Hadoop防火牆
- 防火牆入侵於檢測——————3、思科 PIX 防火牆和 ASA 防火牆產品線防火牆
- win10系統下防火牆阻止程式訪問網路連線的方法Win10防火牆
- Linux 防火牆:關於 iptables 和 firewalld 的那些事Linux防火牆
- 在Linux中,如何配置防火牆和安全規則?Linux防火牆
- Linux防火牆介紹和iptables常用命令Linux防火牆
- Linux基礎命令---iptables防火牆Linux防火牆
- linux中的firewalld防火牆配置Linux防火牆
- 在Linux中,如何配置防火牆?Linux防火牆
- linux防火牆使用以及配置Linux防火牆
- Linux 7關閉防火牆方法Linux防火牆
- Node 程式守護