我的编程空间,编程开发者的网络收藏夹
学习永远不晚

如何进行HA分布式集群搭建

短信预约 -IT技能 免费直播动态提醒
省份

北京

  • 北京
  • 上海
  • 天津
  • 重庆
  • 河北
  • 山东
  • 辽宁
  • 黑龙江
  • 吉林
  • 甘肃
  • 青海
  • 河南
  • 江苏
  • 湖北
  • 湖南
  • 江西
  • 浙江
  • 广东
  • 云南
  • 福建
  • 海南
  • 山西
  • 四川
  • 陕西
  • 贵州
  • 安徽
  • 广西
  • 内蒙
  • 西藏
  • 新疆
  • 宁夏
  • 兵团
手机号立即预约

请填写图片验证码后获取短信验证码

看不清楚,换张图片

免费获取短信验证码

如何进行HA分布式集群搭建

今天就跟大家聊聊有关如何进行HA分布式集群搭建,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。

一:HA分布式配置的优势:

  1,防止由于一台namenode挂掉,集群失败的情形

  2,适合工业生产的需求

二:HA安装步骤:

1,安装虚拟机

 1,型号:VMware_workstation_full_12.5.0.11529.exe  linux镜像:CentOS-7-x86_64-DVD-1611.iso

  注意点:

  1,网络选择了桥接模式(可以防止route总变),(台式机或服务器最好设置自己的本机的ip地址为静态的ip)

  2,安装过程中选择了基础建设模式(infras...),(减少内存的消耗,但又保证基本的环境的模式)

  3,用户名root  密码 root 
  4,网络配置使用了手动网络固定网络ip4地址(固定ip)

 2,linux基本环境配置:(操作都在root权限下进行的)

  1,验证网络服务:ping <主机ip>  主机 ping <虚拟机ip>  ping www.baidu.ok  验证ok

    备份ip地址:cp /etc/sysconfig/network-scripts/ifcfg-ens33 /etc/sysconfig/network-scripts/ifcfg-ens33.bak 

  2,防火墙设置:关闭并禁用防火墙

   关闭防火墙 systemctl stop firewalld.service(cetos7与前面系列的iptables不同)

      禁用防火墙:systemctl disable firewalld.service

      查看防火墙状态:firewall-cmd --state

  3,设置hosts,hostname,network

vim /etc/hostname
ha1

vim /etc/hosts
192.168.1.116    ha1
192.168.1.117    ha2
192.168.1.118    ha3
192.168.1.119    ha4

vim /etc/sysconfig/network
NETWORKING=yes
HOSTNAME=ha1

4,安装一些必要的包:(不一定全)

yum install -y chkconfig
yum install -y Python
yum install -y bind-utils
yum install -y psmisc
yum install -y libxslt
yum install -y zlib
yum install -y sqlite
yum install -y cyrus-sasl-plain
yum install -y cyrus-sasl-gssapi
yum install -y fuse
yum install -y portmap
yum install -y fuse-libs
yum install -y RedHat-lsb

5,安装Java和Scala

java版本:jdk-7u80-linux-x64.rpm
scala版本:scala-2.11.6.tgz

验证是否有java:
rpm -qa|grep java 无

tar -zxf jdk-8u111-linux-x64.tar.gz
tar -zxf scala-2.11.6.tgz
mv jdk1.8.0_111 /usr/java
mv scala-2.11.6 /usr/scala

配置环境变量:
vim /etc/profile
export JAVA_HOME=/usr/java
export SCALA_HOME=/usr/scala
export PATH=$JAVA_HOME/bin:$SCALA_HOME/bin:$PATH
export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar

 6,重启,验证上述是否设置  ok :重启  使用vm快照,命名为:初始化ok java,scala,主机名,防火墙,ip

 3,Hadoop+zookeeper集群配置

  1,集群机准备

    连接克隆:对ha1克隆出ha2,ha3,ha4

    对ha2,ha3,ha4修改网络地址,network,防火墙
    vim /etc/sysconfig/network-scripts/ifcfg-ens33
    116 117/118/119
    service network restart 
    vim /etc/hostname
    vim /etc/sysconfig/network
    systemctl disable firewalld.service

    对ha2,ha3,ha4重启验证ip,网络,防火墙,分别对三台机快照,命名为:初始化ok java,scala,主机名,防火墙,ip

  2,集群框架图

