hadoop之安全模式及SafeModeException
問題: hadoop啟動的時候報錯
HTTP ERROR 500
Problem accessing /nn_browsedfscontent.jsp. Reason:
Cannot issue delegation token. Name node is in safe mode.
The reported blocks 0 needs additional 10 blocks to reach the threshold 0.9990 of total blocks 10.
Safe mode will be turned off automatically
Caused by:
org.apache.hadoop.hdfs.server.namenode.SafeModeException: Cannot issue delegation token. Name node is in safe mode.
理論:
Hadoop的安全模式
在分散式檔案系統啟動的時候,開始的時候會有安全模式,當分散式檔案系統處於安全模式的情況下,檔案系統中的內容不允許修改也不允許刪除,直到安全模式結束。安全模式主要是為了系統啟動的時候檢查各個DataNode上資料塊的有效性,同時根據策略必要的複製或者刪除部分資料塊。執行期通過命令也可以進入安全模式。在實踐過程中,系統啟動的時候去修改和刪除檔案也會有安全模式不允許修改的出錯提示,只需要等待一會兒即可。
在hadoop叢集的時候,叢集的執行會進入到安全模式(safeMode)下。在安全模式下執行一段時間後,自動退出。
1.那麼,系統在安全模式下幹什麼了?
當叢集啟動的時候,會首先進入到安全模式。系統在安全模式下,會檢查資料塊的完整性。假設我們設定的副本數(即引數dfs.replication)是5,那麼在dataNode上就應該有5個副本存在,假設只存在3個副本,那麼比率就是3/5=0.6。
在配置檔案hdfs-default.xml中定義了一個最小的副本率,見圖7-1
我們的副本率0.6明顯小於0.999,因此係統會自動的複製副本到其他dataNode,爭取是的最小副本率>=0.999。如果系統中有8個副本,超過我們設定的5個副本,那麼系統也會刪除多於的3個副本。
2.安全模式對我們有什麼影響?
這時,不允許客戶端進行任何修改檔案的操作,包括上傳檔案、刪除檔案、重新命名、建立資料夾等操作。比如,建立檔案時,在原始碼中就有對安全模式的判斷,如圖7-2
當我們在安全模式下進行修改檔案操作時,會報出如下錯誤.
正常情況下,安全模式會執行一段時間自動退出的。只需要我們稍等一會就可以了。到底等多長時間哪,我們可以通過50070埠檢視安全模式退出的剩餘時間,如圖7-4。
雖然不能進行修改檔案的操作,但是可以瀏覽目錄結構、檢視檔案內容的。
3.我們可以控制是否進入或者退出安全模式嗎?
在命令列下是可以控制安全模式的進入、退出和檢視的,
命令hadoop fs –safemode get 檢視安全模式狀態
命令hadoop fs –safemode enter 進入安全模式狀態
命令hadoop fs –safemode leave 離開安全模式狀態
安全模式,是hadoop叢集的一種保護機制,在啟動時,最好是等待叢集自動退出,然後再進行檔案操作。
解決:
方法一:
safemode模式
NameNode在啟動的時候首先進入安全模式,如果datanode丟失的block達到一定的比例(1-dfs.safemode.threshold.pct),則系統會一直處於安全模式狀態即只讀狀態。
hadoop dfsadmin -safemode leave
有兩個方法離開這種安全模式
1. 修改dfs.safemode.threshold.pct為一個比較小的值,預設是0.999。
2. hadoop dfsadmin -safemode leave命令強制離開
方法二:
jps檢視各個節點啟動的程式
hadoop-daemon.sh start XX資源名 XX節點名
檢視日誌(若資源埠被佔用,如50010埠被佔用)
可以將佔用此埠的程式殺掉或是更改hdfs-site.xml中的<name>dfs.datanode.address</name><value>0.0.0.0:50010</value>
殺掉程式釋放埠方法:
1、netstat -tln | grep 50010,檢視這個埠使用情況;
2、lsof -i:50010,顯示是哪個程式佔用此埠
3、kill -9 程式的PID,殺掉這個程式,重啟節點服務即可。
補充:
dfsadmin -safemode value 來操作安全模式,引數value的說明如下:
enter – 進入安全模式
leave – 強制NameNode離開安全模式
get – 返回安全模式是否開啟的資訊
wait – 等待,一直到安全模式結束。
本文轉自 張衝andy 部落格園部落格,原文連結: http://www.cnblogs.com/andy6/p/7660281.html ,如需轉載請自行聯絡原作者
相關文章
- hadoop之 安全模式及SafeModeExceptionHadoop模式Exception
- Hadoop叢集之淺析安全模式Hadoop模式
- Hadoop安全模式和機架感知Hadoop模式
- 雲端計算課程實驗之安裝Hadoop及配置偽分散式模式的HadoopHadoop分散式模式
- Hadoop學習之YARN及MapReduceHadoopYarn
- 4.hadoop之偽分散式模式Hadoop分散式模式
- Ubuntu下偽分散式模式Hadoop的安裝及配置Ubuntu分散式模式Hadoop
- Hadoop之MapReduce2基礎梳理及案例Hadoop
- 設計模式之單例模式(執行緒安全)設計模式單例執行緒
- Hadoop之HDFS及NameNode單點故障解決方案Hadoop
- hadoop之 hadoop用途方向Hadoop
- PHP介面HTTP安全認證之Basic模式PHPHTTP模式
- hadoop之 hadoop 機架感知Hadoop
- Hadoop之JPS命令及真假現象(process information unavailable)HadoopORMAI
- Hadoop 學習之-網路配置及免密碼登入Hadoop密碼
- hadoop 之Hadoop生態系統Hadoop
- hadoop之 HDFS-Hadoop存檔Hadoop
- hadoop3.1.3 local 模式配置Hadoop模式
- Hadoop偽分佈模式(HDFS)Hadoop模式
- hadoop之 hadoop日誌存放路徑Hadoop
- hadoop之 Hadoop 2.x HA 、FederationHadoop
- hadoop之上傳資料到hdfs模式Hadoop模式
- Hadoop實戰-中高階部分 之 Hadoop 管理Hadoop
- web安全之XSS攻擊原理及防範Web
- Web安全之XSS Platform搭建及使用實踐WebPlatform
- Web安全之XSSPlatform搭建及使用實踐WebPlatform
- 程式碼安全之程式碼混淆及加固(Android)?Android
- Hadoop系列之Hbase的高可用完全分佈模式的安裝(六)Hadoop模式
- android常用設計模式之代理設計模式及動態代理原理Android設計模式
- 【設計模式】設計模式學習筆記之(一)——類圖、物件之間的關係及設計模式概要設計模式筆記物件
- Ubuntu 16.04 Hadoop-2.7.3全分佈模式 + eclipse hadoopUbuntuHadoop模式Eclipse
- Hadoop面試題之HDFSHadoop面試題
- Hadoop面試題之MapReduceHadoop面試題
- Hadoop原理之——HDFS原理Hadoop
- Hadoop之 Balancer平衡速度Hadoop
- Hadoop實戰-中高階部分 之 Hadoop RPCHadoopRPC
- 大資料時代之hadoop(一):hadoop安裝大資料Hadoop
- 小丸子學Hadoop系列之——部署Hadoop叢集Hadoop