如何獲取HDFS上檔案的儲存位置
我們知道儲存在HDFS上的檔案一般有多個副本,預設是3個,訪問這個檔案是通過一個URL來的,但是這個檔案到底儲存在哪個DataNode節點的什麼位置,這是很多人不清楚的。其實HDFS提供了一個命令,接下來我們就看看這個問題。
hdfs fsck命令
HDFS supports the fsck command to check for various inconsistencies. It it is designed for reporting problems with various files, for example, missing blocks for a file or under-replicated blocks. Unlike a traditional fsck utility for native file systems, this command does not correct the errors it detects. Normally NameNode automatically corrects most of the recoverable failures. By default fsck ignores open files but provides an option to select all files during reporting. The HDFS fsck command is not a Hadoop shell command. It can be run as <tt>bin/hdfs fsck</tt>. For command usage, see fsck. fsck can be run on the whole file system or on a subset of files.
命令使用方式
hdfs fsck file_path_on_hdfs -files -blocks -locations
執行命令檢視我們的檔案
[hdfs@dlbdn3 data]$ hdfs fsck /user/ericsson/eop/template_workflow.xml -files -blocks -locations
Connecting to namenode via http://dlbdn3:50070
FSCK started by hdfs (auth:SIMPLE) from /192.168.123.4 for path /user/ericsson/eop/template_workflow.xml at Wed Feb 27 17:28:57 CST 2019
/user/ericsson/eop/template_workflow.xml 3685 bytes, 1 block(s): OK
0. BP-358999289-192.168.123.4-1530520401469:blk_1074308735_568435 len=3685 Live_repl=3 [DatanodeInfoWithStorage[192.168.123.4:7710,DS-c440ebd2-4553-4b87-b2e1-67a8ae1e29c1,DISK], DatanodeInfoWithStorage[192.168.123.3:7710,DS-4c6c7796-0027-4cb9-a476-041a13146dcf,DISK], DatanodeInfoWithStorage[192.168.123.2:7710,DS-83c58757-f199-48e1-9d04-bd09fc996fbc,DISK]]
Status: HEALTHY
Total size: 3685 B
Total dirs: 0
Total files: 1
Total symlinks: 0
Total blocks (validated): 1 (avg. block size 3685 B)
Minimally replicated blocks: 1 (100.0 %)
Over-replicated blocks: 0 (0.0 %)
Under-replicated blocks: 0 (0.0 %)
Mis-replicated blocks: 0 (0.0 %)
Default replication factor: 3
Average block replication: 3.0
Corrupt blocks: 0
Missing replicas: 0 (0.0 %)
Number of data-nodes: 3
Number of racks: 1
FSCK ended at Wed Feb 27 17:28:57 CST 2019 in 1 milliseconds
The filesystem under path '/user/ericsson/eop/template_workflow.xml' is HEALTHY
根據DatanodeInfoWithStorage裡面提供的ip資訊,進去對應節點, 執行find
[root@dlbdn3 subdir166]# find / -name "*blk_1074308735_568435*"
find: ‘/run/user/42/gvfs’: Permission denied
/data/2/dfs/dn/current/BP-358999289-192.168.123.4-1530520401469/current/finalized/subdir8/subdir166/blk_1074308735_568435.meta
[root@dlbdn3 subdir166]# cd /data/2/dfs/dn/current/BP-358999289-192.168.123.4-1530520401469/current/finalized/subdir8/subdir166
[root@dlbdn3 subdir166]# ll | grep blk_1074308735
-rw-r--r-- 1 hdfs hdfs 3685 Feb 27 16:29 blk_1074308735
-rw-r--r-- 1 hdfs hdfs 39 Feb 27 16:29 blk_1074308735_568435.meta
[root@dlbdn3 subdir166]#
檢視blk檔案的內容,是否是我們想要找的檔案
確認是一個檔案,至此就找到了HDFS檔案上儲存的資訊。很簡單吧,也很實用,很多時候需要知道這個資訊。
相關文章
- 大資料檔案儲存系統HDFS大資料
- 如何讀取HDFS上的csv/tsv檔案的Timestamp列 - Qiita
- Mac儲存檔案找不到要儲存的位置怎麼設定Mac
- 必須掌握的分散式檔案儲存系統—HDFS分散式
- 大量小檔案不適合儲存於HDFS的原因
- Springboot整合MongoDB儲存檔案、讀取檔案Spring BootMongoDB
- Hadoop 基石HDFS 一文了解檔案儲存系統Hadoop
- 3dmax自動儲存的檔案在哪裡 3dmax自動存的檔案位置3D
- opencv python 從攝像頭獲取視訊/從檔案獲取視訊 /儲存視訊OpenCVPython
- Linux伺服器常見的日誌檔案儲存位置!Linux伺服器
- 如何將MAC的檔案儲存至NAS網路儲存?Mac
- Hdfs儲存策略
- 分散式檔案儲存hdfs簡介及常用命令分散式
- Hadoop 三劍客之 —— 分散式檔案儲存系統 HDFSHadoop分散式
- 塊儲存 檔案儲存 物件儲存物件
- Matlab - 獲取和儲存檔案路徑選擇對話方塊Matlab
- android獲取位置並上傳Android
- 修改docker的預設儲存位置及映象儲存位置Docker
- (slam工具)1檔案讀取和儲存SLAM
- golang 讀取切分儲存byte流檔案Golang
- 檔案儲存
- python如何分散式儲存檔案?Python分散式
- 資料儲存--檔案儲存
- 分散式檔案系統HDFS,大資料儲存實戰(一)分散式大資料
- 【VMware vSphere】沒有共享儲存的ESXi主機之間如何共享本地儲存上的ISO檔案。
- HDFS分散式儲存分散式
- 智慧手環如何獲取位置?
- 使用RequestParam或HttpServletRequest獲取上傳的檔案HTTPServlet
- 儲存json檔案JSON
- CSV檔案儲存
- Android 檔案儲存Android
- Android中的資料儲存之檔案儲存Android
- IPFS的檔案儲存模式模式
- PING命令 獲取的TTL值 登錄檔位置
- 簡單介紹nacos單機本地配置檔案儲存位置方式
- Pandas之EXCEL資料讀取/儲存/檔案分割/檔案合併Excel
- 如何獲取Flume連線HDFS所需要的包
- Flutter持久化儲存之檔案儲存Flutter持久化