IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 大数据 -> 002 Hadoop高可用集群配置 -> 正文阅读

[大数据]002 Hadoop高可用集群配置

默认环境配置请参考

参考:hadoop分布式集群搭建

Zookeeper 配置

  1. 压缩包解压并重命名为zk

    tar -zxvf zookeeper-3.4.10.tar.gz
    mv zookeeper-3.4.10 zk
    
  2. 配置环境变量

    vim /etc/profile
    
    # 文件末尾添加
    export ZOOKEEPER_HOME=/software/zk
    export PATH=.:$PATH:$ZOOKEEPER_HOME/bin
    
    # 环境变量生效
    source /etc/profile    
    

    注:java 和hadoop的路径需要提前配置

    # 完整
    export JAVA_HOME=/software/jdk
    export PATH=.:$PATH:$JAVA_HOME/bin
    export ZOOKEEPER_HOME=/software/zk
    export PATH=.:$PATH:$ZOOKEEPER_HOME/bin
    
  3. 修改配置文件
    重命名 conf/zoo_sample.cfg 为 conf/zoo.cfg,并配置

    cd /software/zk/conf
    mv zoo_sample.cfg zoo.cfg
    vim zoo.cfg
    
    # 修改数据存储路径
    dataDir=/software/zk/data
     
    # 在最后添加上以下内容,其中 2888 是通讯端口,3888 是选举端口
    server.0=hadoop-01:2888:3888
    server.1=hadoop-02:2888:3888
    server.2=hadoop-03:2888:3888	
    
  4. 创建zookeeper的数据目录并配置id

    mkdir /software/zk/data
    cd /software/zk/data
    vim myid
    
    # 写入0
    0
    
  5. 复制到其他节点上

    scp -r /software/zk hadoop-02:/software/
    scp -r /software/zk hadoop-03:/software/
    
  6. 修改hadoop-02 和 hadoop-03 的zk/data/myid为各自相应的id值

    # hadoop-02
    vim /software/zk/data/myid
    
    # 写入1
    1
    
    # hadoop-03
    vim /software/zk/data/myid
    
    # 写入2
    2
    
  7. 将hadoop-01的/etc/profile文件复制到hadoop-02 和 hadoop-03 或者直接修改/etc/profile

    scp -r /etc/profile hadoop-02:/etc/  
    scp -r /etc/profile hadoop-03:/etc/
    
    # hadoop-02、 hadoop-03 执行
    source /etc/profile
    
  8. 启动测试
    分别在三台服务器启动 zookeeper,在 zk 的 bin 目录下面启动

    cd /software/zk/bin/
    zkServer.sh start
    
    # 可以通过 zkServer.sh status 查看服务器的角色
    root@hadoop-01 bin]# zkServer.sh status
    ZooKeeper JMX enabled by default
    Using config: /software/zk/bin/../conf/zoo.cfg
    Mode: follower
    

    注:
    a. 启动之前关闭防火墙或者配置安全组策略
    b. 集群中的 selinux 关闭

    vim /etc/selinux/config
    SELINUX=disabled
    

