hadoop – 什麼是非DFS使用意味著什麼?
這是我最近在Web UI上看到的
Configured Capacity:232.5 GB DFS Used:112.44 GB Non DFS Used:119.46 GB DFS Remaining:613.88 MB DFS Used%:48.36 % DFS Remaining%:0.26 %
而我非常困惑,非dfs Used佔用了一半以上的容量,
我認為意味著一半的hadoop儲存被浪費了
在花費無意義的時間搜尋後,我只是格式化了namenode,從頭開始.
然後我將一個巨大的文字檔案(大約19吉位元組)從本地複製到HDFS(成功).
現在UI說
Configured Capacity:232.5 GB DFS Used:38.52 GB Non DFS Used:45.35 GB DFS Remaining:148.62 GB DFS Used%:16.57 % DFS Remaining%:63.92 %
在複製之前,DFS Used和Non DFS Used都是0.
因為DFS Used大約是原始文字檔案大小的兩倍,我配置了2個副本,
我猜,DFS Used是由原始和meta的2個副本組成的.
但是我仍然不知道哪些非DFS使用來自哪裡,為什麼它比DFS使用更多的capcity.
發生了什麼?我犯了錯嗎
“不使用DFS”按以下公式計算:
非DFS已使用=已配置容量 – 剩餘空間 – 使用DFS
至少對我來說還是令人困惑的.
因為
已配置容量=總磁碟空間 – 保留空間.
所以使用非DFS =(總磁碟空間 – 保留空間) – 剩餘空間 – 使用DFS
我們來舉個例子.假設我有100 GB磁碟,我將保留空間(dfs.datanode.du.reserved)設定為30 GB.
在磁碟上,系統等檔案最多使用40 GB,DFS已使用10 GB.如果你執行df -h
,您將看到該磁碟卷的可用空間為50GB.
在HDFS Web UI中,它將顯示
使用非DFS = 100GB(總計) –30 GB(保留) –10 GB(使用DFS) –50GB(剩餘)
= 10 GB
所以這實際上意味著你最初配置為預留30G用於非dfs使用,70G用於HDFS.然而,事實證明,非dfs使用超過了30G的預約,吃掉了應該屬於HDFS的10GB的空間!
術語“使用非DFS”應該被重新命名為“使用非dfs使用多少配置的DFS容量”
應該停止嘗試找出為什麼非dfs使用在hadoop內是如此之高.
一個有用的命令是lsof | grep delete,這將幫助您識別那些已被刪除的開啟檔案.有時,Hadoop程序(如hive,紗線,mapred和hdfs)可能會引用已經刪除的檔案.而這些引用將佔用磁碟空間.
另外du -hsx * |排序-rh |頭-10幫助列出十大最大的資料夾.
程式碼日誌版權宣告:
翻譯自:http://stackoverflow.com/questions/18477983/what-exactly-non-dfs-used-means