Hadoop 2.0完全分布式集群搭建方法(CentOS7+Hadoop 2.7.7)


本文詳細介紹搭建4個節點的完全分布式Hadoop集群的方法,Linux系統版本是CentOS 7,Hadoop版本是2.7.7,JDK版本是1.8。

一、准備環境

1. 在VMware workstations上創建4個Linux虛擬機,並配置其靜態IP。

有關【創建Linux虛擬機及配置網絡】,請參考這里

2. 配置DNS(每個節點)

 編輯配置文件,添加主節點和從節點的映射關系。

#vim /etc/hosts
192.168.44.3 hadoop01
192.168.44.4 hadoop02
192.168.44.5 hadoop03
192.168.44.6 hadoop04

 3. 關閉防火牆(每個節點)

#關閉服務
[root@hadoop01 opt]# systemctl stop firewalld
#關閉開機自啟動
[root@hadoop01 opt]# systemctl disable firewalld
Removed symlink /etc/systemd/system/multi-user.target.wants/firewalld.service.
Removed symlink /etc/systemd/system/dbus-org.fedoraproject.FirewallD1.service.

4. 配置免密碼登錄
有關【配置免密碼登錄方法】,請參考這里

5. 配置Java環境(每個節點)
有關【配置java環境方法】,請參考這里

二、搭建Hadoop完全分布式集群

在各個節點上安裝與配置Hadoop的過程都基本相同,因此可以在每個節點上安裝好Hadoop后,在主節點master上進行統一配置,然后通過scp 命令將修改的配置文件拷貝到各個從節點上即可。

1. 下載Hadoop安裝包,解壓,配置Hadoop環境變量

有關【Hadoop安裝包下載方法】,請參考這里

本文下載的Hadoop版本是2.7.7,指定一個目錄(比如:/opt),使用rz命令上傳Hadoop安裝包到Linux系統,解壓到指定目錄,配置Hadoop環境變量,並使其生效。實現命令如下:

#解壓到/opt目錄
[root@hadoop01 opt]# tar -zxvf hadoop-2.7.7.tar.gz
#鏈接/opt/hadoop-2.7.7到/opt/hadoop,方便后續配置
[root@hadoop01 opt] #ln -s hadoop-2.7.7 hadoop
#配置Hadoop環境變量
[root@hadoop02 opt]# vim
/etc/profile #Hadoop export HADOOP_HOME=/opt/hadoop # 該目錄為解壓安裝目錄 export PATH=$PATH:$HADOOP_HOME/bin export PATH=$PATH:$HADOOP_HOME/sbin export HADOOP_CONF_DIR=${HADOOP_HOME}/etc/hadoop #保存后,使profile生效 [root@hadoop02 opt]# source /etc/profile

 2. 配置Hadoop環境腳本文件中的JAVA_HOME參數

#進入Hadoop安裝目錄下的etc/hadoop目錄
[root@hadoop01 ~]#cd /opt/hadoop/etc/hadoop

#分別在hadoop-env.sh、mapred-env.sh、yarn-env.sh文件中添加或修改如下參數:

[root@hadoop01 hadoop]# vim hadoop-env.sh
[root@hadoop01 hadoop]# vim mapred-env.sh
[root@hadoop01 hadoop]# vim yarn-env.sh

export JAVA_HOME="/opt/jdk"  # 路徑為jdk安裝路徑

 3. 修改Hadoop配置文件

Hadoop安裝目錄下的etc/hadoop目錄中,需修改core-site.xml、hdfs-site.xml、mapred-site.xml、yarn-site.xml、slaves(3.0之后為workers)文件,根據實際情況修改配置信息。

(1)core-site.xml

 1 <configuration>
 2 <property>
 3     <!-- 配置hdfs地址 -->
 4     <name>fs.defaultFS</name>
 5     <value>hdfs://hadoop01:9000</value>
 6 </property>
 7 <property>
 8     <!-- 保存臨時文件目錄,需先在/opt/hadoop-2.7.7下創建tmp目錄 -->
 9     <name>hadoop.tmp.dir</name>
10     <value>/opt/hadoop-2.7.7/tmp</value>
11 </property>
12 
13 <property>
14     <name>hadoop.proxyuser.root.hosts</name>
15     <value>*</value>
16 </property>
17 <property>
18     <name>hadoop.proxyuser.root.groups</name>
19     <value>*</value>
20 </property>
21 </configuration>

更多配置信息,請參考core-site.xml

(2)hdfs-site.xml

 1 <configuration>
 2     <property>
 3         <!-- 主節點地址 -->
 4         <name>dfs.namenode.http-address</name>
 5         <value>hadoop01:50070</value>
 6     </property>
 7     <property>
 8         <name>dfs.namenode.name.dir</name>
 9         <value>file:/opt/hadoop/dfs/name</value>
10     </property>
11     <property>
12         <name>dfs.datanode.data.dir</name>
13         <value>file:/opt/hadoop/dfs/data</value>
14     </property>
15     <property>
16         <!-- 備份份數 -->
17         <name>dfs.replication</name>
18         <value>2</value>
19     </property>
20     <property>
21         <!-- 第二節點地址 -->
22         <name>dfs.namenode.secondary.http-address</name>
23         <value>hadoop02:9001</value>
24     </property>
25     <property>
26     <name>dfs.webhdfs.enabled</name>
27     <value>true</value>
28     </property>
29     <property>
30         <name>dfs.permissions</name>
31         <value>false</value>
32         <description>配置為false后,可以允許不要檢查權限就生成dfs上的文件,需防止誤刪操作</description>
33     </property>
34 </configuration>

