anaconda在ubuntu中安装后没有_你的大数据平台中病毒了!!!记一次HDP安装后中dr.who病毒并修复的过程...
? ? ? ? 有些事還是經歷過了才知道“小心駛得萬年船”的道理啊。最近筆者幫一個客戶安裝HDP2.6.5版本的大數據平臺,最重要的是,這次安裝的背景是生產環境的云平臺遷移,不是普通的開發階段或者上線階段。
? ? ? ? ?剛開始拿到系統,自然一片空白,因此有些掉以輕心了。由于是云平臺且是新到位的環境,為了方便安裝,便直接開了全部網絡訪問來安裝。經過一兩天的折騰(過程自不必詳述,不是本文的重點),終于完成一個master節點、一個standby節點+3個datanode節點的hdp安裝。由于經驗不足,加上工作疏忽,忘記了提醒客戶調整網絡策略,于是兩天后悲劇就發生了。
? ? ? ? ?最開始出現的癥狀是,mapreduce任務和hive任務都跑的巨慢,
深入看看,發現有兩個問題,1.是yarn的nodemanger起不來,2是yarn資源管理上出現了一些奇怪的進程,如下:
? ? ?? 很明顯,看到dr.who這么異常的用戶,我們馬上感覺不對勁,各種百度找原因,最后確認我們中毒了。重點關注到的是下面的文章,但是很遺憾,沒用給出對應的解決方案。
? ? ???網上找了一些資源,一開始就是蒙的,只能求助于云平臺。雖然工作很久了,但是以前的Linux環境大多都是內部網絡,第一次接觸到Linux中毒的情況。結果云平臺又是斷網查殺,又是重啟,可是最終還是沒能解決我們的問題,唯一給出的消息就是,經過診斷,三臺datanode中毒了,另外兩臺maser節點沒問題。當時距離遷移結束尚有四五天的時間,于是在苦惱兩天以后,決定重新安裝datanode。云平臺給的建議也是重裝系統。
? ? ? ?經過一番苦戰,我們把三臺datanode節點下線以后,直接重置系統,全部清空。然后安裝ambari-agent,讓ambari-server和ambari-agent建立通信,在三個ambari-agent上初始化客戶端+datanode+nodemaneger等。初始化完成以后,也遇到一個問題,這里也記錄一下。需要執行hdfs hadoop ?dfsadmin -safemode leave讓集群離開安全模式,然后刪除丟失文件的目錄。重新安裝以后,經過一番折騰,恢復數據和文件,終于把集群又運行起來了。
? ? ? ? ?然而,命運總是喜歡開玩笑。在系統穩定運行一周后,由于云平臺管理人員的失誤,本應針對應用服務器開放8080端口的需求誤操作成對所有云平臺開放8080端口,于是已經在生成環境的服務器再次出現故障,nodemanger每次一啟動就down掉。聯系云廠商,再次殺掉,折騰了一臺以后未見任何進展。我們利用周末時間翻遍了百度、谷歌、必應的各種文章以后,仍未找到合理的解決方案。
? ? ? ?在周一即將到來、系統即將迎來大面積訪問的關頭,我們都做好了要再次重裝datanode的準備,然而另外一位同事部署的kafka程序及spark程序不愿意再次配合修改,因此我們只能選擇再推遲一天重裝來解決此問題。
? ? ? 在周日的晚上十一點多,點的外賣到了一個多小時還沒吃的時候,我最后一次嘗試卸載一個節點的nodemanger然后重裝,在啟動的時候偶然遇到錯誤,提示里面有dr.who的錯誤,讓我意識了這么多次nodemanger一啟動就down掉并且不報錯可能跟這個病毒有關。于是我開始在網上查找相關資料。
最有用的是下面這篇博文,https://www.cnblogs.com/daxiangfei/p/9198856.html,然而內容過于簡單,只給了解題思路,沒用給解題步驟。
? ? ?參照本文的說明,我現實在yarn用戶的crontab找到系統定時任務,雖然已經注釋,但是我還是手動刪掉了。
? ? ?由于定時任務是yarn用戶的,根據經驗,我就開始查看yarn用戶的進程,ps -ef|grep yarn,于是看到了四個很奇怪的進程,很明顯,這就是所謂的挖礦程序。二話不說,我就kill掉了四個進程,然后再次啟動nodemanger。在啟動過程中我還不是查看yarn的用戶的進程,想看看是不是有命令會殺掉nodemanger經常。
結果就看到了,挖礦程序是伴隨這個nodemanger啟動的,這是,我有兩個懷疑,第一,這個挖礦程序修改了nodemanger啟動腳本,嵌入到了nodemanger啟動過程中;第二,nodemanger容器中包含挖礦程序,導致nodemanger一啟動就要執行挖礦任務,“不堪重負累死了”。從表面上看第一個推理比較合理,于是我認真查找挖礦進程對應的腳本并且進行各種刪除,但是多次重啟以后還是存在挖礦程序同步啟動的情況。于是只能嘗試第二種思路,第二個設想從其它博文中看到一句命令后就驗證了。yarn top命令可以查看yarn正在運行的進程。
? ? ? 這樣問題請很清晰了,大量的dr.who的挖礦程序在yarn隊列中是提交狀態,所以nodemanger一啟動就需要開始干活,資源不足或者被挖礦程序搶占了CPU資源所以導致nodemanger啟動后馬上就悄悄的死掉了。認識到來這一點,我開始查詢yarn的其他命令行以及怎么殺死這些任務。
? ? ? 在嘗試幾次批量查殺后發現進程依然沒有減少,于是網上百度查找yarn批量查殺進程的方法。
? ? ? 最后終于找到一個非常好用的命令。在我執行的時候,奇跡出現,dr.who的進程在一個一個得減少,慢慢的mapreduce就出現了,再到后來全部是mapreduce任務和hive任務。這個命令真的很神奇,殺了一堆有害進程,但是對合理的進程全部保留。
# 刪除處于ACCEPTED狀態的任務for i in ?`yarn application ?-list | grep -w ?ACCEPTED | awk '{print $1}' | grep application_`; do yarn ?application -kill $i; done
? ? ??這是我終于看到了曙光。我在保障所有節點的yarn用戶crontab里面沒用定時任務以后,登錄ambari開始啟動nodemanger。正當我點開頁面的時候,奇跡出現了,所有的nodemanger滿血復活。
? ? ? ?等我重新提交任務以后,yarn平臺也正是恢復正常,tez和mapreduce任務正常執行。
? ? ? ?于是,在產生更嚴重的生產事故之前,hdp平臺就這樣被我修復了。經過一天的穩定運行,平臺也安然無恙。至此,我修復了一次重大的生成事故。
? ? ? ?最后補充說一下,可能由于挖礦程序的升級,"檢查/tmp和/var/tmp目錄,刪除java、ppc、w.conf等異常文件"這一條已經完全失效了,找不到任何對應的文件。? ? ? ??總結一下,遠程木馬通過yarn的8080端口提交了包含挖礦程序的shell腳本任務給yarn執行,yarn執行以后就產生了crontab定時任務和挖礦進程。由于木馬一次性提交了大量(大概一兩百個)的相同任務給yarn,所以殺死一兩個并不能解決問題,只有全部殺死,才能再次啟動nodemanger。
《數據中臺研習社》微信群,請添加微信:laowang5244,備注【進群】
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ??分享、點贊、在看,給個三連擊唄!?
總結
以上是生活随笔為你收集整理的anaconda在ubuntu中安装后没有_你的大数据平台中病毒了!!!记一次HDP安装后中dr.who病毒并修复的过程...的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: windows下python搭建网站_W
- 下一篇: img 隐藏_CSS3界面样式和溢出文字