HDFS 高可用的环境搭建

这篇具有很好参考价值的文章主要介绍了HDFS 高可用的环境搭建。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

目录

1.集群规划

2.文件配置

3.启动集群

4.查看集群

 在开始Hadoop集群的HDFS高可用环境搭建之前,需要完成zookeeper搭建工作。

1.集群规划

节点

NameNode

DataNode

ResourceManager

NodeManager

JournalNode

ZKFC

QuorumPeerMain

master

slave1

slave2

集群规划完成后,既可以开始搭建HDFS HA集群环境。

2.文件配置

  Hadoop的相关配置文件主要包括core-site.xml、hdfs-site.xml、mapred-site.xml、yarn-site.xml和workers这5个文件,下面依次介绍每个文件的配置内容。

       (1) 配置core-site.xml。

        注意:如果打开的文件是一个空白文件,说明是新建了该文件,不保存退出,检查路径或文件名是否有错

[root@master ~]# cd /export/servers/hadoop-3.1.3/etc/hadoop/
[root@master hadoop]# vi core-site.xml

        <configuration>
        <!-- 指定HDFS的nameservice为ns -->
        <property>
                <name>fs.defaultFS</name>
                <value>hdfs://ns</value>
        </property>
        <!-- 指定Hadoop运行时产生文件的存储目录 -->
        <property>
                <name>hadoop.tmp.dir</name>
                <value>/export/servers/hadoop-3.1.3/tmp</value>
        </property>

  <!-- 指定zookeeper地址 -->

  <property>
       <name>ha.zookeeper.quorum</name>
       <value>master:2181,slave1:2181,slave2:2181</value>
     </property>
        </configuration>

    (2)  配置hdfs-site.xml。

[root@master hadoop]# vi hdfs-site.xml

<configuration>   

<!-- 指定HDFS副本的数量 -->
        <property>
                   <name>dfs.replication</name>
                   <value>3</value>
        </property>

<!-- 指定HDFS的nameservice为ns,要与core-site.xml文件配置内容一致-->

      <property>
        <name>dfs.nameservices</name>
        <value>ns</value>
    </property>
    <!-- 集群中NameNode节点名称 -->
    <property>
        <name>dfs.ha.namenodes.ns</name>
        <value>nn1,nn2</value>
    </property>
<!-- nn1的RPC通信地址 -->

<property>
      <name>dfs.namenode.rpc-address.ns.nn1</name>
      <value>master:8020</value>
    </property>
    <!-- nn2的RPC通信地址 -->
    <property>
      <name>dfs.namenode.rpc-address.ns.nn2</name>
      <value>slave1:8020</value>
    </property>
    <!-- nn1的http通信地址 -->
    <property>
        <name>dfs.namenode.http-address.ns.nn1</name>
        <value>master:50070</value>
    </property>

<!-- nn2的http通信地址 -->
    <property>
          <name>dfs.namenode.http-address.ns.nn2</name>
          <value>slave1:50070</value>
    </property>
    <!-- 指定NameNode元数据在JournalNode上的存放位置 -->
    <property>
          <name>dfs.namenode.shared.edits.dir</name>
            <value>qjournal://master:8485;slave1:8485;slave2:8485/ns</value>
    </property>

    <!-- 开启NameNode故障时自动切换 -->

<property>
       <name>dfs.ha.automatic-failover.enabled</name>
       <value>true</value>
    </property>

    <!-- 访问代理类:client,mycluster,active配置失败自动切换实现方式-->
    <property>
          <name>dfs.client.failover.proxy.provider.ns</name>
         <value>org.apache.hadoop.hdfs.server.namenode.ha.ConfiguredFailoverProxyProvider</value>
    </property>
    <!-- 配置隔离机制,即同一时刻只能有一台服务器对外响应 -->
<property>
          <name>dfs.ha.fencing.methods</name>
          <value>sshfence</value>
    </property>
    <!-- 使用隔离机制时需要ssh无秘钥登录-->
    <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>/export/servers/hadoop-3.1.3/ha/journal</value>
    </property>
<!-- 关闭权限检查-->
        <property>
               <name>dfs.permissinos.enabled</name>
               <value>false</value>
        </property>

 </configuration>

 (3)配置yarn-site.xml。

