1. 程式人生 > >centos7搭建hadoop3.*.*系列

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 
在靠上面的空白處新增內容: 

  1. HDFS_DATANODE_USER=root  
  2. HDFS_DATANODE_SECURE_USER=hdfs  
  3. HDFS_NAMENODE_USER=root
  4. 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