學習筆記 Hadoop集群如何搭建
本節(jié)向大家描述了如何安裝、配置和管理有實際意義的Hadoop集群,其規(guī)模可從幾個節(jié)點的小集群到幾千個節(jié)點的超大集群,讓我們一起來學習Hadoop集群搭建吧。
Hadoop集群搭建
先決條件
確保在你集群中的每個節(jié)點上都安裝了所有必需軟件。
獲取Hadoop軟件包。
安裝
安裝Hadoop集群通常要將安裝軟件解壓到集群內(nèi)的所有機器上。
通常,集群里的一臺機器被指定為NameNode,另一臺不同的機器被指定為JobTracker。這些機器是masters。余下的機器即作為DataNode也作為TaskTracker。這些機器是slaves。
我們用HADOOP_HOME指代安裝的根路徑。通常,集群里的所有機器的HADOOP_HOME路徑相同。
配置
接下來的幾節(jié)描述了如何配置Hadoop集群。
配置文件
對Hadoop的配置通過conf/目錄下的兩個重要配置文件完成:
hadoop-default.xml-只讀的默認配置。
hadoop-site.xml-集群特有的配置。
要了解更多關于這些配置文件如何影響Hadoop框架的細節(jié),請看這里。
此外,通過設置conf/hadoop-env.sh中的變量為集群特有的值,你可以對bin/目錄下的Hadoop腳本進行控制。
Hadoop集群配置
要配置Hadoop集群,你需要設置Hadoop守護進程的運行環(huán)境和Hadoop守護進程的運行參數(shù)。
Hadoop守護進程指NameNode/DataNode和JobTracker/TaskTracker。
配置Hadoop守護進程的運行環(huán)境
管理員可在conf/hadoop-env.sh腳本內(nèi)對Hadoop守護進程的運行環(huán)境做特別指定。
至少,你得設定JAVA_HOME使之在每一遠端節(jié)點上都被正確設置。
管理員可以通過配置選項HADOOP_*_OPTS來分別配置各個守護進程。下表是可以配置的選項。
守護進程配置選項
NameNodeHADOOP_NAMENODE_OPTS
DataNodeHADOOP_DATANODE_OPTS
SecondaryNamenodeHADOOP_SECONDARYNAMENODE_OPTS
JobTrackerHADOOP_JOBTRACKER_OPTS
TaskTrackerHADOOP_TASKTRACKER_OPTS
例如,配置Namenode時,為了使其能夠并行回收垃圾(parallelGC),要把下面的代碼加入到hadoop-env.sh:
exportHADOOP_NAMENODE_OPTS="-XX:+UseParallelGC${HADOOP_NAMENODE_OPTS}"
其它可定制的常用參數(shù)還包括:
HADOOP_LOG_DIR-守護進程日志文件的存放目錄。如果不存在會被自動創(chuàng)建。
HADOOP_HEAPSIZE-***可用的堆大小,單位為MB。比如,1000MB。這個參數(shù)用于設置hadoop守護進程的堆大小。缺省大小是1000MB。
配置Hadoop守護進程的運行參數(shù)
這部分涉及Hadoop集群的重要參數(shù),這些參數(shù)在conf/hadoop-site.xml中指定。
參數(shù)取值備注
fs.default.nameNameNode的URI。hdfs://主機名/
mapred.job.trackerJobTracker的主機(或者IP)和端口。主機:端口。
dfs.name.dirNameNode持久存儲名字空間及事務日志的本地文件系統(tǒng)路徑。當這個值是一個逗號分割的目錄列表時,nametable數(shù)據(jù)將會被復制到所有目錄中做冗余備份。
dfs.data.dirDataNode存放塊數(shù)據(jù)的本地文件系統(tǒng)路徑,逗號分割的列表。當這個值是逗號分割的目錄列表時,數(shù)據(jù)將被存儲在所有目錄下,通常分布在不同設備上。
mapred.system.dirMap/Reduce框架存儲系統(tǒng)文件的HDFS路徑。比如/hadoop/mapred/system/。這個路徑是默認文件系統(tǒng)(HDFS)下的路徑,須從服務器和客戶端上均可訪問。
mapred.local.dir本地文件系統(tǒng)下逗號分割的路徑列表,Map/Reduce臨時數(shù)據(jù)存放的地方。多路徑有助于利用磁盤i/o。
mapred.tasktracker.{map|reduce}.tasks.maximum某一TaskTracker上可運行的***Map/Reduce任務數(shù),這些任務將同時各自運行。默認為2(2個map和2個reduce),可依據(jù)硬件情況更改。
dfs.hosts/dfs.hosts.exclude許可/拒絕DataNode列表。如有必要,用這個文件控制許可的datanode列表。
mapred.hosts/mapred.hosts.exclude許可/拒絕TaskTracker列表。如有必要,用這個文件控制許可的TaskTracker列表。
通常,上述參數(shù)被標記為final以確保它們不被用戶應用更改。本節(jié)關于Hadoop集群搭建的相關內(nèi)容介紹到這里。
【編輯推薦】
- 專家指導 如何實現(xiàn)Hadoop集群搭建
- Hadoop安裝與使用如何進行?
- 專家講解 Hadoop:HBASE松散數(shù)據(jù)存儲設計
- 兩種模式運行Hadoop分布式并行程序
- Hadoop集群搭建過程中相關環(huán)境配置詳解