[root@master hadoop]# vi yarn-site.xml

  <configuration>
        <!-- Reducer获取数据的方式 -->
        <property>
                 <name>yarn.nodemanager.aux-services</name>
                 <value>mapreduce_shuffle</value>
        </property>
        <!-- 指定YARN的ResourceManager的地址 -->
        <property>
                  <name>yarn.resourcemanager.hostname</name>
                   <value>master</value>
        </property>

     <property>
                  <name>yarn.log-aggregation-enable</name>
                   <value>true</value>
        </property>
    </configuration>

(4) 配置mapred-site.xml。

[root@master hadoop]# vi mapred-site.xml

        <configuration>
                <!-- 指定MR运行在Yarn上 -->
                <property>
                        <name>mapreduce.framework.name</name>
                        <value>yarn</value>
                </property>

              <property>
                        <name>mapreduce.jobhistory.address</name>
                        <value>master:10020</value>
                </property>
                <property>
                        <name>mapreduce.jobhistory.webapp.address</name>
                        <value>master:19888</value>
                </property>
        </configuration>

[root@master hadoop]# vi workers

(5)配置workers文件。打开该配置文件,然后配置以下内容:

        master
  slave1
  slave2

        该文件中写入哪个主机名,哪个主机就会存在datanode节点。

注意:该文件中添加的内容结尾不允许有空格,文件中不允许有空行。

(6)定义root用户操作hdfs namenode等将以下内容写入配置文件profile末尾,并让修改后的文件生效

[root@master ~]# vi /etc/profile
[root@master ~]# source /etc/profile

      export HDFS_NAMENODE_USER=root
      export HDFS_DATANODE_USER=root
      export HDFS_SECONDARYNAMENODE_USER=root
      export YARN_RESOURCEMANAGER_USER=root
      export YARN_NODEMANAGER_USER=root

     export HDFS_ZKFC_USER=root
     export HDFS_JOURNALNODE_USER=root

(7)使用scp命令将配置好的hadoop和/etc/profile文件分发到slave1和slave2节点。

[root@master hadoop]# cd ..
[root@master etc]# scp -r hadoop slave1:/export/servers/hadoop-3.1.3/etc/
[root@master etc]# scp -r hadoop slave2:/export/servers/hadoop-3.1.3/etc/
[root@master etc]# scp  /etc/profile slave1:/etc/
[root@master etc]# scp  /etc/profile slave2:/etc/
[root@master etc]# source  /etc/profile 
[root@slave1 etc]# source  /etc/profile 
[root@slave2 etc]# source  /etc/profile 

3.启动集群

  (1) 启动ZooKeeper

    分别在master、slave1和slave2节点输入以下命令。

[root@master ~]# zkServer.sh start

  如果显示一个leader和两个follower,则表示zookeeper启动成功。

 (2)  启动JournalNode

    分别在master、slave1和slave2节点输入以下命令。

[root@master ~]# hadoop-daemons.sh start journalnode

  输入jps.sh脚本命令,查看节点启动情况。

HDFS 高可用的环境搭建

   (3)格式化HDFS

     删除mater、slave1和slave2安装目录下tmp、log和ha文件夹。

[root@master ~]# cd /export/servers/hadoop-3.1.3/
[root@master hadoop-3.1.3]# ls
append.txt  include      logs        share
bin         lib          NOTICE.txt  tmp
etc         libexec      README.txt  sbin
ha          LICENSE.txt
[root@master hadoop-3.1.3]# rm -rf tmp   
[root@master hadoop-3.1.3]# rm -rf logs
[root@master hadoop-3.1.3]# rm -rf ha       
[root@slave1 ~]# cd /export/servers/hadoop-3.1.3/
[root@slave1 hadoop-3.1.3]# ls
append.txt  include      logs        share
bin         lib          NOTICE.txt  tmp
etc         libexec      README.txt  sbin
ha          LICENSE.txt
[root@slave1 hadoop-3.1.3]# rm -rf tmp   
[root@slave1 hadoop-3.1.3]# rm -rf logs
[root@slave1 hadoop-3.1.3]# rm -rf ha 
[root@slave2 ~]# cd /export/servers/hadoop-3.1.3/
[root@slave2 hadoop-3.1.3]# ls
append.txt  include      logs        share
bin         lib          NOTICE.txt  tmp
etc         libexec      README.txt  sbin
ha          LICENSE.txt
[root@slave2 hadoop-3.1.3]# rm -rf tmp   
[root@slave2 hadoop-3.1.3]# rm -rf logs
[root@slave2 hadoop-3.1.3]# rm -rf ha 

   

