您好,登錄后才能下訂單哦!
Hadoop實現了一個分布式文件系統(Hadoop Distributed File System),簡稱HDFS,hdfs是分布式計算中數據存儲管理的基礎,是基于流數據模式訪問和處理超大文件的需求而開發的,可以運行于廉價的商用服務器上。它所具有的高容錯、高可靠性、高可擴展性、高獲得性、高吞吐率等特征為海量數據提供了不怕故障的存儲,為超大數據集(Large Data Set)的應用處理帶來了很多便利。
之所以選擇 HDFS 存儲數據,因為 HDFS 具有以下優點:
? 數據自動保存多個副本。它通過增加副本的形式,提高容錯性。
? 某一個副本丟失以后,它可以自動恢復,這是由 HDFS 內部機制實現的,我們不必關心。
? 它是通過移動計算而不是移動數據。
? 它會把數據位置暴露給計算框架。
處理數據達到 GB、TB、甚至PB級別的數據。
? 能夠處理百萬規模以上的文件數量,數量相當之大。
? 能夠處理10K節點的規模。
? 一次寫入,多次讀取。文件一旦寫入不能修改,只能追加。
? 它能保證數據的一致性。
5、可構建在廉價機器上
? 它通過多副本機制,提高可靠性。
? 它提供了容錯和恢復機制。比如某一個副本丟失,可以通過其它副本來恢復。
當然 HDFS 也有它的劣勢,并不適合所有的場合:
? 比如毫秒級的來存儲數據,這是不行的,它做不到。
? 它適合高吞吐率的場景,就是在某一時間內寫入大量的數據。但是它在低延時的情況下是不行的,比如毫秒級以內讀取數據,這樣它是很難做到的。
? 存儲大量小文件(這里的小文件是指小于HDFS系統的Block大小的文件(默認64M))的話,它會占用 NameNode大量的內存來存儲文件、目錄和塊信息。這樣是不可取的,因為NameNode的內存總是有限的
? 小文件存儲的尋道時間會超過讀取時間,它違反了HDFS的設計目標。
? 一個文件只能有一個寫,不允許多個線程同時寫。
? 僅支持數據 append(追加),不支持文件的隨機修改。
HDFS 如何上傳數據
HDFS 采用Master/Slave的架構來存儲數據,這種架構主要由四個部分組成,分別為HDFS Client、NameNode、DataNode和Secondary NameNode。下面我們分別介紹這四個組成部分
HDFS的文件讀取原理,主要包括以下幾個步驟:
HDFS的文件寫入原理,主要包括以下幾個步驟:
兩個屬性項: fs.default.name 用來設置Hadoop的默認文件系統,設置hdfs URL則是配置HDFS為Hadoop的默認文件系統。dfs.replication 設置文件系統塊的副本個數
文件系統的基本操作:hadoop fs -help可以獲取所有的命令及其解釋
常用的有:
操作路程
cd hadoop.2.5.2
cd sbin
./start-all.sh //啟動hdfs服務,yarn服務
cd ..
cd bin
./haoop dfs –ls / 解釋:./hdfs 是hdfs命令 dfs參數 表示在hadoop里有效 –ls /顯示hdfs根目錄
./haoop dfs –rm /test/count/SUCCESS //刪除/test/count目錄里的SUCCESS文件
./haoop dfs –rmr /test/count/output //刪除/test/count/output目錄
./haoop dfs –mkdir /test/count/input //創建/test/count/input目錄
從linux的 共享文件夾取得要分析的文件,上傳到 hdfs
./hadoop fs –put /mnt/hgfs/share/phone.txt /test/network
執行代碼分析,
./hadoop jar /mnt/hgfs/share/mobile.jar com.wanho.hadoopmobile.PhoneDriver
將產生的結果,傳回linux的共享文件夾
./hadoop fs –get /test/network/output1 /mnt/hgfs/share
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。