centos7搭建hadoop3.*.*系列
最近搭建這個hadoop踩過不少坑,先是配置JDK搞錯路徑(普通使用者和root使用者下的路徑不同),再就是hadoop版本不同導致的啟動錯誤,網上找到的是hadoop2.*.*的版本,但是我安裝的hadoop3.*.*的版本,環境配置有部分不同。希望大家不要重蹈覆轍!
下載hadoop安裝包
地址:http://hadoop.apache.org/
安裝配置
1.配置主機名:
將檔案中原有的主機名刪除,新增你自己的主機名,儲存並退出。
vi /etc/hostname
2.配置hosts檔案:
在檔案最後增加機器的IP地址和剛才配好的主機名,儲存並退出。
vi /etc/hosts
3.生成SSH金鑰:執行以下命令,然後一直回車。來生成SSH金鑰。生成的金鑰檔案會存放在/root/.ssh/目錄下。前提是你用的root帳號登入並且生成的ssh金鑰。
ssh-keygen
4.配置機器免密登入:執行以下命令、將剛才生成好的SSH金鑰傳送指定的機器上,來實現機器免密登入。
ssh-copy-id root@主機名
5.上傳和解壓下載好的Hadoop安裝包,上傳可以直接從xshell拖進目錄
tar -zxvf hadoop-3.1.2.tar.gz(我這裡寫的是我的包名)
6.配置hadoop-env.sh檔案:這個檔案裡寫的是hadoop的環境變數,主要修改hadoop的JAVA_HOME、HADOOP_HOME和HADOOP_CONF_DIR 路徑,修改完成後儲存退出。
cd hadoop-3.1.2/etc/hadoop/
vi hadoop-env.sh
7.修改core-site.xml檔案:使用vi core-site.xml開啟檔案,增加以下配置引數。
1 <configuration> 2 <!--用來指定 hdfs 的老大,namenode 的地址--> 3 <property> 4 <name>fs.defaultFS</name> 5 <value>hdfs://主機名:9870</value> 6 </property> 7 <!--用來指定 hadoop 執行時產生臨時檔案的存放目錄,如果不配置預設使用/tmp目錄存在安全隱患 --> 8 <property> 9 <name>hadoop.tmp.dir</name> 10 <value>hadoop的路徑/tmp</value> 11 </property> 12 </configuration>
8.修改hdfs-site.xml:使用vi hdfs-site.xml開啟檔案,增加以下配置引數。
1 <!--指定 hdfs 儲存資料副本的數量,包括自己,預設值是 3--> 2 <!--如果是偽分佈模式,此值是 1--> 3 <property> 4 <name>dfs.replication</name> 5 <value>1</value> 6 </property> 7 <!--設定 hdfs 的操作許可權,false 表示任何使用者都可以在 hdfs 上操作檔案--> 8 <property> 9 <name>dfs.permissions</name> 10 <value>false</value> 11 </property> 12 13 <property> 14 <name>dfs.http.address</name> 15 <value>0.0.0.0:9870</value> 16 </property>
9.修改mapred-site.xml:使用vi mapred-site.xml,增加以下配置引數。(hadoop3.*裡面直接修改這個檔案,在hadoop2.*裡mapred-site.xml這個檔案初始時是沒有的,有的是模板檔案,mapred-site.xml.template,所以需要拷貝一份,並重命名為 mapred-site.xml )
1 <property> 2 <!--指定 mapreduce 執行在 yarn 上--> 3 <name>mapreduce.framework.name</name> 4 <value>yarn</value> 5 </property>
10.修改 yarn-site.xml:使用vi yarn-site.xml開啟檔案,增加以下配置引數。
1 <property> 2 <!--指定 yarn 的老大 resoucemanager 的地址--> 3 <name>yarn.resourcemanager.hostname</name> 4 <value>主機名</value> 5 </property> 6 <property> 7 <!--NodeManager 獲取資料的方式--> 8 <name>yarn.nodemanager.aux-services</name> 9 <value>mapreduce_shuffle</value> 10 </property>
11.配置 slaves 檔案:使用vi slaves開啟檔案,增加以下配置引數。
hostname #寫主機名
12.配置Hadoop的環境變數:使用vi /etc/profile開啟檔案,增加以下配置引數。儲存退出後,使用source /etc/profile命令來使配置立即生效。
1 #配置hadoop的環境變數 2 export HADOOP_HOME=hadoop的路徑 3 export PATH=${PATH}:${HADOOP_HOME}/bin:${HADOOP_HOME}/sbin
13.格式化namenode:使用以下命令進行格式化hadoop的namenode。出現successfully代表成功。
hadoop namenode -format
14.hadoop3.*版本的話,此時啟動還會報錯
是因為缺少使用者定義造成的,所以在hadoop目錄下分別編輯開始和關閉指令碼
vim sbin/start-dfs.sh
vim sbin/stop-dfs.sh
在靠上面的空白處新增內容:
- HDFS_DATANODE_USER=root
- HDFS_DATANODE_SECURE_USER=hdfs
- HDFS_NAMENODE_USER=root
- HDFS_SECONDARYNAMENODE_USER=root
vim sbin/start-yarn.sh
vim sbin/stop-yarn.sh
在靠上面的空白處新增內容:
YARN_RESOURCEMANAGER_USER=root
HADOOP_SECURE_DN_USER=yarn
YARN_NODEMANAGER_USER=root
15.啟動hadoop:使用start-all.sh命令啟動hadoop。啟動完成後,通過jps命令檢視程序節點。如果出現六個節點和地址說明成功啟動。
&n