1. 程式人生 > >關於hadoop hdfs中Non DFS Used佔用很大的問題分析處理

關於hadoop hdfs中Non DFS Used佔用很大的問題分析處理

今天幫一個朋友處理hdfs上Non DFS Used佔用很大的問題,
從hadoop UI介面看到的節點資訊儲存容量:
Capacity| Used| Non DFS Used| Remaining
4.46T| 1.69T| 1.46T| 1.31T
Non DFS Used怎麼有這麼大,於是先看看dfs.datanode.du.reserved配置,10G很正常,那去看看dfs.datanode.data.dir目錄,是單獨的硬碟掛載的,沒有大的資料檔案,奇怪了,網上也沒有這方面的內容,問了下情況,叢集之前重新安裝過,而且沒有刪除之前的資料,相當於對hadoop進行多次的-format命令,

網上有提到在執行格式化Hadoop namenode -format命令時,要避免namenode的namdespaceid與datanode的namespaceid的不一致。這是因為每格式化一次就會產生name,data,temp等臨時檔案記錄資訊,多次格式化會產生很多的name,data,temo,這樣容易導致id的不同,使hadoop不能正常執行。每次執行格式化-format命令時,就需要將datanode和namenode上原來的data,temp檔案刪除。

檢視群集狀態,
$ hdfs dfsadmin -report
Configured Capacity: 53895745536 (50.19 GB)
Present Capacity:8199200768 (7.64 GB)

DFS Remaining:8199159808 (7.64 GB)
DFS Used: 4048 (4KB)
DFS Used%: 0%
Under replicatedblocks: 0
Blocks with corruptreplicas: 0
Missing blocks: 0
多次format可能出現上邊的現象,Configured Capacity容量很大(50.19 GB),Present Capacity當前可用的很小(7.64 GB),目前只能使用7.64 GB的儲存空間。

正常應該是這樣的Configured Capacity和Present Capacity差不太多。

Configured Capacity: 1029272616960 (958.58 GB)
Present Capacity: 980762734592 (913.41 GB)
DFS Remaining: 949024047104 (883.85 GB)
DFS Used: 31738687488 (29.56 GB)
DFS Used%: 3.24%
Under replicated blocks: 0
Blocks with corrupt replicas: 0
Missing blocks: 0

這個問題引起的原因是重新安裝叢集的時候沒有將原來的nn、dn等目錄資料清除,datanode儲存目錄可能出現了多個BP開頭的檔案,其實只有一個是現在使用的,其他的是之前的,需要清除,與VERSION檔案的日期一直的是當前使用的,將其他的MV到一個目錄,觀察下業務資料是否正常,沒問題再刪除了。

還有一種情況:

hdfs Non DFS Used 佔用空間大,用du -h 看磁碟空間還在,但web頁面顯示Non DFS Used佔用特別多的空間,整個叢集的Remaining空間幾乎沒有了
解決方案:
重啟hadoop 的 historyserver
mr-jobhistory-daemon.sh start historyserver
重啟dfs
start-dfs.sh
產生的原因:
因為叢集裡啟動了historyserver,這個程序在刪除了臨時檔案之後,並沒有釋放檔案控制代碼,所以導致Non DFS Used 數值很大,而用df和du檢視的時候,磁碟空間並未被佔用

參考:

http://blog.csdn.net/bottle123/article/details/49869403

相關推薦

關於hadoop hdfsNon DFS Used佔用的問題分析處理

今天幫一個朋友處理hdfs上Non DFS Used佔用很大的問題, 從hadoop UI介面看到的節點資訊儲存容量: Capacity| Used| Non DFS Used| Remaining 4.46T| 1.69T| 1.46T| 1.31T Non DFS Us

HDFSNon DFS Used使用過

