-
配置環境要求:
- Centos7
- jdk 8
- Vmware 14 pro
- hadoop 3.1.1
-
Hadoop下載
-
安裝4台虛擬機,如圖所示
-
-
克隆之后需要更改網卡選項,ip,mac地址,uuid
- 重啟網卡:
-
為了方便使用,操作時使用的root賬戶
-
設置機器名稱
-
再使用hostname命令,觀察是否更改
類似的,更改其他三台機器hdp-02、hdp-03、hdp-04。
-
在任意一台機器Centos7上修改域名映射
- vi /etc/hosts
- 修改如下
-
使用scp命令發送其他克隆機上 scp /etc/hosts 192.168.126.124:/etc/
-
給四台機器生成密鑰文件
確認生成。
- 把每一台機器的密鑰都發送到hdp-01上(包括自己)
將所有密鑰都復制到每一台機器上
-
在每一台機器上測試
- 無需密碼則成功,保證四台機器之間可以免密登錄
-
安裝Hadoop
- 在usr目錄下創建Hadoop目錄,以保證Hadoop生態圈在該目錄下。
- 使用xsell+xFTP傳輸文
-
解壓縮Hadoop
-
配置java與hadoop環境變量
1 export JAVA_HOME=/usr/jdk/jdk1.8.0_131 2 export JRE_HOME=${JAVA_HOME}/jre 3 export CLASSPATH=.:${JAVA_HOME}/lib:${JRE_HOME}/lib 4 export PATH=${JAVA_HOME}/bin:$PATH 5 6 export HADOOP_HOME=/usr/hadoop/hadoop-3.1.1/ 7 export PATH=$PATH:$JAVA_HOME/bin:$HADOOP_HOME/bin:$HADOOP_HOME/sbin
注意:以上四台機器都需要配置環境變量
-
修改etc/hadoop中的配置文件
注:除了個別提示,其余文件只用修改hdp-01中的即可
- 修改core-site.xml
1 <configuration> 2 <property> 3 <name>fs.defaultFS</name>
<!-- 注意別的slave機需要識別master主機名,否則將不能與主機hdp-01溝通 -->
4 <value>hdfs://hdp-01:9000</value> 5 </property> 6 <property> 7 <name>hadoop.tmp.dir</name> 8 <!-- 以下為存放臨時文件的路徑 --> 9 <value>/opt/hadoop/hadoop-3.1.1/data/tmp</value> 10 </property> 11 </configuration> -
修改hadoop-env.sh
1 export JAVA_HOME=/usr/jdk/jdk1.8.0_131
注:該步驟需要四台都配置
-
修改hdfs-site.xml
1 <configuration> 2 <property> 3 <name>dfs.namenode.http-address</name> 4 <!-- hserver1 修改為你的機器名或者ip --> 5 <value>hdp-01:50070</value> 6 </property> 7 <property> 8 <name>dfs.namenode.name.dir</name> 9 <value>/hadoop/name</value> 10 </property> 11 <property> 12 <name>dfs.replication</name> 13 <!-- 備份次數 --> 14 <value>1</value> 15 </property> 16 <property> 17 <name>dfs.datanode.data.dir</name> 18 <value>/hadoop/data</value> 19 </property> 20 21 22 </configuration>
-
修改mapred-site.xml
1 <configuration> 2 <property> 3 <name>mapreduce.framework.name</name> 4 <value>yarn</value> 5 </property> 6 </configuration>
-
修改 workers
1 hdp-01 2 hdp-02 3 hdp-03 4 hdp-04
-
修改yarn-site.xml文件
1 <configuration> 2 3 <!-- Site specific YARN configuration properties --> 4 <property> 5 <name>yarn.resourcemanager.hostname</name> 6 <value>hdp-01</value> 7 </property> 8 <property> 9 <name>yarn.nodemanager.aux-services</name> 10 <value>mapreduce_shuffle</value> 11 </property> 12 <property> 13 <name>yarn.nodemanager.aux-services.mapreduce.shuffle.class</name> 14 <value>org.apache.hadoop.mapred.ShuffleHandler</value> 15 </property> 16 <property> 17 <name>yarn.nodemanager.resource.cpu-vcores</name> 18 <value>1</value> 19 </property> 20 21 </configuration>
注:可以把整個/usr/hadoop目錄所有文件復制到其余三個機器上 還是通過scp 嫌麻煩的可以先整一台機器,然后再克隆
-
啟動Hadoop
-
在namenode上初始化
因為hdp-01是namenode,hdp-02、hdp=03和hdp-04都是datanode,所以只需要對hdp-01進行初始化操作,也就是對hdfs進行格式化。
執行初始化腳本,也就是執行命令:hdfs namenode -format
等待一會后,不報錯返回 “Exiting with status 0” 為成功,“Exiting with status 1”為失敗
-
在namenode上執行啟動命令
直接執行start-all.sh 觀察是否報錯,如報錯執行一下內容
$ vim sbin/start-dfs.sh
$ vim sbin/stop-dfs.sh在空白位置加入
1 HDFS_DATANODE_USER=root 2 3 HADOOP_SECURE_DN_USER=hdfs 4 5 HDFS_NAMENODE_USER=root 6 7 HDFS_SECONDARYNAMENODE_USER=root
$ vim sbin/start-yarn.sh
$ vim sbin/stop-yarn.sh在空白位置加入
1 YARN_RESOURCEMANAGER_USER=root 2 3 HADOOP_SECURE_DN_USER=yarn 4 5 YARN_NODEMANAGER_USER=root
$ vim start-all.sh
$ vim stop-all.sh
1 TANODE_USER=root 2 HDFS_DATANODE_SECURE_USER=hdfs 3 HDFS_NAMENODE_USER=root 4 HDFS_SECONDARYNAMENODE_USER=root 5 YARN_RESOURCEMANAGER_USER=root 6 HADOOP_SECURE_DN_USER=yarn 7 YARN_NODEMANAGER_USER=root
配置完畢后執行start-all.sh
運行jps
顯示6個進程說明配置成功
- 去瀏覽器檢測一下 http://hdp-01:50070
創建目錄 上傳不成功需要授權
hdfs dfs -chmod -R a+wr hdfs://hdp-01:9000/
-
//查看容量
hadoop fs -df -h / - 查看各個機器狀態報告
hadoop dfsadmin -report