1. 規範(配置三臺虛擬機)java
虛擬機命名規範是 master , slave1 , slave2node
網絡模式,NAT轉換模式linux
2. 網絡配置web
全部的虛擬機設置爲ipv4 手動設置,將子網掩碼設置爲apache
若是出現了後綴名是swp 的文件,表示正在編輯的文件沒有正常退出,須要按照指定的目錄將這個臨時文件進行刪除便可網絡
3. 修改主機名稱 vi /etc/sysconfig/network , 改成master , slave1 , slave2 app
source /etc/sysconfig/network 讓剛纔的設置生效ssh
若是不行須要rebootwebapp
4. 設置hostide
在master主機的終端輸入命令:vi /etc/hosts 而後添加
將修改後的hosts 文件發送到其餘主機,進行遠程拷貝scp /etc/hosts root@192.168.175.131:/etc/
5. 安裝SSH
由於在每一個主機中須要生成ssh目錄,只要使用ssh登陸過相應的主機,就會生成ssh目錄在master節點經過ssh命令登陸到相應的子節點中 ssh 192.168.80.131
輸入exit進行退出,返回在master節點
每臺機器首先在終端中輸入命令: cd ~/.ssh
每臺機器而後再終端中輸入命令生成公鑰和私鑰文件: ssh-keygen -t rsa -P ''
每臺機器而後在終端中輸入命令將公鑰文件拷貝到 authorized_keys 文件中: cp id_rsa.pub authorized_keys
在全部slaves節點上都執行命令,將每一個slave中的authorized_keys內容追加到master中的相應的文件內容後:
cat ~/.ssh/authorized_keys | ssh root@192.168.80.130 'cat >> ~/.ssh/authorized_keys'
使用遠程複製,將master中的 authorized_keys 拷貝到對應的 slave1 和 slave2
使用ssh命令,互相進行登陸,出現提示的時候輸入yes,之後每次登陸就不須要再去輸入密碼對於
6. 安裝jdk
利用filezilla將jdk上傳到 /opt/SoftWare/java ,解壓tar -xvf jdk-8u141-linux-x64.tar.gz
配置jdk環境變量,打開/etc/profile配置文件,將下面配置拷貝進去
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
從新加載/etc/profile配置文件 source /etc/profile
java -version 或者 javac 或者 java 是否都識別,識別就證實安裝成功。
7. 安裝Hadoop
利用filezilla將hadoop-2.7.4.tar.gz上傳到 /opt/SoftWare/Hadoop, 進行解壓tar zxvf hadoop-2.7.3.tar.gz
(1)配置環境變量:
vi /etc/profile
在末尾添加:
export HADOOP_HOME=/opt/SoftWare/Hadoop/hadoop-2.7.4
export PATH=$PATH:$HADOOP_HOME/bin:$HADOOP_HOME/sbin
保存後使新編輯的profile生效:
source /etc/profile
(2)配置hadoop
須要配置的文件的位置爲/hadoop-2.6.4/etc/hadoop,須要修改的有如下幾個
hadoop-env.sh
yarn-env.sh
core-site.xml
hdfs-site.xml
mapred-site.xml
yarn-site.xml
slaves
其中
hadoop-env.sh和yarn-env.sh裏面都要添加jdk的環境變量:
7.2.1 hadoop-env.sh中
# The java implementation to use.
export JAVA_HOME=/opt/SoftWare/Java/jdk1.8.0_141
# The jsvc implementation to use. Jsvc is required to run secure datanodes
# that bind to privileged ports to provide authentication of data transfer
# protocol. Jsvc is not required if SASL is configured for authentication of
# data transfer protocol using non-privileged ports.
#export JSVC_HOME=${JSVC_HOME}
7.2.2 yarn-env.sh中
# User for YARN daemons
export HADOOP_YARN_USER=${HADOOP_YARN_USER:-yarn}
# resolve links - $0 may be a softlink
export YARN_CONF_DIR="${YARN_CONF_DIR:-$HADOOP_YARN_HOME/conf}"
# some Java parameters
export JAVA_HOME=/opt/SoftWare/Java/jdk1.8.0_141
7.2.3 core-site.xml中
<configuration> <property> <name>fs.defaultFS</name> <value>hdfs://master:9000</value> </property> <property> <name>io.file.buffer.size</name> <value>131072</value> </property> <property> <name>hadoop.tmp.dir</name> <value>file:/usr/temp</value> </property> <property> <name>hadoop.proxyuser.root.hosts</name> <value>*</value> </property> <property> <name>hadoop.proxyuser.root.groups</name> <value>*</value> </property> </configuration>
7.2.4 hdfs-site.xml中
<configuration> <property> <name>dfs.namenode.secondary.http-address</name> <value>master:9001</value> </property> <property> <name>dfs.namenode.name.dir</name> <value>file:/usr/dfs/name</value> </property> <property> <name>dfs.datanode.data.dir</name> <value>file:/usr/dfs/data</value> </property> <property> <name>dfs.replication</name> <value>2</value> </property> <property> <name>dfs.webhdfs.enabled</name> <value>true</value> </property> <property> <name>dfs.permissions</name> <value>false</value> </property> <property> <name>dfs.web.ugi</name> <value>supergroup</value> </property> </configuration>
7.2.5 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.2.6 yarn-site.xml中
<configuration> <property> <name>yarn.nodemanager.aux-services</name> <value>mapreduce_shuffle</value> </property> <property> <name>yarn.nodemanager.aux-services.mapreduce.shuffle.class</name> <value>org.apache.hadoop.mapred.ShuffleHandler</value> </property> <property> <name>yarn.resourcemanager.address</name> <value>master:8032</value> </property> <property> <name>yarn.resourcemanager.scheduler.address</name> <value>master:8030</value> </property> <property> <name>yarn.resourcemanager.resource-tracker.address</name> <value>master:8031</value> </property> <property> <name>yarn.resourcemanager.admin.address</name> <value>master:8033</value> </property> <property> <name>yarn.resourcemanager.webapp.address</name> <value>master:8088</value> </property> </configuration>
7.2.7 slaves中
slave1 slave2 master
7.2.8 拷貝hadoop安裝文件到子節點 , 主節點上執行:
scp -r /opt/SoftWare/Hadoop/hadoop-2.7.4 root@slave1:/opt/SoftWare/Hadoop scp -r /opt/SoftWare/Hadoop/hadoop-2.7.4 root@slave2:/opt/SoftWare/Hadoop
7.2.9 拷貝profile到子節點
scp /etc/profile root@slave1:/etc/ scp /etc/profile root@slave2:/etc/
在兩個子節點上分別使新的profile生效:
source /etc/profile
2.10 關閉防火牆
CentOS6.x 關閉防火牆: service iptables stop
CentOS7.x 關閉防火牆 systemctl stop firewalld
CentOS6.x 查看防火牆當前狀態: service iptables status
CentOS7.x 查看防火牆當前狀態: systemctl status firewalld
7.2.10 格式化主節點的namenode
主節點上進入/hadoop-2.7.4目錄 而後執行: ./bin/hadoop namenode –format 新版本用下面的語句不用hadoop命令了 ./bin/hdfs namenode –format 提示:successfully formatted表示格式化成功
7.2.11 啓動hadoop集羣
啓動集羣,輸入 ./sbin/start-all.sh 由於已經配置過了環境變量因此能夠直接輸入 start-all.sh
能夠進入logs文件夾查看日誌,查看日誌的命令是 tail -100 日誌文件
7.2.12 關閉hadoop集羣
關閉集羣 stop-all.sh
8. 登陸