2012-07-03 63 views
2

我對Hadoop分佈式文件系統的設置以及我的特定設置如何影響它有點困惑。我使用本指南在Virtual Box上使用兩臺虛擬機來設置它http://www.michael-noll.com/tutorials/running-hadoop-on-ubuntu-linux-multi-node-cluster/,並運行該示例(只是使用txt文件輸入的簡單字數)。到目前爲止,我知道datanode管理和檢索節點上的文件,而tasktracker分析數據。Hadoop DFS的CopyFromLocal命令如何工作?

1)當你使用命令-copyFromLocal,你是複製文件/輸入到HDFS? Hadoop是否知道如何劃分從站/主站之間的信息,它是如何實現的?

2)在上面鏈接指南中概述的配置中,技術上有兩個從站(主站作爲主站和從站)?這是常見的還是主機通常只給jobtracker/namenode任務?

回答

0

1)

  • 客戶端連接到名字節點登記在HDFS一個新的文件。
  • 名稱節點創建一些關於文件的元數據(使用默認塊大小或文件的配置值)
  • 對於要寫入的每個數據塊,客戶端向名稱節點查詢塊ID以及將數據寫入的目標數據節點列表。然後將數據寫入每個數據節點。

有在的Javadoc org.apache.hadoop.hdfs.DFSClient.DFSOutputStream

2)有些生產系統將被配置成使所述主它自己的專用節點(允許的最大可能的內存分配,並避免CPU爭一些更多的信息) ,但是如果您擁有較小的羣集,則可以接受包含名稱節點和數據節點的節點

1

這裏有很多問題要問。

問題2)

  1. 有兩臺機器
  2. 這些機器配置爲HDFS和Map-減少。
  3. HDFS配置需要的Namenode(主)和的Datanode(從)
  4. 地圖,減少需要的JobTracker(主)和的TaskTracker(從)
  5. 只有一個NameNode和JobTracker的配置,但你可以有一個Datanode和的TaskTracker服務這兩臺機器。它不是作爲主人和奴隸的機器。這只是服務。您也可以在包含主服務的計算機上安裝從服務。這對簡單的開發設置很有用。在大規模部署中,您將主服務專用於分離機器。

問題1第2部分)

  1. 這是HDFS的工作創建文件塊和存儲在複製的方式多數據節點。你不必擔心它。

問題1第1部分)

  1. Hadoop的文件操作被圖案像典型的Unix文件操作 - ls,在等
  2. Hadoop的FS -put localefile /數據/ somefile - >將複製LOCALFILE到HDFS的路徑/數據/ somefile
  3. 有了看跌期權,你也可以從標準輸入讀取和寫入到HDFS文件
  4. copyFromLocal類似於看跌期權,除了行爲是從本地文件系統僅限於複製到HDFS
  5. 請參見:http://hadoop.apache.org/common/docs/r0.20.0/hdfs_shell.html#copyFromLocal