問題描述: 在namenode頁面發現,好多主機的Non DFS Used使用非常大,大大減少了HDFS磁碟剩餘可用容量,存在異常 通常,Non DFS Used = 配置的容量 - 剩餘容量 - DFS使用容量 而配置容量 = 總容量 - 預留空間(總容量為磁碟的總大小,預

hadoop Non DFS Used是什麽

sort 10g fig grep strong pre 了解 它的 user 首先我們先來了解一下Non DFS User是什麽? Non DFS User的意思是:非hadoop文件系統所使用的空間,比如說本身的linux系統使用的,或者存放的其它文件 它的計算公式

Linux系統used記憶體佔用,而實際系統個程序並沒有佔用這麼多記憶體

問題 新裝伺服器,used記憶體佔用很大,而實際系統中個程序並沒有佔用這麼多記憶體 現象 top檢視下,used很大,如果有其他外部程式向監控伺服器的記憶體,used實際是個比較關鍵的指標,而該指標卻並沒有反應出伺服器實際佔用情況: 原因 實

關於windebug查詢程序各個執行緒佔用cpu時間,解決CPU佔用問題

按照如下步驟進行: (1)如果在除錯,請在vs中的除錯選單中分離選單專案,將除錯程序與vs分離; (2)啟動windebug,設定改程序的符號檔案路徑,符號檔案分為兩種,一個是系統的符號檔案,一個是自己程序的符號檔案,關於符號檔案設定比較簡單,網路找到即可,我的符號檔案設

Java的String到底佔用的記憶體空間?你所瞭解的可能都是錯誤的!!

## 寫在前面 > 最近小夥伴加群時,我總是問一個問題:Java中的String類佔用多大的記憶體空間?很多小夥伴的回答著實讓我哭笑不得,有說不佔空間的,有說1個位元組的,有說2個位元組的,有說3個位元組的,有說不知道的,更讓人哭笑不得的是竟然還有人說是2的31次方。那如果真是這樣的話,伺服器的記憶體

Hadoop正常啟動了datanode但管理介面卻卻顯示0個datanode節點或者只有本機的一個datanade,DFS Used顯示0(100%)

 以下會列出引起該問題的常見原因,及其解決辦法 1、在hadoop已經啟動的前提下,使用命令netstat  -an |grep 9001  (改命令用來監聽namenode主節點通訊情況,9001為

kafka-connect-hdfs重啟,進去RECOVERY狀態,從hadoop hdfs拿租約,正常,但是也太久了吧

not handle 個人 ret sun response sass pre sub 雖說這個算是正常現象,等的時間也太久了吧。分鐘級了。這個RECOVERY裏面的WAL有點多余。有這麽久的時間,早從新讀取kafka寫入hdfs了。純屬個人見解。 @SuppressWa

HadoopHDFSHA的搭建

Hadoop 1.0存在的問題:單點故障和記憶體受限 (1)NameNode單點故障(NameNode只有一個,一旦宕機了,則資料就會丟失,雖然有配置SecondaryNameNode,但是SecondardyNameNode 合併元資料和日誌檔案需要時間的,所有還是會有部分資料會丟失) (2)Name

Hadoop如何從hdfs匯入資料到hbase

import java.io.IOException; import org.apache.hadoop.conf.Configuration; import org.apache.hadoop.fs.Path; import org.apache.hadoop

關於HDFSdfs.datanode.du.reserved系統空間預留引數

dfs.datanode.du.reserved 官方解釋為:適用於非分散式檔案系統 (DFS) 使用的保留空間(位元組/卷)。 通俗的意思:預留磁碟的一部分空間給作業系統用,這個引數主要是為了防止磁碟空間被寫滿導致的HDFS異常。通常系統預設保留5%的磁碟空間給作業系統用。 那麼每個

Hadoop第一個程式,利用API向HDFS寫入資料

這時學習Hadoop以來寫的第一個成功的程式,程式仿照《Hadoop實戰》中的PutMerge程式,這裡有幾個要注意的地方: 1.hdfs的地址是一個網路地址,如下面的:hdfs://localhost:9000/test3 2.確保不會出現“許可權不足”的異常 im

win7程序的svchost.exe佔用CPU和記憶體高的原因和解決竅門

轉載自:http://blog.sina.com.cn/s/blog_542268bd0102w3uo.html 當您運行了Windows工作管理員後,您可能會在“程序”選項卡中看到若干個名稱均為SVCHOST.EXE的程序正在同時執行。而且,這些SVCHOST.EXE可能

Hadoop上傳檔案到hdfs

hadoop常見指令: hdfs dfs -copyFromLocal /local/data /hdfs/data:將本地檔案上傳到 hdfs 上(原路徑只能是一個檔案) hdfs dfs -put /tmp/ /hdfs/ :和 copyFromLoca

Hadoop實踐(四)---在HDFS合併檔案

HDFS的getMerge命令可以將HDFS中給定路徑下的檔案複製到本地檔案系統的單個合併後的檔案中 bin/hadoopfs -getmerge /user/foo/demofiles merg

HadoopHDFSnamenode和datenode內容分析

NameNode:是Master節點,是大領導。管理資料塊對映;處理客戶端的讀寫請求;配置副本策略;管理HDFS的名稱空間; SecondaryNameNode:是一個小弟,分擔大哥namenode的工作量;是NameNode的冷備份;合併fsimage和fsedits

hadoop hdfs dfs 命令講解

hdfs dfs命令 appendToFile Usage: hdfs dfs -appendToFile <localsrc> ... <dst> 追加一個或者多個檔案到hdfs制定檔案中.也可以從命令列讀取輸入. · hdfs dfs -appe

Hadoop: MapReduce使用hdfs的檔案

本程式碼包含功能:獲取DataNode名,並寫入到HDFS檔案系統中的檔案hdfs:///copyOftest.c中。 並計數檔案hdfs:///copyOftest.c中的wordcount計數,有別於Hadoop的examples中的讀取本地檔案系統中的檔案,這次讀取的

hadoop建立資料夾及將本地檔案移動到hdfs

[[email protected] localfiles]# hdfs dfs -mkdir /user [[email protected] localfiles]# hdfs

Hadoop之客戶端讀取HDFS的資料

客戶端通過呼叫FileSystem物件的open()方法來開啟希望讀取的檔案 DistributedFileSystem使用RPC呼叫namenode,確定檔案起始塊位置。對於檔案的每個塊,namen