[root@master hadoop-3.1.3]# hdfs namenode -format

        输入对应命令后,若出现图4-1所示标志,说明NameNode格式化成功。

HDFS 高可用的环境搭建  图3-1 格式化NameNode成功界面

为了slave1和master主机NameNode保持一致,需要将master主机上hadoop-3.1.3目录下的tmp文件夹分发给slave1

[root@master hadoop-3.1.3]# scp -r tmp slave1:/export/servers/hadoop-3.1.3/

(4) 格式化ZKFC

[root@master hadoop-3.1.3]# hdfs zkfc -formatZK

  (5) 整体启动hdfs和yarn。

[root@master hadoop-3.1.3]# start-dfs.sh
[root@master hadoop-3.1.3]# start-yarn.sh

         输入jps命令,查看主机节点启动情况。

[root@master hadoop-3.1.3]# jps.sh
**********master**********
14192 NameNode
14357 DataNode
14806 DFSZKFailoverController
13752 JournalNode
15144 NodeManager
13450 QuorumPeerMain
14989 ResourceManager
15503 Jps
**********slave1**********
7971 JournalNode
7829 QuorumPeerMain
8696 DFSZKFailoverController
8936 Jps
8793 NodeManager
8395 NameNode
8491 DataNode
**********slave2**********
13424 QuorumPeerMain
14259 NodeManager
14391 Jps
14072 DataNode
13657 JournalNode
[root@master hadoop-3.1.3]#

        若需关闭集群,在主机上输入相应关闭的命令。启动集群是先hdfs后yarn,关闭集群是先yarn后hdfs。

4.查看集群

HDFS 高可用的环境搭建

HDFS 高可用的环境搭建

若要配置yarn ha 环境,只需要在hdfs ha基础上,更改yarn-site.xml文件。

<configuration>
<!-- Reducer获取数据的方式 -->
        <property>
                 <name>yarn.nodemanager.aux-services</name>
                 <value>mapreduce_shuffle</value>
        </property>
       <!-- 开启YARN HA -->
    <property>
       <name>yarn.resourcemanager.ha.enabled</name>
       <value>true</value>
    </property>
     <!-- 指定YARN HA的名称 -->
     <property>
        <name>yarn.resourcemanager.cluster-id</name>
        <value>RM_CLUSTER</value>
     </property>
         <!-- 指定两个resourcemanager的名称 -->
     <property>
         <name>yarn.resourcemanager.ha.rm-ids</name>
         <value>rm1,rm2</value>
      </property>

     <!-- 配置rm1,rm2的主机 -->
        <property>
        <name>yarn.resourcemanager.hostname.rm1</name>
        <value>master</value>
     </property>
         <property>
         <name>yarn.resourcemanager.hostname.rm2</name>
         <value>slave1</value>
       </property>

       <!-- 配置YARN的http端口 -->
          <property>
          <name>yarn.resourcemanager.webapp.address.rm1</name>
          <value>master:8088</value>
          </property>
        <property>
      <name>yarn.resourcemanager.webapp.address.rm2</name>
          <value>slave1:8088</value>
       </property>

<!-- 配置zookeeper的地址 -->
<property>

     <name>yarn.resourcemanager.zk-address</name>
      <value>master:2181,slave1:2181,slave2:2181</value>
</property>


<!-- 开启yarn resourcemanager restart -->
<property>
<name>yarn.resourcemanager.recovery.enabled</name>
<value>true</value>
</property>

<!-- 配置resourcemanager的状态存储到zookeeper中 -->
   <property>
        <name>yarn.resourcemanager.store.class</name>
        <value>org.apache.hadoop.yarn.server.resourcemanager.recovery.ZKRMStateStore</value>
    </property>
        <property>
                  <name>yarn.log-aggregation-enable</name>
                   <value>true</value>
        </property>
</configuration>

再将更改后的yarn-site.xml文件分发给slave1和slave2。文章来源地址https://www.toymoban.com/news/detail-485210.html