机子

Namenode

DataNode

Zookeeper

ZkFC

JournalNode

RM

DM

Ha1

1

 

1

1

1

1

 

Ha2

1

1

1

1

1

 

1

Ha3

 

1

1

 

1

 

1

Ha4

 

1

 

 

 

 

1

   3,ssh通信: ok后  快照 ssh ok

四台机:
ssh-keygen -t rsa
cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys
chmod 600 ~/.ssh/authorized_keys

ha1下:
scp ~/.ssh/* root@ha2:~/.ssh/
scp ~/.ssh/* root@ha3:~/.ssh/
scp ~/.ssh/* root@ha4:~/.ssh/

验证:
ssh ha2/ha3/ha4

  4,zookeeper集群配置:

   1,配置环境变量

zook安装:
tar -zxf zookeeper-3.4.8.tar.gz
mv zookeeper-3.4.8 /usr/zookeeper-3.4.8
修改配置文件:
export ZK_HOME=/usr/zookeeper-3.4.8
scp /etc/profile root@ha2:/etc/
scp /etc/profile root@ha3:/etc/
source /etc/profile

   2,zoo.cfg配置(加粗修改出)

cd /usr/zookeeper-3.4.8/conf
cp zoo_sample.cfg zoo.cfg
内容:
# 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
# example sakes.
dataDir=/opt/zookeeper/datas
dataLogDir=/opt/zookeeper/logs
# the port at which the clients will connect
clientPort=2181
# 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 purge feature
#autopurge.purgeInterval=1
server.1=ha1:2888:3888
server.2=ha2:2888:3888
server.3=ha3:2888:3888

   3,启动zookeeper集群:

#三台机(ha1,ha2,ha3)
新建文件夹:
mkdir -p /opt/zookeeper/datas
mkdir -p /opt/zookeeper/logs
cd /opt/zookeeper/datas
vim myid    写1/2/3

#分发给ha2,ha3(注意ha4不需要)
cd /usr
scp -r zookeeper-3.4.8 root@ha2:/usr
scp -r zookeeper-3.4.8 root@ha3:/usr
#启动(三台机)
cd $ZK_HOME/bin
zkServer.sh start
zkServer.sh status 一个leader和连个follower

  5,hadoop集群配置

   1,配置环境变量:

版本:hadoop-2.7.3.tar.gz

tar -zxf hadoop-2.7.3.tar.gz
mv hadoop2.7.3 /usr/hadoop2.7.3

export JAVA_HOME=/usr/java
export SCALA_HOME=/usr/scala
export HADOOP_HOME=/usr/hadoop-2.7.3
export PATH=$JAVA_HOME/bin:$SCALA_HOME/bin:$HADOOP_HOME/bin:$PATH
export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
source /etc/profile

   2,hadoop.env.sh配置:

export JAVA_HOME=/usr/javasource hadoop.env.shhadoop version    验证ok

   3,hdfs-site.xml配置:后续修改后发送(scp hdfs-site.xml root@ha4:/usr/hadoop-2.7.3/etc/hadoop/)

vim hdfs-site.xml
<configuration>
    <property>
            <name>dfs.nameservices</name>
            <value>mycluster</value>
    </property>
    <property>
            <name>dfs.ha.namenodes.mycluster</name>
            <value>nn1,nn2</value>
    </property>
    <property>
            <name>dfs.namenode.rpc-address.mycluster.nn1</name>
            <value>ha1:9000</value>
    </property>
    <property>
            <name>dfs.namenode.rpc-address.mycluster.nn2</name>
            <value>ha2:9000</value>
    </property>
    <property>
            <name>dfs.namenode.http-address.mycluster.nn1</name>
            <value>ha1:50070</value>
    </property>
    <property>
            <name>dfs.namenode.http-address.mycluster.nn2</name>
            <value>ha2:50070</value>
    </property>
    <property>
            <name>dfs.namenode.shared.edits.dir</name>
            <value>qjournal://ha2:8485;ha3:8485;ha4:8485/mycluster</value>
    </property>
    <property>
            <name>dfs.client.failover.proxy.provider.mycluster</name>
            <value>org.apache.hadoop.hdfs.server.namenode.ha.ConfiguredFailoverProxyProvider</value>
    </property>
    <property>
            <name>dfs.ha.fencing.methods</name>
            <value>sshfence</value>
    </property>
    <property>
            <name>dfs.ha.fencing.ssh.private-key-files</name>
            <value>/root/.ssh/id_rsa</value>
    </property>
    <property>
            <name>dfs.journalnode.edits.dir</name>
            <value>/opt/jn/data</value>
    </property>
    <property>
            <name>dfs.ha.automatic-failover.enabled</name>
            <value>true</value>
    </property>
</configuration>

   4,core-site.xml配置

<configuration>
      <property>
                <name>fs.defaultFS</name>
                <value>hdfs://mycluster</value>
      </property>
      <property>
                <name>ha.zookeeper.quorum</name>
                <value>ha1:2181,ha2:2181,ha3:2181</value>
        </property>
      <property>
              <name>hadoop.tmp.dir</name>
              <value>/opt/hadoop2</value>
              <description>A base for other temporary  directories.</description>
      </property>
</configuration>

   5,yarn-site.xml配置

vim yarn-site.xml
<configuration>

<!-- Site specific YARN configuration properties -->
        <property>
              <name>yarn.nodemanager.aux-services</name>
              <value>mapreduce_shuffle</value>
        </property>
        <property>                                                              
                <name>yarn.nodemanager.aux-services.mapreduce.shuffle.class</name>
                <value>org.apache.hadoop.mapred.ShuffleHandler</value>
        </property>
        <property>
              <name>yarn.resourcemanager.hostname</name>
              <value>ha1</value>
      </property>
</configuration>

   6,mapred-site.xml配置

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

   7,slaves配置:

vim slaves ha2ha3ha4

   8,分发并启动:

#分发
scp -r hadoop-2.7.3 root@ha2:/usr/
scp -r hadoop-2.7.3 root@ha3:/usr/
scp -r hadoop-2.7.3 root@ha4:/usr/
#启动JN(在ha2,ha3,ha4)
cd sbin
./hadoop-daemon.sh start journalnode

[root@ha2 sbin]# jps
JournalNode
Jps
QuorumPeerMain(#zk启动的线程)

#ha1:namenode格式化
cd bin
./hdfs namenode -format
#zk格式化
./hdfs zkfc -formatZK
#可以查看cd /opt/hadoop2文件来查看元数据是否格式化正常

#ha2:namenode格式化
1,ha1要先启动namenode:
./hadoop-daemon.sh start namenode
2,ha2下
./hdfs namenode -bootstrapStandby

   9,验证:http://192.168.1.116:50070/验证 ok   快照 ha模式下的hadoop+zookeeper安装ok

#hdfs集群验证
[root@ha1 sbin]# ./stop-dfs.sh
Stopping namenodes on [ha1 ha2]
ha2: no namenode to stop
ha1: stopping namenode
ha2: no datanode to stop
ha3: no datanode to stop
ha4: no datanode to stop
Stopping journal nodes [ha2 ha3 ha4]
ha3: stopping journalnode
ha4: stopping journalnode
ha2: stopping journalnode
Stopping ZK Failover Controllers on NN hosts [ha1 ha2]
ha2: no zkfc to stop
ha1: no zkfc to stop
[root@ha1 sbin]# ./start-dfs.sh
ha1下:
[root@ha1 sbin]# jps
Jps
NameNode
QuorumPeerMain
DFSZKFailoverController
[root@ha2 dfs]# jps
NameNode
DFSZKFailoverController
Jps
DataNode
JournalNode
QuorumPeerMain
[root@ha3 sbin]# jps
QuorumPeerMain
DataNode
JournalNode
Jps
[root@ha4 sbin]# jps
Jps
DataNode
JournalNode

配置yarn和mapred
[root@ha1 sbin]# jps
NameNode
DFSZKFailoverController
Jps
QuorumPeerMain
ResourceManager
[root@ha2 hadoop]# jps
DataNode
NameNode
DFSZKFailoverController
JournalNode
NodeManager
Jps
QuorumPeerMain
[root@ha3 ~]# jps
QuorumPeerMain
DataNode
NodeManager
Jps
JournalNode
[root@ha4 ~]# jps
JournalNode
NodeManager
DataNode
Jps

看完上述内容,你们对如何进行HA分布式集群搭建有进一步的了解吗?如果还想了解更多知识或者相关内容,请关注编程网行业资讯频道,感谢大家的支持。

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

如何进行HA分布式集群搭建

下载Word文档到电脑,方便收藏和打印~

下载Word文档

猜你喜欢

如何进行HA分布式集群搭建

今天就跟大家聊聊有关如何进行HA分布式集群搭建,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。一:HA分布式配置的优势:  1,防止由于一台namenode挂掉,集群失败的情形  2,
2023-06-03

Zookeeper分布式集群搭建

文中Zookeeper分布式集群搭建在Linux CentOS7系统之上。搭建大数据分布式集群,不建议使用root用户直接操作,故文中使用bigdata用户进行集群的搭建。一、环境准备软件版本Linux系统CentOS7JDKjdk-8u221-linux-x
2015-10-26

如何进行Zookeeper分析与集群搭建

本篇文章为大家展示了如何进行Zookeeper分析与集群搭建,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。Zookeeper简介Zookeeper是一个高效的分布式协调服务,可以提供配置信息管理、命
2023-06-02

mysql分布式集群怎么搭建

要搭建一个 MySQL 分布式集群,可以采用以下步骤:选择合适的分布式架构:MySQL 分布式集群可以采用主从复制、主从同步复制、主从多从复制等不同的架构方式。根据实际需求和性能要求,选择合适的分布式架构。部署数据库节点:在不同的服务器上
mysql分布式集群怎么搭建
2024-04-18

Hadoop完全分布式集群搭建

Hadoop的运行模式Hadoop一般有三种运行模式,分别是:单机模式(Standalone Mode),默认情况下,Hadoop即处于该模式,使用本地文件系统,而不是分布式文件系统。,用于开发和调试。伪分布式模式(Pseudo Distrubuted Mod
Hadoop完全分布式集群搭建
2021-07-05

Hadoop2.7.5+Spark2.2.1分布式集群怎么搭建

这篇文章主要介绍“Hadoop2.7.5+Spark2.2.1分布式集群怎么搭建”,在日常操作中,相信很多人在Hadoop2.7.5+Spark2.2.1分布式集群怎么搭建问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对
2023-06-03

Centos7.3 RabbitMQ分布式集群搭建示例

本文介绍了Centos7.3 RabbitMQ分布式集群搭建示例,分享给大家,具体如下:注意事项 centos 7.x 关闭firewall 三台机器:172.17.250.97 rabbiMQ01 172.17.250.98 ra
2022-06-04

windows怎么搭建Redis分布式集群

要搭建Redis分布式集群,您可以按照以下步骤进行操作:1. 下载Redis的稳定版本,并解压到不同的目录,例如:redis1、redis2、redis3。2. 分别进入redis1、redis2、redis3目录,并分别编辑redis.c
2023-09-11

docker下怎么搭建fastdfs分布式集群

这篇文章主要讲解了“docker下怎么搭建fastdfs分布式集群”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“docker下怎么搭建fastdfs分布式集群”吧!本文在centos6.8下
2023-06-19

Elasticsearch分布式集群搭建与管理实践(如何构建并管理一个高效的Elasticsearch分布式集群?)

本文详细讲解了构建和管理高效Elasticsearch分布式集群的实践。涵盖了集群架构、硬件和网络、安装和配置、集群管理、性能优化以及最佳实践等方面。遵循文中指导,可以构建一个可靠且满足搜索和分析需求的Elasticsearch集群。
Elasticsearch分布式集群搭建与管理实践(如何构建并管理一个高效的Elasticsearch分布式集群?)
2024-04-02

Sphinx分布式搜索集群的搭建与运维管理(如何构建并维护Sphinx分布式搜索集群?)

本文详细介绍了如何构建并维护Sphinx分布式搜索集群,包括安装、配置、运维管理和最佳实践。搭建步骤包括安装Sphinx、创建索引、配置分布式集群和负载均衡。运维管理涉及监控、故障排除、索引管理、系统更新、备份和恢复以及性能优化。最佳实践包括使用不同服务器进行主辅分离、监控和优化、创建备份以及在进行更改之前进行测试。
Sphinx分布式搜索集群的搭建与运维管理(如何构建并维护Sphinx分布式搜索集群?)
2024-04-02

CentOS 7如何搭建Hadoop 2.7.3完全分布式集群环境

这篇文章将为大家详细讲解有关CentOS 7如何搭建Hadoop 2.7.3完全分布式集群环境,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。(一)软件准备1,hadoop-2.7.3.tar.gz(包)2
2023-06-03

如何使用Centos7系统搭建Hadoop-3.1.4完全分布式集群

本篇内容主要讲解“如何使用Centos7系统搭建Hadoop-3.1.4完全分布式集群”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“如何使用Centos7系统搭建Hadoop-3.1.4完全分布
2023-06-15

MySQL分布式集群搭建的方法是什么

MySQL分布式集群可以通过以下几种方法来搭建:1. MySQL Replication(复制):使用MySQL的复制功能,将一个MySQL数据库的数据复制到多个节点上。可以通过设置主节点和从节点来实现数据的同步复制,从而实现数据的分布式存
2023-09-21

如何进行Redis 6.X Sentinel哨兵集群搭建

如何进行Redis 6.X Sentinel哨兵集群搭建,很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。码哥带大家完成在 CentOS 7 中安装 Redis 6
2023-06-15

编程热搜

  • Python 学习之路 - Python
    一、安装Python34Windows在Python官网(https://www.python.org/downloads/)下载安装包并安装。Python的默认安装路径是:C:\Python34配置环境变量:【右键计算机】--》【属性】-
    Python 学习之路 - Python
  • chatgpt的中文全称是什么
    chatgpt的中文全称是生成型预训练变换模型。ChatGPT是什么ChatGPT是美国人工智能研究实验室OpenAI开发的一种全新聊天机器人模型,它能够通过学习和理解人类的语言来进行对话,还能根据聊天的上下文进行互动,并协助人类完成一系列
    chatgpt的中文全称是什么
  • C/C++中extern函数使用详解
  • C/C++可变参数的使用
    可变参数的使用方法远远不止以下几种,不过在C,C++中使用可变参数时要小心,在使用printf()等函数时传入的参数个数一定不能比前面的格式化字符串中的’%’符号个数少,否则会产生访问越界,运气不好的话还会导致程序崩溃
    C/C++可变参数的使用
  • css样式文件该放在哪里
  • php中数组下标必须是连续的吗
  • Python 3 教程
    Python 3 教程 Python 的 3.0 版本,常被称为 Python 3000,或简称 Py3k。相对于 Python 的早期版本,这是一个较大的升级。为了不带入过多的累赘,Python 3.0 在设计的时候没有考虑向下兼容。 Python
    Python 3 教程
  • Python pip包管理
    一、前言    在Python中, 安装第三方模块是通过 setuptools 这个工具完成的。 Python有两个封装了 setuptools的包管理工具: easy_install  和  pip , 目前官方推荐使用 pip。    
    Python pip包管理
  • ubuntu如何重新编译内核
  • 改善Java代码之慎用java动态编译

目录