Hadoop2.0完全分散式叢集搭建方法(CentOS7+Hadoop2.7.7)
本文詳細介紹搭建4個節點的完全分散式Hadoop叢集的方法,Linux系統版本是CentOS 7,Hadoop版本是2.7.7,JDK版本是1.8。
一、準備環境
1. 在VMware workstations上建立4個Linux虛擬機器,並配置其靜態IP。
如何在VMware workstation上建立Linux虛擬機器
準備使用Linux虛擬機器部署Hadoop叢集,故在win10系統上安裝了VMware workstation,具體安裝非常簡單,在此不做闡述。本文主要介紹如何在VMware workstation上建立Linux虛擬機器。
步驟:
1. 如下圖,在VMware workstation中,點選【建立新的虛擬機器】。
2. Linux虛擬機器的具體配置如下:
有關【克隆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. 配置免密碼登入
有關【配置免密碼登入方法】,請參考這裡 https://www.linuxidc.com/Linux/2019-02/156882.htm 。
5. 配置Java環境(每個節點)
本文詳細介紹Linux系統下配置Java環境的方法,使用JDK1.8版本。
1. 從Oracle官網上下載Java8版本。
下載連結:https://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html
2. 上傳Java包到Linux系統。
使用rz命令將Java tar包上傳到Linux系統。(有關rz命令用法,請參考這裡)
3. 解壓Java安裝包
[root@hadoop01 opt]# ls
jdk-8u101-linux-x64.tar.gz
[root@hadoop01 opt]# tar -zxvf jdk-8u101-linux-x64.tar.gz
...
jdk1.8.0_101/man/ja_JP.UTF-8/man1/javapackager.1
jdk1.8.0_101/man/ja_JP.UTF-8/man1/jstat.1
[root@hadoop01 opt]# ls
jdk1.8.0_101 jdk-8u101-linux-x64.tar.gz
4. 配置Java環境變數
#vim /etc/profile
# Java
export JAVA_HOME=/opt/jdk1.8.0_101 # 該路徑為java安裝路徑
export CLASSPATH=$JAVA_HOME/lib/
export PATH=$PATH:$JAVA_HOME/bin
# :wq儲存後,使配置檔案生效
#source /etc/profile
5. 驗證Java安裝狀態
[root@hadoop01 jdk1.8.0_101]# java -version
java version "1.8.0_101"
Java(TM) SE Runtime Environment (build 1.8.0_101-b13)
Java HotSpot(TM) 64-Bit Server VM (build 25.101-b13, mixed mode)
二、搭建Hadoop完全分散式叢集
在各個節點上安裝與配置Hadoop的過程都基本相同,因此可以在每個節點上安裝好Hadoop後,在主節點master上進行統一配置,然後通過scp 命令將修改的配置檔案拷貝到各個從節點上即可。
1. 下載Hadoop安裝包,解壓,配置Hadoop環境變數
有關【Hadoop安裝包下載方法】。
Hadoop3.0版本的誕生,引入了很多新功能,為了驗證Hadoop2.0與3.0版本的效能,需下載Hadoop的不同版本。故下文演示如何下載Hadoop安裝包的方法。
1. 進入Apache Hadoop官網:http://hadoop.apache.org/
2. 點選左側【Download】按鈕,進入如下下載頁面:
可點選當前介面上顯示的Binary安裝包進入下載,亦可點選【mirror site】進入映象頁面,選擇要安裝的版本進行下載。
本文下載的Hadoop版本是2.7.7,指定一個目錄(比如:/opt),使用rz命令上傳Hadoop安裝包到Linux系統,解壓到指定目錄,配置Hadoop環境變數,並使其生效。實現命令如下:
#配置Hadoop環境變數
[root@hadoop02 opt]# vim /etc/profile
#Hadoop
export HADOOP_HOME=/opt/hadoop-2.7.7 # 該目錄為解壓安裝目錄
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引數
#進入Had安裝目錄下的etc/hadoop目錄
[root@hadoop01 ~]#cd /opt/hadoop-2.7.7/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/jdk1.8.0_101" # 路徑為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
<configuration>
<property>
<!-- 配置hdfs地址 -->
<name>fs.defaultFS</name>
<value>hdfs://hadoop01:9000</value>
</property>
<property>
<!-- 儲存臨時檔案目錄,需先在/opt/hadoop-2.7.7下建立tmp目錄 -->
<name>hadoop.tmp.dir</name>
<value>/opt/hadoop-2.7.7/tmp</value>
</property>
<property>
<name>hadoop.proxyuser.root.hosts</name>
<value>*</value>
</property>
<property>
<name>hadoop.proxyuser.root.groups</name>
<value>*</value>
</property>
</configuration>
(2)hdfs-site.xml
<configuration>
<property>
<!-- 主節點地址 -->
<name>dfs.namenode.http-address</name>
<value>hadoop01:50070</value>
</property>
<property>
<name>dfs.namenode.name.dir</name>
<value>file:/opt/hadoop/dfs/name</value>
</property>
<property>
<name>dfs.datanode.data.dir</name>
<value>file:/opt/hadoop/dfs/data</value>
</property>
<property>
<!-- 備份份數 -->
<name>dfs.replication</name>
<value>2</value>
</property>
<property>
<!-- 第二節點地址 -->
<name>dfs.namenode.secondary.http-address</name>
<value>hadoop02:9001</value>
</property>
<property>
<name>dfs.webhdfs.enabled</name>
<value>true</value>
</property>
<property>
<name>dfs.permissions</name>
<value>false</value>
<description>配置為false後,可以允許不要檢查許可權就生成dfs上的檔案,需防止誤刪操作</description>
</property>
</configuration>
(3)mapred-site.xml
<configuration>
<property>
<name>mapreduce.framework.name</name>
<value>yarn</value>
</property>
<property>
<name>mapreduce.jobhistory.address</name>
<value>hadoop01:10020</value>
</property>
<property>
<name>mapreduce.jobhistory.webapp.address</name>
<value>hadoop01:19888</value>
</property>
</configuration>
(4)yarn-site.xml
<configuration>
<property>
<name>yarn.nodemanager.aux-services</name>
<value>mapreduce_shuffle</value>
</property>
<property>
<name>yarn.nodemanager.auxservices.mapreduce.shuffle.class</name>
<value>org.apache.hadoop.mapred.ShuffleHandler</value>
</property>
<property>
<name>yarn.resourcemanager.address</name>
<value>hadoop01:8032</value>
</property>
<property>
<name>yarn.resourcemanager.scheduler.address</name>
<value>hadoop01:8030</value>
</property>
<property>
<name>yarn.resourcemanager.resource-tracker.address</name>
<value>hadoop01:8031</value>
</property>
<property>
<name>yarn.resourcemanager.admin.address</name>
<value>hadoop01:8033</value>
</property>
<property>
<name>yarn.resourcemanager.webapp.address</name>
<value>hadoop01:8088</value>
</property>
<property>
<name>yarn.nodemanager.resource.memory-mb</name>
<!-- NodeManager中的配置,這裡配置過小可能導致nodemanager啟動不起來
大小應該大於 spark中 executor-memory + driver的記憶體 -->
<value>6144</value>
</property>
<property>
<!-- RsourceManager中配置
大小應該大於 spark中 executor-memory + driver的記憶體 -->
<name>yarn.scheduler.maximum-allocation-mb</name>
<value>61440</value>
</property>
<property>
<!-- 使用核數 -->
<name>yarn.nodemanager.resource.cpu-vcores</name>
<value>2</value>
</property>
<property>
<name>yarn.log-aggregation-enable</name>
<value>true</value>
</property>
<property>
<name>yarn.log-aggregation.retain-seconds</name>
<value>604800</value>
</property>
<property>
<name>yarn.nodemanager.vmem-check-enabled</name>
<value>false</value>
<description>忽略虛擬記憶體的檢查,如果你是安裝在虛擬機器上,這個配置很有用,配上去之後後續操作不易出問題。</description>
</property>
<property>
<!-- 排程策略,設定為公平排程器 -->
<name>yarn.resourcemanager.scheduler.class</name>
<value>org.apache.hadoop.yarn.server.resourcemanager.scheduler.fair.FairScheduler</value>
</property>
</configuration>
(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. Web埠訪問
注:先開放埠或直接關閉防火牆
# 檢視防火牆狀態
firewall-cmd --state
# 臨時關閉
systemctl stop firewalld
# 禁止開機啟動
systemctl disable firewalld
在瀏覽器輸入:http://hadoop01:8088開啟Hadoop Web頁面。
在瀏覽器輸入:http://hadoop01:50070開啟Hadoop Web頁面。
Hadoop基本操作命令
#hadoop dfsadmin -report 檢視hdfs叢集的儲存空間使用情況。
#hadoop fs -du -h 目錄 檢視當前目錄下各個檔案佔得記憶體
#hadoop fs –rmr /tmp/aaa刪除一個目錄
#hadoop fs –put檔案 hdfs檔案目錄上傳一個檔案
#hadoop fs –get hdfs檔案下載地址目錄下載一個檔案
#hadoop fs –moveFromLocal檔案hdfs檔案目錄上傳一個檔案同時刪除本地檔案
#haddop fs –text hdfs目錄檢視檔案內容
#haddopfs –cat hdfs目錄檢視檔案內容
#hadoop job –list獲取任務列表
#hadoop job –kill job-id殺死一個job
#hadoop-daemon.sh start datanoe加入一個新的節點
#hadoop mradmin/dfsadmin –refreshnones刪除一個節點
#yarn application -kill application_任務id:停止在yarn上執行的spark任務,在resourcemanager上執行
#hadoop fs -ls .Trash/Current (顯示Current目錄)
#hadoop fs -rm -r .Trash/Current (刪除Current目錄及其子目錄)
在 LinuxUbuntu 18.04/18.10上安裝Hadoop圖文詳解 https://www.linuxidc.com/Linux/2018-11/155282.htm
CentOS 7 下搭建Hadoop 2.9 分散式叢集 https://www.linuxidc.com/Linux/2018-11/155328.htm
更多Hadoop相關資訊見 Hadoop 專題頁面 https://www.linuxidc.com/topicnews.aspx?tid=13
Linux公社的RSS地址 : https://www.linuxidc.com/rssFeed.aspx
本文永久更新連結地址: https://www.linuxidc.com/Linux/2019-02/156881.htm