到了这里,关于HDFS 高可用的环境搭建的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 使用kubeadm搭建高可用的K8s集群

    kubeadm是官方社区推出的一个用于快速部署kubernetes集群的工具。 这个工具能通过两条指令完成一个kubernetes集群的部署: 在开始之前,部署Kubernetes集群机器需要满足以下几个条件: 一台或多台机器,操作系统 CentOS7.x-86_x64 硬件配置:2GB或更多RAM,2个CPU或更多CPU,硬盘30GB或更

    2024年02月08日
    浏览(39)
  • 【kubernetes系列】kubernetes之使用kubeadm搭建高可用集群

    目前来说,kubernetes集群搭建的方式很多,选择一个稳定的适合自己的很重要。目前使用kubeadm方式搭建k8s集群还是很常见的,使用kubeadm搭建可以很简单差不多两条命令就行,也可以稍微复杂一点做一些基础优化,本文将分享一下使用kubeadm搭建集群并做了一定的优化。 本环境

    2024年02月15日
    浏览(29)
  • keepalived+haproxy 搭建高可用高负载高性能rabbitmq集群

    一、环境准备 1. 我这里准备了三台centos7 虚拟机 主机名 主机地址 软件 node-01 192.168.157.133 rabbitmq、erlang、haproxy、keepalived node-02 192.168.157.134 rabbitmq、erlang、haproxy、keepalived node-03 192.168.157.135 rabbitmq、erlang 2. 关闭三台机器的防火墙 3. 三台主机的host和hostname配置 4. erlang与rabbitmq版

    2024年02月11日
    浏览(41)
  • 通过 docker-compose 搭建高可用 nginx + keepalived 集群

    两台虚拟机 CentOS Linux release 7.9.2009 (Core) Docker version 23.0.1 Docker-compose version 1.25.0-rc4 Keepalived 是一种高性能的服务器高可用或热备解决方案, Keepalived 可以用来防止服务器单点故障的发生,通过配合 Nginx 可以实现 web 前端服务的高可用。 Keepalived 以 VRRP 协议为实现基础。 VRRP(

    2024年02月04日
    浏览(35)
  • 【微服务部署】十、使用Docker Compose搭建高可用Redis集群

      现如今,业务系统对于缓存Redis的依赖似乎是必不可少的,我们可以在各种各样的系统中看到Redis的身影。考虑到系统运行的稳定性,Redis的应用和MySQL数据库一样需要做到高可用部署。 一、Redis 的多种高可用方案 常见的Redis的高可用方案有以下几种: Redis Replication(主从

    2024年02月07日
    浏览(34)
  • 测试环境搭建整套大数据系统(三:搭建集群zookeeper,hdfs,mapreduce,yarn,hive)

    https://blog.csdn.net/weixin_43446246/article/details/123327143 java_home填写自己安装的路径。 vim core-site.xml 将以下信息填写到configuration中 vim hdfs-site.xml vim mapred-site.xml vim yarn-site.xml vim workers 启动zk 三台机器全部执行 在node01执行 格式化NameNode 。 在node01执行 启动hdfs 在node01执行 启动yarn jps

    2024年02月20日
    浏览(37)
  • 大数据开源框架环境搭建(四)——HDFS完全分布式集群的安装部署

    前言:本实验的所有路径均为本人计算机路径,有些路径需要看自己的,跟着我的一起做最好。普通用户下大部分命令需要加sudo,root模式下不用。如果怕麻烦,直接在root用户下操作。 目录 实验环境: 实验步骤: 一、配置NAT网络 ,分配静态IP地址 1.打开VMware,选择编辑,

    2024年02月05日
    浏览(41)
  • 如何使用Spring Cloud搭建高可用的Elasticsearch集群?详解Elasticsearch的安装与配置及Spring Boot集成的实现

    Spring Cloud 是一个基于 Spring Boot 的微服务框架,它提供了一系列组件和工具,方便开发人员快速搭建和管理分布式系统。Elasticsearch 是一个开源的全文搜索引擎,也是一个分布式、高可用的 NoSQL 数据库。本篇博客将详细讲解如何使用 Spring Cloud 搭建 Elasticsearch,并介绍如何在

    2023年04月09日
    浏览(36)
  • 头歌Hadoop 开发环境搭建及HDFS初体验(第2关:配置开发环境 - Hadoop安装与伪分布式集群搭建)

    注: 1 头歌《Hadoop 开发环境搭建及HDFS初体验》三关在一个实验环境下,需要三关从前往后按顺序评测,跳关或者实验环境结束后重新打开 不能单独评测通过 2 复制粘贴请用右键粘贴,CTRL+C/V不管用哦~ 第1关:配置开发环境 - JavaJDK的配置: 解压: 配置环境变量: 细节: vi

    2024年02月08日
    浏览(120)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包