1. 默認配置文件: 存放於Hadoop對應的jar包中
core-default.xml
hdfs-default.xml
yarn-default.xml
mapred-default.xml
2. 自定義配置文件: $HADOOP_HOME/etc/hadoop
core-site.xml
hdfs-site.xml
yarn-site.xml
mapred-site.xml
2.1 core-site.xml
<configuration>
<property>
<!-- 指定HDFS中NameNode的地址 -->
<name>fs.defaultFS</name>
<value>hdfs://localhost:9000</value>
</property>
<!-- 指定Hadoop運行時產生文件的存儲目錄,hadoop啟動時,會自動創建 -->
<property>
<name>hadoop.tmp.dir</name>
<value>/(自定義路徑)/hadoop-2.8.5/data/tmp</value>
</property>
</configuration>
2.2 hadoop-env.sh
export JAVA_HOME=服務器java環境變量
2.3 hdfs-site.xml
<configuration>
<!-- nameNode 文件的副本數量 -->
<property>
<name>dfs.replication</name>
<value>1</value>
</property>
<!-- nameNode 的訪問地址-->
<property>
<name>dfs.namenode.rpc-bind-host</name>
<value>0.0.0.0</value>
</property>
</configuration>
2.4 yarn-site.xml
<configuration>
<!-- Reducer 獲取數據的方式-->
<property>
<name>yarn.nodemanager.aux-services</name>
<value>mapreduce_shuffle</value>
</property>
<property>
<name>yarn.resourcemanager.hostname</name>
<value>0.0.0.0</value>
</property>
<!-- 指定YARN 的 ResourceManager 的地址-->
<property>
<name>yarn.resourcemanager.webapp.address</name>
<value>${yarn.resourcemanager.hostname}:8090</value>
</property>
<!-- 開啟日志聚集功能 -->
<property>
<name>yarn.log-aggregation-enable</name>
<value>true</value>
</property>
<!-- 日志保留7天 -->
<property>
<name>yarn.log-aggregation.retain-seconds</name>
<value>604800</value>
</property>
</configuration>
2.5 yarn-env.sh
配置
export JAVA_HOME=服務器java環境變量
2.6 mapred-site.xml
<configuration>
<!-- 指定MR運行在YARN上 -->
<property>
<name>mapreduce.framework.name</name>
<value>yarn</value>
</property>
<!-- 歷史記錄服務器端地址 -->
<property>
<name>mapreduce.jobhistory.address</name>
<value>localhost:10020</value>
</property>
<!-- 歷史服務器web端地址 -->
<property>
<name>mapreduce.jobhistory.webapp.address</name>
<value>0.0.0.0:8091</value>
</property>
</configuration>
2.7 mapred-env.sh
配置
export JAVA_HOME=服務器java環境變量
3. Hadoop 集群配置
3.1 節點內容預覽
節點1 | 節點2 | 節點3 | |
---|---|---|---|
HDFS | NameNode DataNode |
DataNode |
SecondaryNameNode DataNode |
YARN | NodeManager |
ResourceManager NodeManager |
NodeManager |
3.2 core-site.xml
配置
<configuration>
<property>
<!-- 指定HDFS中NameNode的地址 -->
<name>fs.defaultFS</name>
<value>hdfs://節點1:9000</value>
</property>
<!-- 指定Hadoop運行時產生文件的存儲目錄,hadoop啟動時,會自動創建 -->
<property>
<name>hadoop.tmp.dir</name>
<value>/(自定義路徑)/hadoop-2.8.5/data/tmp</value>
</property>
</configuration>
3.3 hadoop-env.sh
配置
export JAVA_HOME=服務器java環境變量
3.4 hdfs-site.xml
配置
<configuration>
<!-- nameNode 文件的副本數量 -->
<property>
<name>dfs.replication</name>
<value>3</value>
</property>
<!-- 指定 Hadoop 輔助名稱節點主機配置(SecondaryNameNode) -->
<property>
<name>dfs.namenode.secondary.http-address</name>
<value>節點3主機名稱:端口號</value>
</property>
</configuration>
3.5 yarn-env.sh
配置
export JAVA_HOME=服務器java環境變量
3.6 yarn-site.xml
配置
<configuration>
<!-- Reducer 獲取數據的方式-->
<property>
<name>yarn.nodemanager.aux-services</name>
<value>mapreduce_shuffle</value>
</property>
<property>
<name>yarn.resourcemanager.hostname</name>
<value>節點2</value>
</property>
<!-- 指定YARN 的 ResourceManager 的地址-->
<property>
<name>yarn.resourcemanager.webapp.address</name>
<value>${yarn.resourcemanager.hostname}:8090</value>
</property>
<!-- 開啟日志聚集功能 -->
<property>
<name>yarn.log-aggregation-enable</name>
<value>true</value>
</property>
<!-- 日志保留7天 -->
<property>
<name>yarn.log-aggregation.retain-seconds</name>
<value>604800</value>
</property>
</configuration>
3.7 mapred-env.sh
配置
export JAVA_HOME=服務器java環境變量
3.8 mapred-site.xml
配置
<configuration>
<!-- 指定MR運行在YARN上 -->
<property>
<name>mapreduce.framework.name</name>
<value>yarn</value>
</property>
</configuration>
3.9 slaves
配置
節點1
節點2
節點3
4. 常用命令
bin/hdfs namenode -format
: 格式化命令;執行命令前,需要將單節點(或集群)中的/data
,/logs
目錄刪除。bin/hdfs dfs -put 待上傳文件 上傳的目的地
:將本地文件上傳至hdfs中。sbin/hadoop-daemon.sh start(stop) namenode
: 啟動(或停止)單節點NameNode。sbin/hadoop-daemon.sh start(stop) datanode
: 啟動(或停止)單節點DataNode。sbin/yarn-daemon.sh start(stop) resourcemanager
: 啟動(或停止)單節點ResourceManager。sbin/yarn-daemon.sh start(stop) nodemanager
: 啟動(或停止)單節點NodeManager。sbin/mr-jobhistory-daemon.sh start(stop) historyserver
: 啟動(或停止)單節點History記錄。sbin/start-dfs.sh
: 啟動HDFS集群(注意:所有節點均已配置"Hadoop目錄/etc/hadoop/slaves")。sbin/start-yarn.sh
: 啟動YARN集群(注意:所有節點均已配置"Hadoop目錄/etc/hadoop/slaves"; 另外,需要在ResourceManager服務器啟動)。sbin/stop-dfs.sh
: 停止HDFS集群。sbin/stop-yarn.sh
: 停止YARN集群。
5. 集群時間同步
- 時間同步的方式:找一個機器, 作為時間服務器,所有機器與這台集群時間進行定時的同步;
- 檢查
ntp
是否安裝rpm -qa|grep ntp
; - 修改
ntp
配置文件/etc/ntp.conf
; - 修改
/etc/sysconfig/ntpd
文件;- 讓硬件時間與系統時間一起同步;
- 重啟
ntpd
服務; - 設置
ntpd
服務開機啟動;
- 檢查
**參考資料:** - [設置集群時間同步](https://www.bilibili.com/video/av32081351/?p=44) - [rpm命令](http://man.linuxde.net/rpm)