Hadoop使用(二)

來源:互聯網
上載者:User

前提和設計目標
硬體錯誤

硬體錯誤是常態而不是異常。HDFS可能由成百上千的伺服器所構成,每個伺服器上儲存著檔案系統的部分資料。我們面對的現實是構成系統的組件數目是巨大的,而且任一組件都有可能失效,這意味著總是有一部分HDFS的組件是不工作的。因此錯誤偵測和快速、自動的恢複是HDFS最核心的架構目標。
流式資料訪問

運行在HDFS上的應用和普通的應用不同,需要流式訪問它們的資料集。HDFS的設計中更多的考慮到了資料批處理,而不是使用者互動處理。比之資料訪問的低延遲問題,更關鍵的在於資料訪問的高輸送量。POSIX標準設定的很多硬性約束對HDFS應用系統不是必需的。為了提高資料的輸送量,在一些關鍵方面對POSIX的語義做了一些修改。
大規模資料集

運行在HDFS上的應用具有很大的資料集。HDFS上的一個典型檔案大小一般都在G位元組至T位元組。因此,HDFS被調節以支援大檔案儲存體。它應該能提供整體上高的資料傳輸頻寬,能在一個叢集裡擴充到數百個節點。一個單一的HDFS執行個體應該能支撐數以千萬計的檔案。
簡單的一致性模型

HDFS應用需要一個“一次寫入多次讀取”的檔案訪問模型。一個檔案經過建立、寫入和關閉之後就不需要改變。這一假設簡化了資料一致性問題,並且使高輸送量的資料訪問成為可能。Map/Reduce應用或者網路爬蟲應用都非常適合這個模型。目前還有計劃在將來擴充這個模型,使之支援檔案的附加寫操作。
“移動計算比移動資料更划算”

一個應用請求的計算,離它操作的資料越近就越高效,在資料達到海量層級的時候更是如此。因為這樣就能降低網路阻塞的影響,提高系統資料的輸送量。將計算移動到資料附近,比之將資料移動到應用所在顯然更好。HDFS為應用提供了將它們自己移動到資料附近的介面。
異構軟硬體平台間的可移植性

HDFS在設計的時候就考慮到平台的可移植性。這種特性方便了HDFS作為大規模資料應用平台的推廣。

 

 

hdfs的結構

既然 Hadoop 守護進程已經在運行了,現在看看每個守護進程在 Hadoop 架構中的作用。namenode 是 Hadoop 中的主伺服器,它管理檔案系統名稱空間和對叢集中儲存的檔案的訪問。還有一個 secondary namenode,它不是 namenode 的冗餘守護進程,而是提供周期檢查點和清理任務。在每個 Hadoop 叢集中可以找到一個 namenode 和一個 secondary namenode。

datanode 管理串連到節點的儲存(一個叢集中可以有多個節點)。每個儲存資料的節點運行一個 datanode 守護進程。

最後,每個叢集有一個 jobtracker,它負責調度 datanode 上的工作。每個 datanode 有一個 tasktracker,它們執行實際工作。jobtracker 和 tasktracker 採用主-從形式,jobtracker 跨 datanode 分發工作,而 tasktracker 執行任務。jobtracker 還檢查請求的工作,如果一個 datanode 由於某種原因失敗,jobtracker 會重新調度以前的任務。

 

使用jps查看進程

要想檢查守護進程是否正在運行,可以使用 jps 命令(這是用於 JVM 進程的 ps 公用程式)。這個命令列出 5 個守護進程及其進程標識符。

 

HDFS常用操作

hadoop dfs -ls 列出HDFS下的檔案

hadoop dfs -ls in 列出HDFS下某個文檔中的檔案

hadoop dfs -put test1.txt test 上傳檔案到指定目錄並且重新命名,只有所有的DataNode都接收完資料才算成功

hadoop dfs -get in getin 從HDFS擷取檔案並且重新命名為getin,同put一樣可操作檔案也可操作目錄

hadoop dfs -rmr out 刪除指定檔案從HDFS上

hadoop dfs -cat in/* 查看HDFS上in目錄的內容

hadoop dfsadmin -report 查看HDFS的基本統計資訊,結果如下

hadoop dfsadmin -safemode leave 退出安全模式

hadoop dfsadmin -safemode enter 進入安全模式

添加節點

可擴充性是HDFS的一個重要特性,首先在新加的節點上安裝hadoop,然後修改$HADOOP_HOME/conf/master檔案,加入NameNode主機名稱,然後在NameNode節點上修改$HADOOP_HOME/conf/slaves檔案,加入新加節點主機名稱,再建立到新加節點無密碼的SSH串連

運行啟動命令:

start-all.sh

然後可以通過http://(Master node的主機名稱):50070查看新添加的DataNode

負載平衡

start-balancer.sh,可以使DataNode節點上選擇策略重新平衡DataNode上的資料區塊的分布

 

Hadoop(包括HDFS)非常適合在商用硬體(commodity hardware)上做分布式儲存和計算,因為它不僅具有容錯性和可擴充性,而且非常易於擴充。Map-Reduce架構以其在大型分布式系統應用上的簡單性和可用性而著稱,這個架構已經被整合進Hadoop中。
HDFS的可配置性極高,同時,它的預設配置能夠滿足很多的安裝環境。多數情況下,這些參數只在非常大規模的叢集環境下才需要調整。
用Java語言開發,支援所有的主流平台。
支援類Shell命令,可直接和HDFS進行互動。
NameNode和DataNode有內建的Web伺服器,方便使用者檢查叢集的目前狀態。
新特性和改進會定期加入HDFS的實現中。下面列出的是HDFS中常用特性的一部分:

    檔案許可權和授權。
    機架感知(Rack awareness):在調度任務和分配儲存空間時考慮節點的物理位置。
    安全模式:一種維護需要的管理員模式。
    fsck:一個診斷檔案系統健康情況的工具,能夠發現丟失的檔案或資料區塊。
    Rebalancer:當datanode之間資料不均衡時,平衡叢集上的資料負載。
    升級和復原:在軟體更新後有異常發生的情形下,能夠復原到HDFS升級之前的狀態。
    Secondary Namenode:對檔案系統名字空間執行循環性的檢查點,將Namenode上HDFS改動記錄檔的大小控制在某個特定的限度下。

 

具體操作可以看官方中文的樣本

http://hadoop.apache.org/common/docs/r0.19.2/cn/quickstart.html

 

hadoop使用:
  1. hadoop使用(一)
  2. hadoop使用(二)
  3. hadoop使用(三)
  4. hadoop使用(四)
  5. hadoop使用(五)
  6. hadoop使用(六)

hbase實戰:

  1. hbase實戰——(1.1  nosql介紹)

 

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.