大數(shù)據(jù)基礎Hadoop 3.1.1 的高可用HA安裝~踩坑記錄

最近負責的項目準備上大數(shù)據(jù)平臺存儲坏快,主要還是圍繞Hadoop平臺來實現(xiàn),雖然打算上cdh版本的hadoop咨跌,但是為了前期方便開發(fā)還是先使用原聲的hadoop進行開發(fā)庆锦,后期再準備更好的環(huán)境進行擴展。

環(huán)境準備

三臺服務器系統(tǒng)環(huán)境是建立在Centos7.6基礎上腔召。并且是建立在root賬戶上運行的杆查,如果需要使用其他用戶操作,注意權限的問題

基礎機器分配

在三臺新購買的服務器上進行搭建宴咧。服務器規(guī)劃如下

hostname ip 說明
tidb1 192.168.108.66 namenode與datanode
tidb2 192.168.108.67 namenode與datanode
tidb3 192.168.108.68 namenode與datanode

搭建大數(shù)據(jù)集群基礎機器配置是三臺根灯,真實環(huán)境部署建議namenode與datanode進行分開,兩臺機器專門做namenode節(jié)點掺栅,其他三臺做datanode節(jié)點烙肺。

每臺機器安裝內容如下:

tidb1 tidb2 tidb3
NameNode
DataNode
ResourceManager
NodeManager
Zookeeper
journalnode
zkfc

在3.0版本以上,我們可以進行安裝多個NameNode節(jié)點氧卧,來保證更高的高可用方案桃笙。但是作為基礎的測試環(huán)境開發(fā)這樣就是可以了,更多機器擴展也在此進行擴展即可沙绝。

防火墻

三臺機器都需要這么做

部署集群之前將集群的防火墻進行關閉搏明,否則部署出現(xiàn)鼠锈,訪問端口訪問不到的情景。

centos 系統(tǒng)中存在兩種防火墻星著,firewall 與iptables , 7.0以后默認是firewall 防火墻购笆,但是也在網上看到其他朋友遇見過 7.0系統(tǒng)上存在兩種防火墻策略導致布置程序端口一直訪問不到的情況。

firewall

  1. 查看防火墻的狀態(tài)
[root@tidb1 sbin]# firewall-cmd --state
running
  1. 停止防火墻
systemctl stop firewalld.service
  1. 禁止開機啟動
systemctl disbale firewalld.service

執(zhí)行以上三步之后虚循,程序再開機之后不再出現(xiàn)防火墻的配置問題同欠。

iptabel

如果是這個防火墻的配置,我們也需要進行防火墻的關閉横缔,如果熟悉的話其實打開對應的端口策略即可栏赴。

  1. 查看防火墻的狀態(tài)
service iptables status
  1. 停止防火墻
service iptables stop
Redirecting to /bin/systemctl stop  iptables.service
  1. 禁止開機啟動
chkconfig iptables off

對于安裝在其他系統(tǒng)上的集群環(huán)境滤愕,按照對應的策略進行關閉防火墻泻拦。

Selinux

三臺機器都需要這么做

關于這個增強型Linux谎僻,網上很多都建議關閉,在這里搜索下了相關資料膛锭,主要是沒有人進行專門的維護運營白名單導致的粮坞。

測試環(huán)境上我們也進行關閉,方便我們集群的搭建泉沾。正式上線根據(jù)運維的需要進行部署執(zhí)行捞蚂。

  1. 查看SELinux當前狀態(tài):
getenforce
  1. 修改SELinux狀態(tài)(臨時修改,重啟機器后失效)
 setenforce 0   #將SELinux修改為Permissive狀態(tài)(遇到違反安全策略的,會采取警告,允許通過)

  setenforce 1   #將SELinux狀態(tài)修改為Enforcing狀態(tài)(遇到違反安全策略的,不允許通過)
  1. 修改SELinuxw為禁用狀態(tài) (永久性,重啟機器后保持生效)
 打開文件:  /etc/selinux/config  修改 SELINUX = disabled  
 重啟機器后生效,重啟機器命令:reboot

ip固定

三臺機器都需要這么做