配置 HA 集群

  1. 在 software 目录下创建一个 ha 文件夹

    mkdir /software/ha
    cd /software/ha
    
  2. 上传安装文件并解压

    tar -xzvf hadoop-2.7.4.tar.gz
    mv hadoop-2.7.4 hadoop
    
  3. 配置hadoop-env.sh

    cd /software/ha/hadoop/etc/hadoop
    
    vim hadoop-env.sh
    
    # 修改
    export JAVA_HOME=/software/jdk
    
  4. 配置 core-site.xml

    vim core-site.xml
    
    # 替换
    <configuration> 
      <property>
        <name>fs.defaultFS</name>
        <value>hdfs://mycluster</value>
      </property>
      <property>
         <name>hadoop.tmp.dir</name>
         <value>/software/ha/hadoop/data/tmp</value>
      </property>
      <property>
        <name>ha.zookeeper.quorum</name>
        <value>hadoop-01:2181,hadoop-02:2181,hadoop-03:2181</value>
      </property>
    </configuration>
    
  5. 配置hdfs-site.xml

    vim hdfs-site.xml
    
    # 替换
    
    <configuration>
      <!-- 完全分布式集群名称 -->
      <property>
        <name>dfs.nameservices</name>
        <value>mycluster</value>
      </property>
    
      <!-- 集群中 NameNode 节点都有哪些 -->
      <property>
        <name>dfs.ha.namenodes.mycluster</name>
        <value>hadoop-01,hadoop-02</value>
      </property>
    
      <!-- nn1 的 RPC 通信地址 -->
      <property>
        <name>dfs.namenode.rpc-address.mycluster.hadoop-01</name>
        <value>hadoop-01:9000</value>
      </property>
    
      <!-- nn2 的 RPC 通信地址 -->
      <property>
        <name>dfs.namenode.rpc-address.mycluster.hadoop-02</name>
        <value>hadoop-02:9000</value>
      </property>
    
      <!-- nn1 的 http 通信地址 -->
      <property>
        <name>dfs.namenode.http-address.mycluster.hadoop-01</name>
        <value>hadoop-01:50070</value>
      </property>
    
      <!-- nn2 的 http 通信地址 -->
      <property>
        <name>dfs.namenode.http-address.mycluster.hadoop-02</name>
        <value>hadoop-02:50070</value>
      </property>
    
      <!-- NameNode 元数据在 JournalNode 上的存放位置 -->
      <property>
        <name>dfs.namenode.shared.edits.dir</name>
        <value>qjournal://hadoop-01:8485;hadoop-02:8485;hadoop-03:8485/mycluster</value>
      </property>
    
      <!-- 声明 journalnode 服务器存储目录-->
      <property>
        <name>dfs.journalnode.edits.dir</name>
        <value>/software/ha/hadoop/data/jn</value>
      </property>
    
      <!-- 开启 NameNode 失败自动切换 -->
      <property>
        <name>dfs.ha.automatic-failover.enabled</name>
        <value>true</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>
    
      <!-- 使用隔离机制时需要 ssh 免密登录-->
      <property>
        <name>dfs.ha.fencing.ssh.private-key-files</name>
        <value>/root/.ssh/id_dsa</value>
      </property>
    
      <!-- 配置 sshfence 隔离机制超时时间 -->
      <property>
        <name>dfs.ha.fencing.ssh.connect-timeout</name>
        <value>30000</value>
      </property>
    
      <property>
        <name>dfs.webhdfs.enabled</name>
        <value>true</value>
      </property>
    </configuration>
    
  6. 配置 mapred-site.xml

    cp mapred-site.xml.template mapred-site.xml
    vim mapred-site.xml
    
    # 替换
    <configuration>
      <!-- 指定 mr 框架为 yarn 方式 -->
      <property>
        <name>mapreduce.framework.name</name>
        <value>yarn</value>
      </property>
    
      <!-- 设置 mapreduce 的历史服务器地址和端口号 -->
      <property>
        <name>mapreduce.jobhistory.address</name>
        <value>hadoop-03:10020</value>
      </property>
      
      <!-- mapreduce 历史服务器的 web 访问地址 -->
      <property>
        <name>mapreduce.jobhistory.webapp.address</name>
        <value>hadoop-03:19888</value>
      </property>
    
    </configuration>
    
  7. 配置 yarn-site.xml

    vim yarn-site.xml
    
    # 替换
    <configuration>
    
    <!-- Site specific YARN configuration properties -->
      <!-- 开启 RM 高可用 -->
      <property>
        <name>yarn.resourcemanager.ha.enabled</name>
        <value>true</value>
      </property>
    
      <!-- 指定 RM 的 cluster id -->
      <property>
        <name>yarn.resourcemanager.cluster-id</name>
        <value>cluster-yarn1</value>
      </property>
    
      <!-- 指定 RM 的名字 -->
      <property>
        <name>yarn.resourcemanager.ha.rm-ids</name>
        <value>hadoop-01,hadoop-02</value>
      </property>
    
      <!-- 分别指定 RM 的地址 -->
      <property>
        <name>yarn.resourcemanager.hostname.hadoop-01</name>
        <value>hadoop-01</value>
      </property>
    
      <property>
        <name>yarn.resourcemanager.hostname.hadoop-02</name>
        <value>hadoop-02</value>
      </property>
    
      <!--指定 zookeeper 集群的地址--> 
      <property>
        <name>yarn.resourcemanager.zk-address</name>
        <value>hadoop-01:2181,hadoop-02:2181,hadoop-03:2181</value>
      </property>
    
      <!-- 要运行 MapReduce 程序必须配置的附属服务 -->
      <property>
        <name>yarn.nodemanager.aux-services</name>
        <value>mapreduce_shuffle</value>
      </property>
    
      <!-- 开启 YARN 集群的日志聚合功能 -->
      <property>
        <name>yarn.log-aggregation-enable</name>
        <value>true</value>
      </property>
    
      <!-- YARN 集群的聚合日志最长保留时长 -->
      <property>
        <name>yarn.log-aggregation.retain-seconds</name>
        <value>86400</value>
      </property>
    
      <!--启用自动恢复-->
      <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>
    
    </configuration>
    
  8. 将 Hadoop 配置分发到其他节点

    # hadoop-02 和hadoop-03提前创建目录:/software/ha/
    scp -r /software/ha/hadoop hadoop-02:/software/ha/
    scp -r /software/ha/hadoop hadoop-03:/software/ha/
    
  9. 配置环境变量

    # 所有节点末尾添加
    export HADOOP_HOME=/software/ha/hadoop
    export PATH=.:$PATH:$HADOOP_HOME/bin:$HADOOP_HOME/sbin
    
    # 实际线上配置
    export JAVA_HOME=/software/jdk
    export PATH=.:$PATH:$JAVA_HOME/bin
    export ZOOKEEPER_HOME=/software/zk
    export PATH=.:$PATH:$ZOOKEEPER_HOME/bin
    export HADOOP_HOME=/software/ha/hadoop
    export PATH=.:$PATH:$HADOOP_HOME/bin:$HADOOP_HOME/sbin
    
    # 所有节点执行
    source /etc/profile
    
  10. 启动 ZooKeeper 集群

    # 三个节点
    zkServer.sh start
    
  11. 启动 journalnode

    # 三个节点
    cd /software/ha/hadoop/sbin/
    hadoop-daemon.sh start journalnode
    
  12. 格式化 NameNode

    # 在第一个 namenode 节点进行格式化
    hdfs namenode -format
    

    格式化成功:注意路径 在这里插入图片描述

  13. 拷贝元数据信息
    拷贝第一个 namenode 节点上初始化成功的元数据到第二个 namenode 节点的相同目录下

    scp -r /software/ha/hadoop/data hadoop-02:/software/ha/hadoop
    
  14. 选择一个节点执行 zookeeper 的元数据初始化

    hdfs zkfc -formatZK
    

    初始化成功
    在这里插入图片描述

  15. 启动 hdfs 集群

    start-dfs.sh
    

    在这里插入图片描述

  16. 启动 yarn 集群

    start-yarn.sh
    

    在这里插入图片描述

  17. 查看 hdfs 的 web 页面
    在这里插入图片描述

  18. 查看 yarn 的 web 页面
    在这里插入图片描述

  大数据 最新文章
实现Kafka至少消费一次
亚马逊云科技:还在苦于ETL?Zero ETL的时代
初探MapReduce
【SpringBoot框架篇】32.基于注解+redis实现
Elasticsearch:如何减少 Elasticsearch 集
Go redis操作
Redis面试题
专题五 Redis高并发场景
基于GBase8s和Calcite的多数据源查询
Redis——底层数据结构原理
上一篇文章      下一篇文章      查看所有文章
加:2021-08-04 11:16:50  更:2021-08-04 11:17:02 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/23 13:10:54-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码