主機名稱 | IP地址 |
---|---|
master | 192.168.1.15 |
slave01 | 192.168.1.16 |
slave02 | 192.168.1.17 |
用戶名
/hadooptar -zxvf hadoop-2.7.4.tar.gz -C ~/hadoop/app
vim /etc/profile
添加node
# Hadoop Env export HADOOP_HOME=/home/null/hadoop/app/hadoop-2.7.4 export PATH=$PATH:$HADOOP_HOME/bin:$HADOOP_HOME/sbin
$HADOOP_HOME就是hadoop安裝目錄位置
這裏只是將分佈式集羣的一些必要的簡化了的配置羅列出來了,更個性化的配置仍是要參照官方文檔進行設置linux
//修改JAVA_HOME路徑爲jdk的安裝路徑 export JAVA_HOME=/home/null/hadoop/app/jdk1.8.0_144
//修改JAVA_HOME路徑爲jdk的安裝路徑 export JAVA_HOME=/home/null/hadoop/app/jdk1.8.0_144
master 既做爲 NameNode 也做爲 DataNodeweb
master slave01 slave02
該文件能夠覆蓋一部分用於控制Hadoop核心的默認的關鍵配置apache
參數 | 默認值 | 解釋 |
---|---|---|
fs.defaultFS | file:/// | namenode RPC交互端口 |
fs.default.name | file:/// | 被棄用,是用fs.defaultFS代替 |
hadoop.tmp.dir | /tmp/hadoop-${user.name} | 其餘臨時目錄的根地址 |
先在$HADOOP_HOME目錄下手動建立tmp文件夾,等下指定hadoop.tmp.dir爲它,hadoop.tmp.dir是hadoop文件系統依賴的基礎配置,不少路徑都依賴它。hdfs-site-xml中默認配置namenode 和datanode的存放位置的地址就是基於此。 LINUX 系統中,在服務重啓後,/tmp 下的目錄被清空,因此要轉到持久化的地址vim
<configuration> <property> <name>fs.defaultFS</name> <value>hdfs://master:9000</value> </property> <property> <name>hadoop.tmp.dir</name> <value>/home/null/hadoop/app/tmp</value> </property> </configuration>
經過該配置文件能夠修改有關的HDFS的默認配置segmentfault
參數 | 默認值 | 解釋 |
---|---|---|
dfs.replication | 3 | 決定着系統裏面的文件塊的數據備份個數 |
dfs.namenode.secondary.http-address | 0.0.0.0:50090 | secondary namenode服務地址和端口 |
dfs.namenode.name.dir | file://${hadoop.tmp.dir}/dfs/name | 決定namenode的fsimage文件在本地文件系統的存儲位置,若是是以逗號分割的目錄列表,將會複製到全部目錄中,冗餘 |
dfs.datanode.data.dir | file://${hadoop.tmp.dir}/dfs/data | 決定datanode的數據塊在本地文件系統的存儲位置,若是目錄不存在將被建立若是權限容許的話 |
<configuration> <property> <name>dfs.namenode.secondary.http-address</name> <value>master:50090</value> </property> <property> <name>dfs.replication</name> <value>3</value> </property> </configuration>
副本數目不能大於datanode數目
在core-site.中配置了hadoop.tmp.dir,這裏保持默認便可瀏覽器
該文件中的屬性能夠覆蓋用於控制MapReduce任務執行的默認屬性值服務器
參數 | 默認值 | 解釋 |
---|---|---|
mapreduce.framework.name | local | MapReduce 做業的執行框架 |
mapreduce.jobhistory.address | 0.0.0.0:10020 | MapReduce的歷史服務器通訊地址 |
mapreduce.jobhistory.webapp.address | 0.0.0.0:19888 | MapReduce的歷史服務器web界面地址 |
<configuration> <property> <name>mapreduce.framework.name</name> <value>yarn</value> </property> </configuration>
默認狀況下,Hadoop歷史服務器是沒有啓動的,咱們能夠經過下面的命令來啓動Hadoop歷史服務器app
sbin/mr-jobhistory-daemon.sh start historyserver
該文件中的配置項能夠覆蓋用於控制YARN組件中的默認屬性值框架
參數 | 默認值 | 解釋 |
---|---|---|
yarn.nodemanager.aux-services | 無 | NodeManager上運行的附屬服務。需配置成mapreduce_shuffle,纔可運行MapReduce程序 |
yarn.resourcemanager.hostname | 0.0.0.0 | ResourceManager的主機名 |
yarn.resourcemanager.address | ${yarn.resourcemanager.hostname}:8032 | ResourceManager 對客戶端暴露的地址。客戶端經過該地址向RM提交應用程序,殺死應用程序等 |
yarn.resourcemanager.scheduler.address | ${yarn.resourcemanager.hostname}:8030 | ResourceManager 對ApplicationMaster暴露的訪問地址。ApplicationMaster經過該地址向RM申請資源、釋放資源等 |
yarn.resourcemanager.webapp.address | ${yarn.resourcemanager.hostname}:8088 | ResourceManager對外web ui地址。用戶可經過該地址在瀏覽器中查看集羣各種信息 |
yarn.nodemanager.resource.memory-mb | 8192 | NodeManager總的可用物理內存。注意,該參數是不可修改的,一旦設置,整個運行過程當中不可動態修改。另外,該參數的默認值是8192MB,即便你的機器內存不夠8192MB,YARN也會按照這些內存來使用 |
yarn.nodemanager.resource.cpu-vcores | 8 | NodeManager總的可用虛擬CPU個數 |
<configuration> <property> <name>yarn.nodemanager.aux-services</name> <value>mapreduce_shuffle</value> </property> <property> <name>yarn.resourcemanager.hostname</name> <value>master</value> </property> <property> <name>yarn.nodemanager.resource.memory-mb</name> <value>1024</value> </property> <property> <name>yarn.nodemanager.resource.cpu-vcores</name> <value>1</value> </property> </configuration>
這裏我架設的虛擬機是1g內存1CPU1核的 ,沒設置最後兩個屬性時,NodeManager啓動報錯內存不足
相關問題能夠參考個人另一篇博客
在master中執行
hdfs namenode -format
在master $HADOOP_HOME下執行
sbin/.start-dfs.sh
使用jps命令查看master上的進程以下
DataNode SecondaryNameNode NameNode Jps
使用jps命令分別查看slave01和slave02上的進程以下
Jps DataNode
在master $HADOOP_HOME下執行
sbin/start-yarn.sh
使用jps命令查看master上的進程以下
DataNode NodeManager ResourceManager SecondaryNameNode NameNode Jps
使用jps命令分別查看slave01和slave02上的進程以下
Jps NodeManager DataNode
終於!Hadoop集羣成功啓動