在企業(yè)環(huán)境中跷究,如果是真實的服務器姓迅,不是利用云服務器,那么我們使用服務器之前需要進行ip的固定俊马,不然服務器出現(xiàn)意外重啟丁存,會導致我們ip變動,集群就不能正常啟動柴我。
固定ip解寝,兩種執(zhí)行方案:

  • 有專門的人員路由器端進行固定分配,這樣是最簡單的操作步驟艘儒。建議這么做
  • 給專門的網卡進行固定ip聋伦,很多時候服務器是有雙網卡與光口的,其參考以下步驟界睁,僅供參考
  1. 查看網卡(文件 ifcfg-enp* 為網卡文件)
ls /etc/sysconfig/network-scripts/
  1. 配置網卡ip
vi /etc/sysconfig/network-scripts/ifcfg-enp*
# 啟用host-only網卡
cd /etc/sysconfig/network-scripts/
cp ifcfg-enp0s3  ifcfg-enp0s8
  1. 修改網卡為靜態(tài)ip
    1. 修改BOOTPROTO為static
    2. 修改NAME為enp0s8
    3. 修改UUID(可以隨意改動一個值觉增,只要不和原先的一樣)
    4. 添加IPADDR,可以自己制定翻斟,用于主機連接虛擬機使用逾礁。
    5. 添加NETMASK=255.255.255.0 (網管 也可以和網段一樣 x.x.x.255)
配置靜態(tài)ip
  1. 重啟網卡
service network restart

配置hosts

三臺機器都需要這么做

重點注意,配置主節(jié)點Namenode的時候访惜,需要將localhost 兩行 注釋掉嘹履,不然會出現(xiàn)找不到hostname的問題腻扇。其他節(jié)點可以存在

vim /etc/hosts

[root@tidb1 network-scripts]# cat /etc/hosts  
#127.0.0.1   localhost localhost.localdomain localhost4 localhost4.localdomain4
#::1         localhost localhost.localdomain localhost6 localhost6.localdomain6
192.168.108.66 tidb1
192.168.108.67 tidb2
192.168.108.68 tidb3

配置免登陸

老生常態(tài),集群之間需要通過ssh砾嫉,互相通信幼苛,那么需要設置免登陸的情況。
步驟如下:

  1. 生成秘鑰
ssh-keygen -t rsa -P '' -f ~/.ssh/id_rsa
  1. 寫入authorized_keys
cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys`
  1. 注意權限問題
chmod 0600 ~/.ssh/authorized_keys
  1. 拷貝到其他服務器上
ssh-copy-id root@tidb2
ssh-copy-id root@tidb3
  1. 嘗試是否能互相免登陸
ssh tidb2
ssh tidb3
ssh tidb1

在每條機器上焕刮,都需要進行操作蚓峦,實現(xiàn)免登陸,如果存在免登陸失敗

  • 檢查配置的免登陸秘鑰是否正確济锄,一般是秘鑰出現(xiàn)錯誤導致的。
  • 秘鑰沒有問題霍转,文件的權限是否正確 荐绝,進行第三步權限的修改。
目錄權限的問題避消,解決低滩。
sudo chmod 700 ~
sudo chmod 700 ~/.ssh
sudo chmod 600 ~/.ssh/authorized_keys

準備需要安裝的軟件

hadoop HA版本我們需要使用zookeeper來實現(xiàn),所以需要準備的軟件就有這樣三個了 hadoop 岩喷,zookeeper,jdk1.8版本恕沫。

1. 創(chuàng)建三個軟件的存儲位置
mkdir zookeeper
mkdir hadoop
mkdir java
2. 下載軟件
移動到相應的目錄下 下載軟件
wget http://mirror.bit.edu.cn/apache/zookeeper/zookeeper-3.4.13/zookeeper-3.4.13.tar.gz
wget http://mirrors.hust.edu.cn/apache/hadoop/common/hadoop-3.1.1/hadoop-3.1.1-src.tar.gz 
jdk 去oracle 網站進行下載再上傳到我們服務器的目錄上。

3. 進行相應的解壓

tar -zxvf zookeeper-3.4.13.tar.gz 
tar -zxvf hadoop-3.1.1-src.tar.gz 
tar -zxvf jdk1.8.tar.gz 

安裝

以上基礎內容都配置好之后婶溯,我們就可以開始進行程序的安裝了。首先在第一臺機器上進行配置好之后在通過rsync 進行同步發(fā)送過去

rsync 安裝

centos 上的安裝偷霉,每臺都需要進行安裝

rpm -qa | grep rsync 檢查是否安裝無哦rsync 
yum install -y rsync 使用yum安裝rsync 

Java環(huán)境的安裝

  1. 進入解壓的Java文件路徑下
cd /home/bigdata/java/jdk1.8
pwd 找到路徑信息
  1. 配置環(huán)境變量
JAVA_HOME=/home/bigdata/java/jdk1.8
JRE_HOME=/home/bigdata/java/jdk1.8/jre
CLASS_PATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar:$JRE_HOME/lib
PATH=$PATH:$JAVA_HOME/bin:$JRE_HOME/bin
export JAVA_HOME JRE_HOME CLASS_PATH PATH
  1. 同步到其他服務器
tidb2:
rsync -avup /etc/profile root@tidb2:/etc/
tidb3:
rsync -avup /etc/profile root@tidb3:/etc/
  1. 執(zhí)行生效
三臺都執(zhí)行
 source /etc/profile 
如果是使用的個人用戶需要執(zhí)行
source ~/.bashrc
 

zookeeper安裝

  1. 進入到上面的解壓的目錄下
cd  /home/bigdata/zookeeper/zookeeper-3.4.13
zookeeper目錄結構
  1. 增加zoo.cfg文件
cd /home/bigdata/zookeeper/zookeeper-3.4.13/conf
cp zoo_sample.cfg zoo.cfg
mv zoo_sample.cfg bak_zoo_sample.cfg  備份文件
  1. 編輯zoo.cfg

修改之前 創(chuàng)建dataDir 文件 mkdir -p /home/bigdata/zookeeper/zookeeper-3.4.13/tmp
在原先的基礎內容上增加server配置內容與配置dataDir文件內容


# The number of milliseconds of each tick
tickTime=2000
# The number of ticks that the initial 
# synchronization phase can take
initLimit=10
# The number of ticks that can pass between 
# sending a request and getting an acknowledgement
syncLimit=5
# the directory where the snapshot is stored.
# do not use /tmp for storage, /tmp here is just 
#修改的dataDir文件路徑迄委,配置臨時文件路徑內容即可,配置的文件路徑需要提前創(chuàng)建好
# example sakes.
dataDir=/home/bigdata/zookeeper/zookeeper-3.4.13/tmp
# the port at which the clients will connect
clientPort=2181
# 配置server 幾臺機器就配置幾臺即可类少,注意server的數(shù)字叙身,我們在后續(xù)需要用到
server.1=tidb1:2888:3888
server.2=tidb2:2888:3888
server.3=tidb3:2888:3888
# the maximum number of client connections.
# increase this if you need to handle more clients
#maxClientCnxns=60
#
# Be sure to read the maintenance section of the 
# administrator guide before turning on autopurge.
#
# http://zookeeper.apache.org/doc/current/zookeeperAdmin.html#sc_maintenance
#
# The number of snapshots to retain in dataDir
#autopurge.snapRetainCount=3
# Purge task interval in hours
# Set to "0" to disable auto purg

上面的基本配置信息內容如下:

  • tickTime: 心跳基本時間單位,毫秒級硫狞,ZK基本上所有的時間都是這個時間的整數(shù)倍信轿。
  • initLimit: tickTime的個數(shù),表示在leader選舉結束后残吩,followers與leader同步需要的時間财忽,如果followers比較多或者說leader的數(shù)據(jù)灰常多時,同步時間相應可能會增加世剖,那么這個值也需要相應增加定罢。當然,這個值也是follower和observer在開始同步leader的數(shù)據(jù)時的最大等待時間(setSoTimeout)
  • syncLimit : tickTime的個數(shù)旁瘫,這時間容易和上面的時間混淆祖凫,它也表示follower和observer與leader交互時的最大等待時間琼蚯,只不過是在與leader同步完畢之后,進入正常請求轉發(fā)或ping等消息交互時的超時時間惠况。
  • dataDir : 內存數(shù)據(jù)庫快照存放地址遭庶,如果沒有指定事務日志存放地址(dataLogDir),默認也是存放在這個路徑下稠屠,建議兩個地址分開存放到不同的設備上
  • clientPort : 配置ZK監(jiān)聽客戶端連接的端口clientPort=2181
server.serverid=host:tickpot:electionport  固定寫法
server:固定寫法
serverid:每個服務器的指定ID(必須處于1-255之間峦睡,必須每一臺機器不能重復)
host:主機名
tickpot:心跳通信端口
electionport:選舉端口
  1. 創(chuàng)建需要的文件夾
mkdir -p /home/bigdata/zookeeper/zookeeper-3.4.13/tmp
echo 1 > /home/bigdata/zookeeper/zookeeper-3.4.13/tmp/myid
  1. 同步到其他服務器上
rsync -avup  /home/bigdata/zookeeper root@tibd2:/home/bigdata/ 
rsync -avup  /home/bigdata/zookeeper root@tibd3:/home/bigdata/ 
  1. 修改其他服務器上的myid
tidb2:
vim /home/bigdata/zookeeper/zookeeper-3.4.13/tmp/myid  將1改為2
tidb3:
vim /home/bigdata/zookeeper/zookeeper-3.4.13/tmp/myid  將1改為3
  1. 配置環(huán)境變量

JAVA_HOME=/home/bigdata/java/jdk1.8
JRE_HOME=/home/bigdata/java/jdk1.8/jre
CLASS_PATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar:$JRE_HOME/lib
ZOOKEEPER_HOME=/home/bigdata/zookeeper/zookeeper-3.4.13
PATH=$PATH:$JAVA_HOME/bin:$JRE_HOME/bin:$ZOOKEEPER_HOME/bin
export JAVA_HOME JRE_HOME CLASS_PATH PATH ZOOKEEPER_HOME

source /etc/profile
  1. 進行驗證是否正常。
    以上7個步驟執(zhí)行完畢后权埠,我們需要進行zookeeper的驗證是否正確榨了,將每臺服務器上的zookpeer進行啟動
小黑板,三臺都需要執(zhí)行
cd  /home/bigdata/zookeeper/zookeeper-3.4.13/bin
執(zhí)行 ./zkServer.sh start 
檢查是否啟動

方式1 :
使用命令jps 檢查是否執(zhí)行成功攘蔽,jps 不存在的執(zhí)行下安裝  檢查是否 有這個配置export PATH=$PATH:/usr/java/jdk1.8/bin
85286 QuorumPeerMain  代表執(zhí)行成功 

方式2:
./zkServer.sh status 
[root@tidb1 bin]# ./zkServer.sh  status 
ZooKeeper JMX enabled by default
Using config: /home/bigdata/zookeeper/zookeeper-3.4.13/bin/../conf/zoo.cfg
Mode: follower 代表是從節(jié)點
Mode: Leader 代表的是主節(jié)點

Hadoop 的安裝

基礎文件的創(chuàng)建

安裝過程中我們需要一些目錄文件進行存儲我們的數(shù)據(jù)龙屉,日志文件,數(shù)據(jù)存儲文件都是保存在不同的目錄中满俗,需要提前準備好
  • 數(shù)據(jù)存儲
每臺機器上三個硬盤转捕,需要三個目錄進行創(chuàng)建
mkdir -p /media/data1/hdfs/data
mkdir -p /media/data2/hdfs/data
mkdir -p /media/data3/hdfs/data
  • journal 內容存儲
mkdir -p /media/data1/hdfs/hdfsjournal
  • namenode 內容存儲路徑
mkdir -p /media/data1/hdfs/name

修改相關的配置文件

  • 配置Java環(huán)境
編輯 hadoop中的hadoop-env.sh文件
vim  /home/bigdata/hadoop/hadoop/etc/hadoop/hadoop-env.sh
配置 jdk環(huán)境 ,在這里還可以配置jvm內存大小等內容
export JAVA_HOME=/home/bigdata/java/jdk1.8
#export HADOOP_NAMENODE_OPTS=" -Xms1024m -Xmx1024m -XX:+UseParallelGC"
#export HADOOP_DATANODE_OPTS=" -Xms512m -Xmx512m"
#export HADOOP_LOG_DIR=/opt/data/logs/hadoop 配置日志文件
  • 配置core-site.xmlvim /home/bigdata/hadoop/hadoop/etc/hadoop/core-site.xml

<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" href="configuration.xsl"?>
<!--
  Licensed under the Apache License, Version 2.0 (the "License");
  you may not use this file except in compliance with the License.
  You may obtain a copy of the License at

    http://www.apache.org/licenses/LICENSE-2.0

  Unless required by applicable law or agreed to in writing, software
  distributed under the License is distributed on an "AS IS" BASIS,
  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
  See the License for the specific language governing permissions and
  limitations under the License. See accompanying LICENSE file.
-->

<!-- Put site-specific property overrides in this file. -->

<configuration>
   <!-- 制定hdfs的nameservice 唆垃,默認的鏈接地址 五芝,自己可以自定義的-->
    <property>  
        <name>fs.defaultFS</name>  
        <value>hdfs://cluster</value>  
    </property> 
    <!--臨時文件 存儲目錄   -->
    
    <property>  
        <name>hadoop.tmp.dir</name>  
        <value>/media/data1/hdfstmp</value>  
    </property>  
   
    <!--指定 zookeeper  ,還可以更多的設置超時時間等內容-->
    <property>  
        <name>ha.zookeeper.quorum</name>  
        <value>tidb1:2181,tidb2:2181,tidb3:2181</value>  
    </property>

</configuration>

  • 配置hdfs-site.xmlvim /home/bigdata/hadoop/hadoop/etc/hadoop/hdfs-site.xml
<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" href="configuration.xsl"?>
<!--
  Licensed under the Apache License, Version 2.0 (the "License");
  you may not use this file except in compliance with the License.
  You may obtain a copy of the License at

    http://www.apache.org/licenses/LICENSE-2.0

  Unless required by applicable law or agreed to in writing, software
  distributed under the License is distributed on an "AS IS" BASIS,
  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
  See the License for the specific language governing permissions and
  limitations under the License. See accompanying LICENSE file.
-->

<!-- Put site-specific property overrides in this file. -->


<configuration>
   <!--配置的 nameservice 的名字 辕万,需要與core-site.xml 中保持一致,并且利用其名稱與namenode 設置唯一標識-->
    <property>
        <name>dfs.nameservices</name>
        <value>cluster</value>
    </property>
    <!--配置的權限問題-->
    <property>  
        <name>dfs.permissions.enabled</name>  
        <value>false</varsync -avup hadoop-3.1.1 root@tidb2:/home/bigdata/hadoop/lue>  
    </property>
    <!--配置cluster下面的namenode 名稱-->
    <property>
        <name>dfs.ha.namenodes.cluster</name>
        <value>nn1,nn2</value>
    </property>
    
    <!--配置namenode的 地址與端口-->
    <property>
        <name>dfs.namenorsync -avup hadoop-3.1.1 root@tidb2:/home/bigdata/hadoop/de.rpc-address.cluster.nn1</name>
        <value>tidb1:9000</value>
    </property>
    <property>
        <name>dfs.namenode.rpc-address.cluster.nn2</name>
        <value>tidb2:9000</value>
    </property>

    <property>
        <name>dfs.namenode.http-address.cluster.nn1</name>
        <value>tidb1:50070</value>
    </property>

    <property>
        <name>dfs.namenode.http-address.cluster.nn2</name>
        <value>tidb2:50070</value>
    </property>
    <!-- journal namenode 同步namenode 的元數(shù)據(jù)共享存儲位置枢步。也就是journal的列表信息->
    <property>
        <name>dfs.namenode.shared.edits.dir</name>
        <value>qjournal://tidb1:8485;tidb2:8485;tidb3:8485/cluster</value>
    </property>rsync -avup hadoop-3.1.1 root@tidb2:/home/bigdata/hadoop/

   <!--配置高可用方案內容,失敗后自動切換的方式-->
    <property>
        <name>dfs.client.failover.proxy.provider.cluster</name>
        <value>org.apache.hadoop.hdfs.server.namenode.ha.ConfiguredFailoverProxyProvider</value>
    </property>
    
    <!--ssh方案配置-->
    <property>
        <name>dfs.ha.fencing.methods</name>
        <value>sshfence</value>
    </property>hdfs-site.xml
    <property>
        <name>dfs.ha.fencing.ssh.private-key-files</name>
        <value>/root/.ssh/id_rsa</value>
    </property>
    <!--journalnode 的保存文件路徑-->
    <property>
        <name>dfs.journalnode.edits.dir</name>
        <value>/media/data1/hdfs/hdfsjournal</value>
    </property>
    
   <!--開啟NameNode失敗自動切換-->
    <property>
        <name>dfs.ha.automatic-failover.enabled</name>
        <value>true</value>
    </property>
    <!--namenode 文件路徑信息-->
    <property>
        <name>dfs.namenode.name.dir</name>
        <value>/media/data1/hdfs/name</value>
    </property>
    <!--datanode 數(shù)據(jù)保存路徑渐尿,配置多個數(shù)據(jù)盤-->
    <property><property>
        <name>dfs.namenode.name.dir</name>
        <value>/media/data1/hdfs/name</value>
    </property>
        <name>dfs.datanode.data.dir</name>
        <value>/media/data1/hdfs/data,
               /media/data2/hdfs/data,
               /media/data3/hdfs/data
        </value>
    </property>
    
    <!--設置的副本數(shù)量价捧,在程序匯總副本的系數(shù)是可以更改的-->
    <property>
        <name>dfs.replication</name>
        <value>3</value>
    </property>
    <!--開啟webhdfs接口訪問-->
    <property>
        <name>dfs.webhdfs.enabled</name>
        <value>true</value>
    </property>

    <property>
        <name>dfs.journalnode.http-address</name>
        <value>0.0.0.0:8480</value>
    </property>
    <property>
        <name>dfs.journalnode.rpc-address</name>
        <value>0.0.0.0:8485</value>
    </property>
    <!--配置 zookeeper-->
    <property>
        <name>ha.zookeeper.quorum</name>
        <value>tidb1:2181,tidb2:2181,tidb3:2181</value>
    </property>

</configuration>
  • 修改mapred-site.xml vim /home/bigdata/hadoop/hadoop/etc/hadoop/mapred-site.xml

<?xml version="1.0"?>
<?xml-stylesheet type="text/xsl" href="configuration.xsl"?>
<!--
  Licensed under the Apache License, Version 2.0 (the "License");
  you may not use this file except in compliance with the License.
  You may obtain a copy of the License at

    http://www.apache.org/licenses/LICENSE-2.0

  Unless required by applicable law or agreed to in writing, software
  distributed under the License is distributed on an "AS IS" BASIS,
  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
  See the License for the specific language governing permissions and
  limitations under the License. See accompanying LICENSE file.
-->

<!-- Put site-specific property overrides in this file. -->

<configuration>
   <!--指定mr  配置yarn信息-->
    <property>
        <name>mapreduce.framework.name</name>  
        <value>yarn</value>  
    </property> 
    
     <!-- 指定mapreduce jobhistory地址 -->
    <property>  
        <name>mapreduce.jobhistory.address</name>  
        <value>tidb1:10020</value>  
    </property> 
    
    <!-- 任務歷史服務器的web地址 -->
    <property>  
        <name>mapreduce.jobhistory.webapp.address</name>  
        <value>tidb1:19888</value>  rsync -avup hadoop-3.1.1 root@tidb2:/home/bigdata/hadoop/
    </property> 
</configuration> 

  • yarn-site.xmlvim /home/bigdata/hadoop/hadoop/etc/hadoop/yarn-site.xm
<?xml version="1.0"?>
<!--
  Licensed under the Apache License, Version 2.0 (the "License");
  you may not use this file except in compliance with the License.
  You may obtain a copy of the License at

    http://www.apache.org/licenses/LICENSE-2.0

  Unless required by applicable law or agreed to in writing, softwarersync -avup hadoop-3.1.1 root@tidb2:/home/bigdata/hadoop/
  distributed under the License is distributed on an "AS IS" BASIS,
  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
  See the License for the specific language governing permissions and
  limitations under the License. See accompanying LICENSE file.
-->

<!-- Site specific YARN configuration properties -->


<configuration>
   <!--配置 namenode 的ha id  namenode 節(jié)點上進行配置 ,可不配置-->
    <property> 
      <name>yarn.resourcemanager.ha.id</name>  
      <value>rm1</value>  
    </property>
    <property>  
        <name>yarn.nodemanager.aux-services</name>  
        <value>mapreduce_shuffle</value>  rsync -avup hadoop-3.1.1 root@tidb2:/home/bigdata/hadoop/
    </property>
    <!-- Site specific YARN configuration properties -->
    <!--啟用resourcemanager ha-->  
    <!--是否開啟RM ha涡戳,默認是開啟的-->  
    <property>  
       <name>yarn.resourcemanager.ha.enabled</name>  
       <value>true</value>  
    </property>  
    <!--聲明兩臺resourcemanager的地址-->  
    <property>  
       <name>yarn.resourcemanager.cluster-id</name>  
       <value>rmcluster</value>  
    </property>  
    <!--制定rm的名字-->
    <property>  
       <name>yarn.resourcemanager.ha.rm-ids</name>  
       <value>rm1,rm2</value>  
    </property>  
    <!--指定rm的地址-->
    <property>  
       <name>yarn.resourcemanager.hostname.rm1</name>  
       <value>tidb1</value>  
    </property>  
    <property>  
       <name>yarn.resourcemanager.hostname.rm2</name>  
       <value>tidb2</value>  
    </property>  
   
    <!--指定zookeeper集群的地址-->   rsync -avup hadoop-3.1.1 root@tidb2:/home/bigdata/hadoop/
    <property>  
       <name>yarn.resourcemanager.zk-address</name>  
        <value>tidb1:2181,tidb2:2181,tidb3:2181</value>  
    </property>  
    <!--啟用自動恢復结蟋,當任務進行一半,rm壞掉渔彰,就要啟動自動恢復嵌屎,默認是false-->   
    <property>  
       <name>yarn.resourcemanager.recovery.enabled</name>  
       <value>true</value>  
    </property>  
   
    <!--指定resourcemanager的狀態(tài)信息存儲在zookeeper集群,默認是存放在FileSystem里面恍涂。-->   
    <property>  
       <name>yarn.resourcemanager.store.class</name>  
       <value>org.apache.hadoop.yarn.server.resourcemanager.recovery.ZKRMStateStore</value>  
    </property> 

</configuration>

  • workers/home/bigdata/hadoop/hadoop/etc/hadoop/workers
#將數(shù)據(jù)節(jié)點加入到workers里面宝惰,如果namenode與datanode 節(jié)點是分開的,在這里 namenode的節(jié)點就不加入到這里再沧。
#沒有分開那么就需要加入
tidb1
tidb2
tidb3
  • start-dfs.sh stop-dfs.shvim /home/bigdata/hadoop/hadoop/sbin/start-dfs.sh vim /home/bigdata/hadoop/hadoop/sbin/stop-dfs.sh
3.0版本以后需要增加以下內容
HDFS_DATANODE_USER=root
HADOOP_SECURE_DN_USER=hdfs
HDFS_NAMENODE_USER=root
HDFS_SECONDARYNAMENODE_USER=root
HDFS_JOURNALNODE_USER=root
HDFS_ZKFC_USER=root
  • start-yarn.sh stop-yarn.shvim /home/bigdata/hadoop/hadoop/sbin/start-yarn.sh vim /home/bigdata/hadoop/hadoop/sbin/stop-yarn.sh
YARN_RESOURCEMANAGER_USER=root
HADOOP_SECURE_DN_USER=yarn
YARN_NODEMANAGER_USER=root
  • 通過rsync 同步到其他機器上
rsync -avup hadoop-3.1.1 root@tidb2:/home/bigdata/hadoop/
rsync -avup hadoop-3.1.1 root@tidb3:/home/bigdata/hadoop/
同步完之后 如果配置的namenode的編號需要注意以下內容:
修改namenode上的id 編號尼夺,datanode 上的編號進行刪除,

啟動

上面的所有文件準備好之后,我們開始進行啟動了淤堵。

Zookeeper->JournalNode->格式化NameNode->創(chuàng)建命名空間zkfs->NameNode->Datanode->ResourceManager->NodeManager

啟動zookeeper

每臺進入到安裝的zookeeper目錄下
./zkServer.sh start 

啟動journalnode

進入到hadoop的安裝目錄下 然后進到sbin 目錄下
./hadoop-daemon.sh start journalnode  啟動journalnode 

格式化namenode

  1. 格式化
hadoop namenode -format
  1. 格式化同步內容到其他節(jié)點上寝衫,必須做,不然其他namenode啟動不起來
同步的內容:配置hdfs-site.xml文件路徑下的內容
    <property>
        <name>dfs.namenode.name.dir</name>
        <value>/media/data1/hdfs/name</value>
    </property>
    
進行同步    
rsync -avup current  root@tidb2:/media/data1/hdfs/name/
rsync -avup current  root@tidb3:/media/data1/hdfs/name/

格式化zkfc

小黑板:只能在namenode上進行格式化namdenode1

./hdfs zkfs -formatZK

關閉journalnode

./hadoop-daemon.sh stop journalnode

啟動 hadoop集群

hadoop 目錄下的sbin目錄執(zhí)行
./start-all.sh  全部啟動拐邪。

啟動情況查看

  • 使用命令查看
[root@tidb1 bin]# ./hdfs haadmin -getServiceState nn1
standby
[root@tidb1 bin]# ./hdfs haadmin -getServiceState nn2
active

  • 界面查看
http://192.168.108.66:50070   # 注意這個端口是自定義的慰毅,不是默認端口
http://192.168.108.67:50070
備用節(jié)點

主節(jié)點
?著作權歸作者所有,轉載或內容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市扎阶,隨后出現(xiàn)的幾起案子汹胃,更是在濱河造成了極大的恐慌,老刑警劉巖东臀,帶你破解...
    沈念sama閱讀 217,826評論 6 506
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件着饥,死亡現(xiàn)場離奇詭異,居然都是意外死亡惰赋,警方通過查閱死者的電腦和手機贱勃,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,968評論 3 395
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來谤逼,“玉大人,你說我怎么就攤上這事仇穗×鞑浚” “怎么了?”我有些...
    開封第一講書人閱讀 164,234評論 0 354
  • 文/不壞的土叔 我叫張陵纹坐,是天一觀的道長枝冀。 經常有香客問我,道長耘子,這世上最難降的妖魔是什么果漾? 我笑而不...
    開封第一講書人閱讀 58,562評論 1 293
  • 正文 為了忘掉前任,我火速辦了婚禮谷誓,結果婚禮上绒障,老公的妹妹穿的比我還像新娘。我一直安慰自己捍歪,他們只是感情好户辱,可當我...
    茶點故事閱讀 67,611評論 6 392
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著糙臼,像睡著了一般庐镐。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上变逃,一...
    開封第一講書人閱讀 51,482評論 1 302
  • 那天必逆,我揣著相機與錄音,去河邊找鬼。 笑死名眉,一個胖子當著我的面吹牛粟矿,可吹牛的內容都是我干的。 我是一名探鬼主播璧针,決...
    沈念sama閱讀 40,271評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼嚷炉,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了探橱?” 一聲冷哼從身側響起申屹,我...
    開封第一講書人閱讀 39,166評論 0 276
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎隧膏,沒想到半個月后哗讥,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經...
    沈念sama閱讀 45,608評論 1 314
  • 正文 獨居荒郊野嶺守林人離奇死亡胞枕,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內容為張勛視角 年9月15日...
    茶點故事閱讀 37,814評論 3 336
  • 正文 我和宋清朗相戀三年杆煞,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片腐泻。...
    茶點故事閱讀 39,926評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡决乎,死狀恐怖,靈堂內的尸體忽然破棺而出派桩,到底是詐尸還是另有隱情构诚,我是刑警寧澤,帶...
    沈念sama閱讀 35,644評論 5 346
  • 正文 年R本政府宣布铆惑,位于F島的核電站范嘱,受9級特大地震影響,放射性物質發(fā)生泄漏员魏。R本人自食惡果不足惜丑蛤,卻給世界環(huán)境...
    茶點故事閱讀 41,249評論 3 329
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望撕阎。 院中可真熱鬧受裹,春花似錦、人聲如沸虏束。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,866評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽魄眉。三九已至砰盐,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間坑律,已是汗流浹背岩梳。 一陣腳步聲響...
    開封第一講書人閱讀 32,991評論 1 269
  • 我被黑心中介騙來泰國打工囊骤, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人冀值。 一個月前我還...
    沈念sama閱讀 48,063評論 3 370
  • 正文 我出身青樓也物,卻偏偏與公主長得像,于是被迫代替她去往敵國和親列疗。 傳聞我的和親對象是個殘疾皇子滑蚯,可洞房花燭夜當晚...
    茶點故事閱讀 44,871評論 2 354

推薦閱讀更多精彩內容

  • Hadoop HA集群搭建文檔.............................................
    鐘敏_1788閱讀 1,457評論 0 0
  • 經過一系列的前期環(huán)境準備,現(xiàn)在可以開始Hadoop的安裝了抵栈,在這里去apache官網下載2.7.3的版本http:...
    歡醉閱讀 1,665評論 8 28
  • HA概述 所謂HA(high available)古劲,即高可用(7*24小時不中斷服務)斥赋。 實現(xiàn)高可用最關鍵的策略是...
    ZFH__ZJ閱讀 582評論 0 3
  • 親愛的的兒子,晚上吃著你煎的煎餅心里美美的感覺产艾。
    晗晗ww閱讀 167評論 0 0
  • 今天我看完了闷堡,《摔跤吧隘膘!爸爸》電影。 有一位爸爸杠览,他一心想要摔跤弯菊,得了個全國冠軍。之后他退出了摔跤界倦零,因...
    胡通海閱讀 465評論 0 1