Centos7+hadoop2.7.3+jdk1.8
修改主機名
1. 修改主機名 vi /etc/sysconfig/network ,改為 master , slave1 , slave2
2. source /etc/sysconfig/network 讓剛才的設置生效
3. 如果不行需要 reboot
4. 在master主機上輸入命令:vi /etc/hosts,添加ip地址和主機名
設置host
5. 將修改後的host文件發送到其他主機,進行遠程拷貝
scp /etc/hosts [email protected]:/etc
6. 設置免密碼登錄
a) ssh-keygen
b) ssh-copy-id 其他主機(例如:ssh-copy-id slave1)
i. master-->slave1,slave2,master
ii. slave1-->slave1,slave2,master
iii. slave2-->slave1,slave2,master
安裝jdk
1. 查看之間是否安裝jdk
a) rpm –qa | grep jdk
2.
3. 安裝包如下 在/opt/software/java 下進行解壓 tar -xvf
4. 配置環境變量 在/etc/profile下
#set java environment export JAVA_HOME=/opt/software/java/jdk1.8.0_141 export JRE_HOME=/opt/software/java/jdk1.8.0_141/jre export CLASSPATH=.:$JRE_HOME/lib/rt.jar:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar export PATH=$PATH:$JAVA_HOME/bin:$JRE_HOME/bin
5. 重新加載配置文件source /etc/profile
6. 測試 java -version javac -version
安裝hadoop
1. 在/opt/software/hadoop 目錄下解壓tar -xvf *** 安裝包如下
2. 重命名 mv hadoop-2.7.3 hadoop
3. 在hadoop目錄下創建目錄tmp,logs,hdfs,hdfs/data,hdfs/name
4. 修改配置文件 etc/hadoop/hadoop-env.sh 文件中
etc/hadoop/yarn-env.sh中
5. etc/hadoop/slaves文件下刪除原來的內容,加上從節點的名字
6. 配置 etc/hadoop/core-site.xml
<configuration> <property> <name>fs.defaultFS</name> <value>hdfs://master:9000</value> </property> <property> <name>hadoop.tmp.dir</name> <value>file:/opt/software/hadoop/hadoop/tmp</value> </property> <property> <name>io.file.buffer.size</name> <value>131702</value> </property> <property> <name>hadoop.proxyuser.root.hosts</name> <value>*</value> </property> <property> <name>hadoop.proxyuser.root.groups</name> <value>*</value> </property> </configuration>
配置 etc/hadoop/hdfs-site.xml
<configuration> <property> <name>dfs.namenode.name.dir</name> <!--namenode節點數據存儲目錄--> <value>file:/opt/software/hadoop/hadoop/hdfs/name</value> </property> <property> <name>dfs.datanode.data.dir</name> <!--datanode數據存儲目錄--> <value>file:/opt/software/hadoop/hadoop/hdfs/data</value> </property> <property> <!--指定DataNode存儲block的副本數量,不大於DataNode的個數就行--> <name>dfs.replication</name> <value>2</value> </property> <property> <!--指定master的http地址--> <name>dfs.namenode.secondary.http-address</name> <value>master:50090</value> </property> <property> <!--指定master的https地址--> <name>dfs.namenode.secondary.https-address</name> <value>master:50091</value> </property> <property> <!--必須設置為true,否則就不能通過web 訪問hdfs上的文件信息--> <name>dfs.webhdfs.enabled</name> <value>true</value> </property> <property> <name>dfs.datanode.max.xcievers</name> <value>4096</value> </property> </configuration>
配置 etc/hadoop/yarn-site.xml 文件
<configuration> <property> <!--NodeManager上運行的附屬服務。需配置成mapreduce_shuffle,才可運行MapReduce程序--> <name>yarn.nodemanager.aux-services</name> <value>mapreduce_shuffle</value> </property> <property> <name>yarn.nodemanager.auxservices.mapreduce.shuffle.class</name> <value>org.apache.hadoop.mapred.ShuffleHandler</value> </property> <property> <!--ResourceManager 對客戶端暴露的地址。客戶端通過該地址向RM提交應用程序,殺死應用程序等。--> <name>yarn.resourcemanager.address</name> <value>master:8032</value> </property> <property> <!--ResourceManager 對ApplicationMaster暴露的訪問地址。ApplicationMaster通過該地址向RM申請資源、釋放資源等。--> <name>yarn.resourcemanager.scheduler.address</name> <value>master:8030</value> </property> <property> <!--ResourceManager 對NodeManager暴露的地址.。NodeManager通過該地址向RM匯報心跳,領取任務等。--> <name>yarn.resourcemanager.resourcetracker.address</name> <value>master:8031</value> </property> <property> <!--ResourceManager 對管理員暴露的訪問地址。管理員通過該地址向RM發送管理命令等。--> <name>yarn.resourcemanager.admin.address</name> <value>master:8033</value> </property> <property> <!--用戶可通過該地址在瀏覽器中查看集群各類信息。--> <name>yarn.resourcemanager.webapp.address</name> <value>master:8088</value> </property> <property> <!--NodeManager總的可用物理內存。註意,該參數是不可修改的,一旦設置,整個運行過程中不可動態修改。另外,該參數的默認值是8192MB,因此,這個值通過一定要配置。不過,Apache已經正在嘗試將該參數做成可動態修改的。--> <name>yarn.nodemanager.resource.memory-mb</name> <value>3072</value> </property> </configuration>
首先修改mapred-site.xml.default為mapred-site.xml
配置 etc/hadoop/mapred-site.xml
<configuration> <property> <name>mapreduce.framework.name</name> <value>yarn</value> </property> <property> <name>mapreduce.jobhistory.address</name> <value>master:10020</value> </property> <property> <name>mapreduce.jobhistory.webapp.address</name> <value>master:19888</value> </property> </configuration>
7. 遠程將master上的 /opt/SoftWare 的內容拷貝到子節點, -r 表示遞歸 scp -r /opt/SoftWare root@slave1:/opt/ scp -r /opt/SoftWare root@slave2:/opt/
8. 配置環境變量
export HADOOP_HOME=/opt/software/hadoop/hadoop
export HADOOP_LOG_DIR=$HADOOP_HOME/logs
export YARN_LOG_DIR=$HADOOP_LOG_DIR
export PATH=$HADOOP_HOME/bin:$HADOOP_HOME/sbin:$PATH
9. 遠程將master上的 /etc/profile 的內容拷貝到子節點
scp -r /etc/profile root@slave1:/etc/
scp -r /etc/profile root@slave2:/etc/
10. 執行全部的source source /etc/profile
11. 同步系統時間
a) 安裝ntpdate工具 yum -y install ntp ntpdate
b) 設置與網絡時間同步ntpdate cn.pool.ntp.org
c) 系統時間寫入硬件時間hwclock -systohc
12. 關閉防火墻
a) systemctl stop firewalld
b) 永久關閉(開機不自啟)systemctl disable firewalld
13. 在主節點hadoop下格式化 bin/hdfs namenode -format
14. 啟動集群 start-all.sh
Centos7+hadoop2.7.3+jdk1.8