刘明帅
热爱生活!
刘明帅
Hadoop HA(高可用)分布式搭建实战
Hadoop HA(高可用)分布式搭建实战

实验环境:

  • Centos 7主机三台
主机名IP地址
Master10.30.59.130
Slave110.30.59.131
Slave210.30.59.132

软件要求:

软件名称软件版本
JDK8u77
Zookeeper3.4.5
Hadoop2.6.0

  • 软件约定:
    • 安装包在 /opt/soft
    • 安装目录在 /opt

先决条件:

实验步骤:

一、关闭防火墙与SELinux

  • 三个节点均需此操作
[root@master ~]# systemctl stop firewalld
[root@master ~]# systemctl disable firewalld
Removed symlink /etc/systemd/system/multi-user.target.wants/firewalld.service.
Removed symlink /etc/systemd/system/dbus-org.fedoraproject.FirewallD1.service.
[root@master ~]# setenforce 0

二、解压组件

[root@master ~]# cd /opt 
[root@master opt]# tar -xzvf soft/jdk-8u77-linux-x64.tar.gz 
[root@master opt]# tar -xzvf soft/hadoop-2.6.0.tar.gz 
[root@master opt]# mv jdk1.8.0_77/ jdk 
[root@master opt]# mv hadoop-2.6.0/ hadoop

三、填写配置文件

[root@master opt]# vi haoop/etc/hadoop/hdfs-site.xml
<?xml version="1.0" encoding="utf-8"?>
<configuration>
    <property>
        <name>dfs.nameservices</name>
        <value>ns1</value>
    </property>
    <property>
        <name>dfs.ha.namenodes.ns1</name>
        <value>nn1,nn2</value>
    </property>
    <property>
        <name>dfs.namenode.rpc-address.ns1.nn1</name>
        <value>master:9000</value>
    </property>
    <property>
        <name>dfs.namenode.http-address.ns1.nn1</name>
        <value>master:50070</value>
    </property>
    <property>
        <name>dfs.namenode.rpc-address.ns1.nn2</name>
        <value>slave1:9000</value>
    </property>
    <property>
        <name>dfs.namenode.http-address.ns1.nn2</name>
        <value>slave1:50070</value>
    </property>
    <property>
        <name>dfs.namenode.shared.edits.dir</name>
        <value>qjournal://master;slave1;slave2/ns1</value>
    </property>
    <property>
        <name>dfs.journalnode.edits.dir</name>
        <value>/opt/hadoop-repo/journal</value>
    </property>
    <property>
        <name>dfs.namenode.name.dir</name>
        <value>file:///opt/hadoop-repo/name</value>
    </property>
    <property>
        <name>dfs.datanode.data.dir</name>
        <value>file:///opt/hadoop-repo/data</value>
    </property>
    <property>
        <name>dfs.ha.automatic-failover.enabled</name>
        <value>true</value>
    </property>
    <property>
        <name>dfs.client.failover.proxy.provider.ns1</name>
        <value>org.apache.hadoop.hdfs.server.namenode.ha.ConfiguredFailoverProxyProvider</value>
    </property>
    <property>
        <name>dfs.ha.fencing.methods</name>
        <value>
            sshfence
            shell(/bin/true)
        </value>
    </property>
    <property>
        <name>dfs.ha.fencing.ssh.private-key-files</name>
        <value>/root/.ssh/id_rsa</value>
    </property>
</configuration>
[root@master opt]# vi hadoop/etc/hadoop/core-site.xml
<?xml version="1.0" encoding="utf-8"?>
<configuration>
    <property>
        <name>fs.defaultFS</name>
        <value>hdfs://ns1</value>
    </property>
    <property>
        <name>hadoop.tmp.dir</name>
        <value>/opt/hadoop-repo/tmp</value>
    </property>
    <property>
        <name>ha.zookeeper.quorum</name>
        <value>master,slave1,slave2</value>
    </property>
</configuration>
[root@master opt]# cp haeoop/etc/hadoop/mapred-site.xml.template hadoop/etc/hadoop/mapred-site.xml 
[root@master opt]# vi hadoop/etc/hadoop/mapred-site.xml 
<?xml version="1.0" encoding="utf-8"?>
<configuration>
    <property>
        <name>mapreduce.framework.name</name>
        <value>yarn</value>
    </property>
    <property>
        <name>yarn.app.mapreduce.am.staging-dir</name>
        <value>/opt/hadoop-repo/history</value>
    </property>
</configuration>
[root@master opt]# vi hadoop/etc/hadoop/yarn-site.xml
<?xml version="1.0" encoding="utf-8"?>
<configuration>
    <property>
        <name>yarn.resourcemanager.ha.enabled</name>
        <value>true</value>
    </property>
    <property>
        <name>yarn.resourcemanager.cluster-id</name>
        <value>yrc</value>
    </property>
    <property>
        <name>yarn.resourcemanager.ha.rm-ids</name>
        <value>rm1,rm2</value>
    </property>
    <property>
        <name>yarn.resourcemanager.hostname.rm1</name>
        <value>slave1</value>
    </property>
    <property>
        <name>yarn.resourcemanager.hostname.rm2</name>
        <value>slave2</value>
    </property>
    <property>
        <name>yarn.resourcemanager.zk-address</name>
        <value>master,slave1,slave2</value>
    </property>
    <property>
        <name>yarn.nodemanager.aux-services</name>
        <value>mapreduce_shuffle</value>
    </property>
    <property>
        <name>yarn.log-aggregation-enable</name>
        <value>true</value>
    </property>
</configuration>
[root@master opt]# vi hadoop/etc/hadoop/slaves
master
slave1
slave2

四、配置环境变量并令其立即生效

  • hadoop-etc.sh文件新增两条
[root@master opt]# vi /etc/profile.d/hadoop-etc.sh
export HADOOP_HOME=/opt/hadoop
export PATH=$PATH:$HADOOP_HOME/bin:$HADOOP_HOME/sbin

[root@master opt]# source /etc/profile.d/hadoop-etc.sh

五、同步两台slave节点的配置并令其环境变量立即生效

[root@master opt]# scp -r hadoop slave1:/opt 
[root@master opt]# scp -r hadoop slave2:/opt 
[root@master opt]# scp /etc/profile.d/hadoop-etc.sh slave1:/etc/profile.d 
[root@master opt]# scp /etc/profile.d/hadoop-etc.sh slave2:/etc/profile.d 
  • 在两台slave节点上令其环境变量立即生效
[root@slave1 ~]# source /etc/profile.d/hadoop-etc.sh
[root@slave2 ~]# source /etc/profile.d/hadoop-etc.sh

六、初始化HDFS

  • 三台机器均需启动
[root@master opt]# hadoop-daemon.sh start journalnode
  • 在master节点上对HDFS和ZK进行格式化
[root@master opt]# hdfs namenode -format
[root@master opt]# hdfs zkfc -formatZK 
[root@master opt]# hadoop-daemon.sh start namenode
  • 在slave1节点上将master已经格式化后的元数据目录的内容同步到本机
[root@slave1 ~]# hdfs namenode -bootstrapStandby

七、启动Hadoop

  • 在master上启动
[root@master opt]# start-dfs.sh 
  • 在slave1上启动
[root@slave1 ~]# start-yarn.sh 
  • 在slave2上启动
[root@slave2 ~]# yarn-daemon.sh start resourcemanager 
  • 三台均需启动
[root@master opt]# mr-jobhistory-daemon.sh start historyserver 

实验验证:

[root@master opt]# jps
2786 NameNode
2387 DataNode
3203 Jps
1813 QuorumPeerMain
2662 DFSZKFailoverController
3161 JobHistoryServer
1978 JournalNode

[root@slave1 ~]# jps
3249 NodeManager
2403 DFSZKFailoverController
2292 DataNode
1926 JournalNode
1800 QuorumPeerMain
2201 NameNode
2940 JobHistoryServer
3724 Jps
3437 ResourceManager

[root@slave2 ~]# jps
1810 QuorumPeerMain
11673 NodeManager
11914 Jps
1931 JournalNode
11851 ResourceManager
2012 DataNode
11500 JobHistoryServer

[root@master opt]# hdfs dfsadmin -report
Configured Capacity: 93344772096 (86.93 GB)
Present Capacity: 86898683904 (80.93 GB)
DFS Remaining: 86898671616 (80.93 GB)
DFS Used: 12288 (12 KB)
DFS Used%: 0.00%
Under replicated blocks: 0
Blocks with corrupt replicas: 0
Missing blocks: 0

-------------------------------------------------
Live datanodes (3):

Name: 10.30.59.130:50010 (master)
Hostname: master
Decommission Status : Normal
Configured Capacity: 31114924032 (28.98 GB)
DFS Used: 4096 (4 KB)
Non DFS Used: 2409914368 (2.24 GB)
DFS Remaining: 28705005568 (26.73 GB)
DFS Used%: 0.00%
DFS Remaining%: 92.25%
Configured Cache Capacity: 0 (0 B)
Cache Used: 0 (0 B)
Cache Remaining: 0 (0 B)
Cache Used%: 100.00%
Cache Remaining%: 0.00%
Xceivers: 1
Last contact: Sat Jun 08 02:17:32 CST 2019


Name: 10.30.59.131:50010 (slave1)
Hostname: slave1
Decommission Status : Normal
Configured Capacity: 31114924032 (28.98 GB)
DFS Used: 4096 (4 KB)
Non DFS Used: 2017943552 (1.88 GB)
DFS Remaining: 29096976384 (27.10 GB)
DFS Used%: 0.00%
DFS Remaining%: 93.51%
Configured Cache Capacity: 0 (0 B)
Cache Used: 0 (0 B)
Cache Remaining: 0 (0 B)
Cache Used%: 100.00%
Cache Remaining%: 0.00%
Xceivers: 1
Last contact: Sat Jun 08 02:17:35 CST 2019


Name: 10.30.59.132:50010 (slave2)
Hostname: slave2
Decommission Status : Normal
Configured Capacity: 31114924032 (28.98 GB)
DFS Used: 4096 (4 KB)
Non DFS Used: 2018230272 (1.88 GB)
DFS Remaining: 29096689664 (27.10 GB)
DFS Used%: 0.00%
DFS Remaining%: 93.51%
Configured Cache Capacity: 0 (0 B)
Cache Used: 0 (0 B)
Cache Remaining: 0 (0 B)
Cache Used%: 100.00%
Cache Remaining%: 0.00%
Xceivers: 1
Last contact: Sat Jun 08 02:17:32 CST 2019
  • 访问以下三个页面均有正常显示:
    • http://10.30.59.130:50070
    • http://10.30.59.131:50070
    • http://10.30.59.131:8088
    • http://10.30.59.132:8088

文章链接: https://lmshuai.com/archives/197
版权声明: 本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明出处!

推荐文章

发表评论

textsms
account_circle
email

刘明帅

Hadoop HA(高可用)分布式搭建实战
实验环境: Centos 7主机三台 主机名IP地址Master10.30.59.130Slave110.30.59.131Slave210.30.59.132 软件要求: 软件名称软件版本JDK8u77Zookeeper3.4.5H…
扫描二维码继续阅读
2019-07-13