2011-10-03 69 views
0

我需要最快速地訪問單個文件,其中的幾個副本使用Hadoop存儲在許多系統中。我還需要以排序的方式查找每個文件的ping時間。 我應該如何處理學習hadoop來完成這項任務? 請幫助快,我的時間很少。使用Hadoop快速訪問文件

回答

1

如果您需要更快地訪問文件,只需使用setrep命令增加該文件的複製因子即可。由於您當前的硬件限制,這可能不會按比例增加文件吞吐量。

ls命令沒有給出目錄和文件的訪問時間,它只顯示修改時間。使用Offline Image Viewer將hdfs fsimage文件的內容轉儲爲可讀格式。以下是使用縮進選項的命令。

倉/ HDFS OIV -i fsimagedemo -p縮進-o fsimage.txt

從fsimage.txt的樣品O/P,查找ACCESS_TIME柱。

INODE 
    INODE_PATH = /user/praveensripati/input/sample.txt 
    REPLICATION = 1 
    MODIFICATION_TIME = 2011-10-03 12:53 
    ACCESS_TIME = 2011-10-03 16:26 
    BLOCK_SIZE = 67108864 
    BLOCKS [NUM_BLOCKS = 1] 
    BLOCK 
     BLOCK_ID = -5226219854944388285 
     NUM_BYTES = 529 
     GENERATION_STAMP = 1005 
    NS_QUOTA = -1 
    DS_QUOTA = -1 
    PERMISSIONS 
    USER_NAME = praveensripati 
    GROUP_NAME = supergroup 
    PERMISSION_STRING = rw-r--r-- 

爲了讓平時間排序的方式,你需要寫一個shell腳本或其他一些程序提取INODE_PATH和ACCESS_TIME每個inode的部分,然後根據該ACCESS_TIME對它們進行排序。您也可以使用Pig如圖所示here

我該如何學習hadoop來完成這項任務?請幫助快點,我的時間很少。

如果您想在一兩天內學習Hadoop,這是不可能的。 Here是一些視頻和文章開始。