更多配置信息,請參考hdfs-site.xml

(3)mapred-site.xml

 1 <configuration>
 2     <property>
 3         <name>mapreduce.framework.name</name>
 4         <value>yarn</value>
 5     </property>
 6     <property>
 7         <name>mapreduce.jobhistory.address</name>
 8         <value>hadoop01:10020</value>
 9     </property>
10     <property>
11         <name>mapreduce.jobhistory.webapp.address</name>
12         <value>hadoop01:19888</value>
13     </property>
14 </configuration>

更多配置信息,請參考mapred-site.xml

(4)yarn-site.xml

 1 <configuration>
 2     <property>
 3         <name>yarn.nodemanager.aux-services</name>
 4         <value>mapreduce_shuffle</value>
 5     </property>
 6     <property>
 7         <name>yarn.nodemanager.auxservices.mapreduce.shuffle.class</name>
 8         <value>org.apache.hadoop.mapred.ShuffleHandler</value>
 9     </property>
10     <property>
11         <name>yarn.resourcemanager.address</name>
12         <value>hadoop01:8032</value>
13     </property>
14     <property>
15         <name>yarn.resourcemanager.scheduler.address</name>
16         <value>hadoop01:8030</value>
17     </property>
18     <property>
19         <name>yarn.resourcemanager.resource-tracker.address</name>
20         <value>hadoop01:8031</value>
21     </property>
22     <property>
23         <name>yarn.resourcemanager.admin.address</name>
24         <value>hadoop01:8033</value>
25     </property>
26     <property>
27         <name>yarn.resourcemanager.webapp.address</name>
28         <value>hadoop01:8088</value>
29     </property>
30     
31     <property>
32         <name>yarn.nodemanager.resource.memory-mb</name>
33         <!-- NodeManager中的配置,這里配置過小可能導致nodemanager啟動不起來
34                           大小應該大於 spark中 executor-memory + driver的內存 -->
35         <value>6144</value>
36     </property>
37     <property>
38         <!-- RsourceManager中配置
39                           大小應該大於 spark中 executor-memory + driver的內存 -->
40         <name>yarn.scheduler.maximum-allocation-mb</name>
41         <value>61440</value>
42     </property>
43     <property>
44         <!-- 使用核數 -->
45         <name>yarn.nodemanager.resource.cpu-vcores</name>
46         <value>2</value>
47     </property>
48 
49     <property>
50         <name>yarn.log-aggregation-enable</name>
51         <value>true</value>
52     </property>
53     <property>
54         <name>yarn.log-aggregation.retain-seconds</name>
55         <value>604800</value>
56     </property>
57     <property>
58         <name>yarn.nodemanager.vmem-check-enabled</name>
59         <value>false</value>
60         <description>忽略虛擬內存的檢查,如果你是安裝在虛擬機上,這個配置很有用,配上去之后后續操作不易出問題。</description>
61     </property>
62     <property>
63        <!-- 調度策略,設置為公平調度器 -->
64        <name>yarn.resourcemanager.scheduler.class</name>
65        <value>org.apache.hadoop.yarn.server.resourcemanager.scheduler.fair.FairScheduler</value>
66     </property>
67 </configuration>

更多配置信息,請參考yarn-site.xml

(5)slaves文件

#增加從節點地址(若配置了hosts,可直接使用主機名,亦可用IP地址)
[root@hadoop01 hadoop]# vim slaves
hadoop02
hadoop03
hadoop04

 4. 將配置好的文件夾拷貝到其他從節點

[root@hadoop01 hadoop-2.7.7]# scp -r /opt/hadoop-2.7.7 root@hadoop02:/opt/
[root@hadoop01 hadoop-2.7.7]# scp -r /opt/hadoop-2.7.7 root@hadoop03:/opt/
[root@hadoop01 hadoop-2.7.7]# scp -r /opt/hadoop-2.7.7 root@hadoop04:/opt/

5. 初始化 & 啟動

#格式化
[root@hadoop01 hadoop-2.7.7]# bin/hdfs namenode -format

#啟動
[root@hadoop01 hadoop-2.7.7]# sbin/start-dfs.sh 
[root@hadoop01 hadoop-2.7.7]# sbin/start-yarn.sh

6. 驗證Hadoop啟動成功

#主節點
[root@hadoop01 hadoop-2.7.7]# jps
5895 Jps
5624 ResourceManager
5356 NameNode

#從節點
[root@hadoop02 hadoop]# jps
5152 SecondaryNameNode
5085 DataNode
5245 NodeManager
5357 Jps

[root@hadoop03 opt]# jps
5080 DataNode
5178 NodeManager
5278 Jps

[root@hadoop04 opt]# jps
5090 NodeManager
5190 Jps
4991 DataNode

7. Hadoop Web端口訪問

注:先開放端口或直接關閉防火牆

# 查看防火牆狀態
firewall-cmd --state
# 臨時關閉
systemctl stop firewalld
# 禁止開機啟動
systemctl disable firewalld

在瀏覽器輸入:http://hadoop01:8088,打開Hadoop Web管理頁面。

 

 在瀏覽器輸入:http://hadoop01:50070打開Hadoop Web頁面。

  注意:如果輸入主節點名稱無法打開Web頁面,則需要配置Windows上的hosts,路徑如下:

C:\Windows\System32\drivers\etc\hosts

192.168.44.5 hadooop01
192.168.44.6 hadooop02
192.168.44.7 hadooop03
192.168.44.8 hadooop04

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM