一、集群的规划

Zookeeper集群:

192.168.182.12 (bigdata12)
192.168.182.13 (bigdata13)
192.168.182.14 (bigdata14)

Hadoop集群:

192.168.182.12 (bigdata12)   NameNode1主节点      ResourceManager1主节点     Journalnode
192.168.182.13 (bigdata13)   NameNode2备用主节点 ResourceManager2备用主节点 Journalnode
192.168.182.14 (bigdata14)   DataNode1     NodeManager1
192.168.182.15 (bigdata15)   DataNode2     NodeManager2

二、准备工作

1、安装JDK:每台机器都需要安装

我这里使用的是jdk-8u152-linux-x64.tar.gz安装包

解压JDK:
tar -zxvf jdk-8u144-linux-x64.tar.gz -C ~/training

2、配置环境变量:

1)配置java环境变量:
vi ~/.bash_profile
export JAVA_HOME=/root/training/jdk1..0_144
export PATH=$JAVA_HOME/bin:$PATH
2)生效环境变量:
source ~/.bash_profile
3)验证是否安装成功:
java -version

3、配置IP地址与主机名的映射关系 原因:方便SSH调用 方便Ping通

vi /etc/hosts

输入:

 192.168.182.13 bigdata13
192.168.182.14 bigdata14
192.168.182.15 bigdata15

4、配置免密码登录

1)在每台机器上产生公钥和私钥
ssh-keygen -t rsa

含义:通过ssh协议采用非对称加密算法的rsa算法生成一组密钥对:公钥和私钥

2)在每台机器上将自己的公钥复制给其他机器

注:以下四个命令需要在每台机器上都运行一遍

ssh-copy-id -i .ssh/id_rsa.pub root@bigdata12
ssh-copy-id -i .ssh/id_rsa.pub root@bigdata13
ssh-copy-id -i .ssh/id_rsa.pub root@bigdata14
ssh-copy-id -i .ssh/id_rsa.pub root@bigdata15

三、安装Zookeeper集群(在bigdata12上安装)

在主节点(bigdata12)上安装和配置ZooKeeper

我这里使用的是zookeeper-3.4.10.tar.gz安装

1、解压Zookeeper:

tar -zxvf zookeeper-3.4..tar.gz -C ~/training

2、配置和生效环境变量:

export ZOOKEEPER_HOME=/root/training/zookeeper-3.4.
export PATH=$ZOOKEEPER_HOME/bin:$PATH
source ~/.bash_profile

3、修改zoo.cfg配置文件:

vi /root/training/zookeeper-3.4./conf/zoo.cfg
修改:
dataDir=/root/training/zookeeper-3.4./tmp
在最后一行添加:
server.=bigdata12::
server.=bigdata13::
server.=bigdata14::

4、修改myid配置文件

在/root/training/zookeeper-3.4.10/tmp目录下创建一个myid的空文件:

mkdir /root/training/zookeeper-3.4./tmp/myid
echo > /root/training/zookeeper-3.4./tmp/myid

5、将配置好的zookeeper拷贝到其他节点,同时修改各自的myid文件

scp -r /root/training/zookeeper-3.4./ bigdata13:/root/training
scp -r /root/training/zookeeper-3.4./ bigdata14:/root/training

进入bigdata13和bigdata14两台机器中,找到myid文件,将其中的1分别修改为2和3:

vi myid

在bigdata13中输入:2在bigdata14中输入:3

四、安装Hadoop集群(在bigdata12上安装)

1、修改hadoop-env.sh

export JAVA_HOME=/root/training/jdk1..0_144

2、修改core-site.xml

<configuration>
<!-- 指定hdfs的nameservice为ns1 -->
<property>
<name>fs.defaultFS</name>
<value>hdfs://ns1</value>
</property> <!-- 指定HDFS数据存放路径,默认存放在linux的/tmp目录中 -->
<property>
<name>hadoop.tmp.dir</name>
<value>/root/training/hadoop-2.7./tmp</value>
</property> <!-- 指定zookeeper的地址 -->
<property>
<name>ha.zookeeper.quorum</name>
<value>bigdata12:,bigdata13:,bigdata14:</value>
</property>
</configuration>

3、修改hdfs-site.xml(配置这个nameservice中有几个namenode)

<configuration>
<!--指定hdfs的nameservice为ns1,需要和core-site.xml中的保持一致 -->
<property>
<name>dfs.nameservices</name>
<value>ns1</value>
</property>

<!-- ns1下面有两个NameNode,分别是nn1,nn2 -->
<property>
<name>dfs.ha.namenodes.ns1</name>
<value>nn1,nn2</value>
</property>

<!-- nn1的RPC通信地址 -->
<property>
<name>dfs.namenode.rpc-address.ns1.nn1</name>
<value>bigdata12:</value>
</property>

<!-- nn1的http通信地址 -->
<property>
<name>dfs.namenode.http-address.ns1.nn1</name>
<value>bigdata12:</value>
</property>

<!-- nn2的RPC通信地址 -->
<property>
<name>dfs.namenode.rpc-address.ns1.nn2</name>
<value>bigdata13:</value>
</property>

<!-- nn2的http通信地址 -->
<property>
<name>dfs.namenode.http-address.ns1.nn2</name>
<value>bigdata13:</value>
</property>

<!-- 指定NameNode的日志在JournalNode上的存放位置 -->
<property>
<name>dfs.namenode.shared.edits.dir</name>
<value>qjournal://bigdata12:8485;bigdata13:8485;/ns1</value>
</property>

<!-- 指定JournalNode在本地磁盘存放数据的位置 -->
<property>
<name>dfs.journalnode.edits.dir</name>
<value>/root/training/hadoop-2.7./journal</value>
</property>

<!-- 开启NameNode失败自动切换 -->
<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> <!-- 使用sshfence隔离机制时需要ssh免登陆 -->
<property>
<name>dfs.ha.fencing.ssh.private-key-files</name>
<value>/root/.ssh/id_rsa</value>
</property> <!-- 配置sshfence隔离机制超时时间 -->
<property>
<name>dfs.ha.fencing.ssh.connect-timeout</name>
<value></value>
</property>
</configuration>

4、修改mapred-site.xml

<configuration>
<property>
<name>mapreduce.framework.name</name>
<value>yarn</value>
</property>
</configuration>

配置Yarn的HA

5、修改yarn-site.xml
<configuration>
<!-- 开启RM高可靠 -->
<property>
<name>yarn.resourcemanager.ha.enabled</name>
<value>true</value>
</property> <!-- 指定RM的cluster id -->
<property>
<name>yarn.resourcemanager.cluster-id</name>
<value>yrc</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>bigdata12</value>
</property>
<property>
<name>yarn.resourcemanager.hostname.rm2</name>
<value>bigdata13</value>
</property> <!-- 指定zk集群地址 -->
<property>
<name>yarn.resourcemanager.zk-address</name>
<value>bigdata12:,bigdata13:,bigdata14:</value>
</property> <property>
<name>yarn.nodemanager.aux-services</name>
<value>mapreduce_shuffle</value>
</property>
</configuration>

6、修改slaves 从节点的地址

bigdata14
bigdata15

7、将配置好的hadoop拷贝到其他节点

scp -r /root/training/hadoop-2.7./ root@bigdata13:/root/training/
scp -r /root/training/hadoop-2.7./ root@bigdata14:/root/training/
scp -r /root/training/hadoop-2.7./ root@bigdata15:/root/training/

五、启动Zookeeper集群

在每一台机器上输入:

zkServer.sh start

六、启动journalnode

在bigdata12和bigdata13两台节点上启动journalnode节点:

hadoop-daemon.sh start journalnode

七、格式化HDFS和Zookeeper(在bigdata12上执行)

格式化HDFS:

hdfs namenode -format

将/root/training/hadoop-2.7.3/tmp拷贝到bigdata13的/root/training/hadoop-2.7.3/tmp下

scp -r dfs/ root@bigdata13:/root/training/hadoop-2.7./tmp

格式化zookeeper:

hdfs zkfc -formatZK

日志:INFO ha.ActiveStandbyElector: Successfully created /hadoop-ha/ns1 in ZK.

以上日志表明在Zookeeper的文件系统中创建了/hadoop-ha/ns1的子目录用于保存Namenode的结构信息

八、启动Hadoop集群(在bigdata12上执行)

启动Hadoop集群的命令:

start-all.sh
日志:
Starting namenodes on [bigdata12 bigdata13]
bigdata12: starting namenode, logging to /root/training/hadoop-2.4./logs/hadoop-root-namenode-hadoop113.out
bigdata13: starting namenode, logging to /root/training/hadoop-2.4./logs/hadoop-root-namenode-hadoop112.out
bigdata14: starting datanode, logging to /root/training/hadoop-2.4./logs/hadoop-root-datanode-hadoop115.out
bigdata15: starting datanode, logging to /root/training/hadoop-2.4./logs/hadoop-root-datanode-hadoop114.out
bigdata13: starting zkfc, logging to /root/training/hadoop-2.7./logs/hadoop-root-zkfc- bigdata13.out
bigdata12: starting zkfc, logging to /root/training/hadoop-2.7./logs/hadoop-root-zkfc-bigdata12.out

在bigdata13上手动启动ResourceManager作为Yarn的备用主节点:

yarn-daemon.sh start resourcemanager

至此,Hadoop集群的HA架构就已经搭建成功。

版权声明:本文为博主原创文章, 未经博主允许不得转载。http://www.cnblogs.com/lijinze-tsinghua/

搭建Hadoop的HA高可用架构(超详细步骤+已验证)的更多相关文章

  1. 大数据Hadoop的HA高可用架构集群部署

        1 概述 在Hadoop 2.0.0之前,一个Hadoop集群只有一个NameNode,那么NameNode就会存在单点故障的问题,幸运的是Hadoop 2.0.0之后解决了这个问题,即支持N ...

  2. linux -- 基于zookeeper搭建yarn的HA高可用集群

    linux -- 基于zookeeper搭建yarn的HA高可用集群 实现方式:配置yarn-site.xml配置文件 <configuration> <property> & ...

  3. Windows 环境搭建 PostgreSQL 逻辑复制高可用架构数据库服务

    本文主要介绍 Windows 环境下搭建 PostgreSQL 的主从逻辑复制,关于 PostgreSQl 的相关运维文章,网络上大多都是 Linux 环境下的操作,鲜有在 Windows 环境下配置 ...

  4. Windows 环境搭建 PostgreSQL 物理复制高可用架构数据库服务

    PostgreSQL 高可用数据库的常见搭建方式主要有两种,逻辑复制和物理复制,上周已经写过了关于在Windows环境搭建PostgreSQL逻辑复制的教程,这周来记录一下 物理复制的搭建方法. 首先 ...

  5. Redis主从复制+Keepalived+VIP漂移实现HA高可用技术之详细教程

    1.大家可以先看我的单台Redis安装教程,链接在此点击Redis在CentOS for LInux上安装详细教程 2.第一台redis配置,是正常配置.作为MASTER主服务器,第二台redis的配 ...

  6. Nginx+Keepalived+VIP漂移实现HA高可用技术之详细教程

    https://www.cnblogs.com/zcc666/p/13141626.html  这个是nginx安装教程地址 https://www.cnblogs.com/zcc666/p/1313 ...

  7. Hadoop 3.1.2(HA)+Zookeeper3.4.13+Hbase1.4.9(HA)+Hive2.3.4+Spark2.4.0(HA)高可用集群搭建

    目录 目录 1.前言 1.1.什么是 Hadoop? 1.1.1.什么是 YARN? 1.2.什么是 Zookeeper? 1.3.什么是 Hbase? 1.4.什么是 Hive 1.5.什么是 Sp ...

  8. Hadoop HA高可用集群搭建(Hadoop+Zookeeper+HBase)

    声明:作者原创,转载注明出处. 作者:帅气陈吃苹果 一.服务器环境 主机名 IP 用户名 密码 安装目录 master188 192.168.29.188 hadoop hadoop /home/ha ...

  9. hadoop 集群HA高可用搭建以及问题解决方案

    hadoop 集群HA高可用搭建 目录大纲 1. hadoop HA原理 2. hadoop HA特点 3. Zookeeper 配置 4. 安装Hadoop集群 5. Hadoop HA配置 搭建环 ...

随机推荐

  1. Map对象以及for of的使用方法

  2. MySql循环语句

    drop procedure if exists test_insert; DELIMITER ;; CREATE PROCEDURE test_insert () BEGIN DECLARE i I ...

  3. IIS 下调用证书出现异常解决方案 (C#)

    程序发布前,跑在vs上是没问题的,当发布后,程序就报错了.通过系统日志找到了错误所在:证书调用时出现了异常.原因是:在IIS上调用证书是需要配置的,具体配置如下: 一. 确保证书已安装 1. 点击 [ ...

  4. SAP Overview

    SAP的全称:       Anwendungen Produkte in der Datenverarbeitung (德文,这是原西德产品),翻译成英文就是:System,Applications ...

  5. php用smarty来做简易留言系统,明细步骤简单操作

    留言信息是之前用php做过的一个例子,现在把它用smarty模板来做 大概是这样子 点击发布信息 然后填写内容,发送后会返回表格,写的内容都会出现在表格里 数据库的数据是这样的: 先建两个文件.php ...

  6. Expo大作战(十九)--expo打包后,发布分用程序到商店的注意事项

    简要:本系列文章讲会对expo进行全面的介绍,本人从2017年6月份接触expo以来,对expo的研究断断续续,一路走来将近10个月,废话不多说,接下来你看到内容,讲全部来与官网 我猜去全部机翻+个人 ...

  7. OpenCV学习参考 即时贴

    注意:本博文在github上日常更新(保持GitHub最新) https://github.com/SylvesterLi/MyOpenCVCode 基本安装:https://blog.csdn.ne ...

  8. python解析式

    一.列表解析式 列表解析是外面一对中括号,它返回的是列表. 一般形式为:[expr for item in itratoble] print([i+1 for i in range(10)]) #结果 ...

  9. DevExpress03、GridControl

    设计数据源并绑定字段: 数据源可以是实现下列接口之一的任何类型: IList 接口,包括一维数组.List<T>等! IListSource 接口,例如,DataTable 和 DataS ...

  10. SDN 第五次上机作业

    1.搭建如下拓扑并连接控制器 2.下发相关流表和组表实现负载均衡 s1: s2: s3: s4: 3.抓包分析验证负载均衡 s4-eth1: s4-eth2: s4-eth3