本篇源自Hadoop官網,先將中文翻譯以下。node
目標安全
本文章主要是描述如何安裝和配置幾個節點的Hadoop clusters,甚至於數以千計的節點數。爲了瞭解詳細的安裝步驟,須要先了解如何安裝在單臺機器上。多線程
本文檔不包含高級的設置點,好比:安全性或者高可用性。架構
準備分佈式
安裝oop
搭建一個Hadoop集羣須要將軟件安裝到集羣中的全部機器中,或者一個適合當前操做系統集成的系統。這樣作的目標就是區分不一樣的硬件安裝不一樣的功能。網站
典型的安裝是在一個集羣中一個機器做爲NameNode節點,其它機器做爲ResourceManager.固然,這臺機器的角色就是Masters.其它的服務(好比Web App Proxy Server 和MapReduce Job History server)通常運行在別的硬件或者共享的信息架構上,依賴於系統的負載。spa
在集羣中剩下的機器就是DataNode和NodeManager.他們的角色是slaves.操作系統
非安全模式下的Hadoop配置 線程
Hadoop的Java配置項被分爲兩部分重要的配置文件:
另外,須要有權限設置Hadoop scripts腳本在分佈式集羣中的各個目錄文件 bin/directory,須要設置的文件爲 etc/hadoop-env.sh 和 etc/hadoop/yarn-env.sh.
爲了可以保證Hadoop守護進程很好的運行,須要配置hadoop集羣所須要的環境。
HDFS守護進程是NameNode,SecondaryNameNode和DataNode,YARN守護進程是ResourceManager,NodeManager和WebAppProxy,若是MapReduce被使用,那麼MapReduce 的任務 History Server將會被運行,若是是大集羣的安裝,他們將被運行在不一樣的主機上。
Hadoop守護進程環境配置
管理員須要利用etc/hadoop/hadoop-env.sh 和可選的 etc/hadoop/mapred-env.sh 和etc/hadoop/yarn-env.sh 腳本去配置Hadoop各個守護進程的環境。
之少,須要配置的是JAVA_HOME確保在每個遠程節點上都是正確的。
管理員須要配置一下的獨自守護進程利用下面的表格:
守護進程 | 參數名稱 |
---|---|
NameNode | HADOOP_NAMENODE_OPTS |
DataNode | HADOOP_DATANODE_OPTS |
Secondary NameNode | HADOOP_SECONDARYNAMENODE_OPTS |
ResourceManager | YARN_RESOURCEMANAGER_OPTS |
NodeManager | YARN_NODEMANAGER_OPTS |
WebAppProxy | YARN_PROXYSERVER_OPTS |
Map Reduce Job History Server | HADOOP_JOB_HISTORYSERVER_OPTS |
舉一個例子,能夠配置Namenode用parallelGC,下面的片斷須要被添加到hadoop-env.sh:
export HADOOP_NAMENODE_OPTS="-XX:+UseParallelGC"
來看一下 etc/hadoop/hadoop-env.sh的其它一些例子。
其它的一些有用的可配置參數,能夠自定義以下:
在不少場景中,必須設置這個HADOOP_PID_DIR和HADOOP_LOG_DIR這兩個目錄,以方便用戶能夠輸出日誌在運行守護進程的時候。
守護進程 | 參數值 |
---|---|
ResourceManager | YARN_RESOURCEMANAGER_HEAPSIZE |
NodeManager | YARN_NODEMANAGER_HEAPSIZE |
WebAppProxy | YARN_PROXYSERVER_HEAPSIZE |
Map Reduce Job History Server | HADOOP_JOB_HISTORYSERVER_HEAPSIZE |
Hadoop守護環境配置
在Hadoop壞境中有一個很是重要的參數文件:
參數名稱 | 值 | 提示 |
---|---|---|
fs.defaultFS | NameNode URI | hdfs://host:port/ |
io.file.buffer.size | 131072 | Size of read/write buffer used in SequenceFiles. |
參數名稱 | 值 | 提示 |
---|---|---|
dfs.namenode.name.dir | 文件路徑,用戶存儲NameNode進程的命名空間和事務日誌 | 若是這裏用逗號分割的列表,將會複製分發到各個目錄以作爲冗餘數據進行備份 |
dfs.hosts / dfs.hosts.exclude | DataNodes的節點列表(包含或排除) | 若是須要,用戶經過設置這個列表來控制DataNodes的數量。 |
dfs.blocksize | 268435456 | HDFS 快的大小爲了存儲大文件系統. |
dfs.namenode.handler.count | 100 | 對於大量DataNodes的節點數開啓的多線程個數. |
參數名稱 | 值 | 提示 |
---|---|---|
dfs.datanode.data.dir | 存儲數據塊的本地目錄系統,通常以路徑列表存放 | 若是這裏是以逗號分隔的目錄列表,那麼這個數據將被存儲在全部的目錄下,通常是不一樣的磁盤驅動 |