博客
关于我
高可用大数据集群搭建--集群规划
阅读量:471 次
发布时间:2019-03-06

本文共 3339 字,大约阅读时间需要 11 分钟。

Hadoop生态系统服务部署与角色规划

服务版本列表

以下是当前版本的Hadoop生态系统服务及其下载链接:

服务名称 版本号 下载链接
Zookeeper v3.6.4 https://archive.apache.org/dist/zookeeper/zookeeper-3.6.4/apache-zookeeper-3.6.4-bin.tar.gz
Hadoop v2.8.5 https://archive.apache.org/dist/hadoop/common/hadoop-2.8.5/hadoop-2.8.5.tar.gz
Hive v2.3.9 https://archive.apache.org/dist/hive/stable-2/apache-hive-2.3.9-bin.tar.gz

节点角色规划表

以下是集群中各节点的配置信息:

主机名称 主机IP 角色 部署服务列表 资源详情 操作系统版本
mapper-node1 192.168.0.101 Master、Worker Zookeeper、Namenode、Datanode、Resourcemanager、NodeManager、HiveServer2、HiveMetastore、JournalNode、ZKFC 256G40C CentOS Linux release 7.6.1810 (Core)
mapper-node2 192.168.0.102 Master、Worker Zookeeper、Namenode、Datanode、Resourcemanager、NodeManager、JournalNode、ZKFC 32G8C CentOS Linux release 7.6.1810 (Core)
mapper-node3 192.168.0.103 Master、Worker Zookeeper、Namenode、Datanode、Resourcemanager、NodeManager、HiveServer2、HiveMetastore、JournalNode、ZKFC 32G8C CentOS Linux release 7.6.1810 (Core)

角色介绍

Zookeeper

Zookeeper是一个分布式协调服务,负责管理集群中的节点状态及服务发现。集群中存在一个Leader节点负责处理客户端请求,其他节点作为Follower节点执行任务。Zookeeper支持数据发布/订阅和通知机制,适用于配置管理和状态同步。

JournalNode

JournalNode用于提供高可用性和容错性支持。它记录HDFS中的数据修改操作,包括文件创建、修改、删除等。JournalNode节点间通过复制协议保证数据一致性。在NameNode故障时,可以通过日志文件恢复数据。

ZKFC

ZKFC(ZooKeeper Fault Tolerant Cluster)实现HDFS的自动故障转移。当NameNode出现故障时,ZKFC会将故障节点转移给备用节点,确保HDFS的高可用性。ZKFC通过Zookeeper协调服务发现故障并执行故障转移操作。

Namenode

Namenode管理HDFS的命名空间和数据块。它维护文件和目录的层次结构、数据块位置及副本信息。Namenode处理客户端的读写请求,并通过数据块副本机制保证数据可靠性。

Datanode

Datanode负责存储文件数据块并提供读写服务。多个Datanode节点分布存储数据,客户端通过NameNode获取数据块位置后直接与Datanode通信进行读写操作。

Resourcemanager

Resourcemanager在YARN框架中管理集群资源和任务。它负责资源分配、任务监控和队列管理,确保集群运行高效。

NodeManager

NodeManager管理运行在本地节点上的YARN任务。它负责启动和监控容器,发送心跳和状态报告,作为工作节点的核心。

HiveServer2

HiveServer2提供远程客户端访问Hive服务的接口,支持JDBC、ODBC等多种访问方式,适合多种客户端环境。

HiveMetastore

HiveMetastore存储Hive元数据,包括表、分区和列信息。它将元数据存储在关系型数据库中,便于Hive进行查询和管理。

部署前准备

在开始部署之前,需要完成以下准备工作:

  • 配置主机名映射,确保各节点间可以互相访问。
  • 准备200G以上的合适大小磁盘。
  • 关闭系统防火墙及SELinux。
  • 配置节点间免密登录。
  • 安装JDK环境。
  • 磁盘分区

    建议使用LVM进行磁盘分区。格式化磁盘为xfs格式后,将挂载点配置到/data目录。以下是示例命令:

    mkdir /datablk
    echo 'UUID="a7fdcbb9-eda4-4174-9512-de4cc3d2fb90" /data xfs defaults 0 0' > /etc/fstab
    mount -a

    免密登录配置

    使用ssh-keygen生成密钥对,默认选项即可。然后执行以下命令为所有节点配置免密登录:

    for hostNum in {1..3}; do ssh-copy-id mapper-node$hostNum; done

    Zookeeper集群搭建

    安装与配置

  • 解压Zookeeper安装包并创建软链接:
  • tar -zxvf apache-zookeeper-3.6.4-bin.tar.gz
    mv apache-zookeeper-3.6.4-bin zookeeper
    1. 配置环境变量,添加以下内容至/etc/profile.d/zookeeper.sh
    2. export ZOOKEEPER_HOME=/opt/soft/zookeeper
      export ZOOCFGDIR=/opt/soft/zookeeper/conf
      export ZOO_LOG_DIR=/data/bigdata/logs/zookeeper
      export ZOOPIDFILE=/var/run/zookeeper/zookeeper_server.pid
      PATH=$PATH:$ZOOKEEPER_HOME/bin
      1. 修改Zookeeper配置文件zoo.cfg,配置集群节点和端口:
      2. cp zoo_sample.cfg zoo.cfg
        # 修改数据目录及相关端口
        dataDir=/data/bigdata/zookeeper
        admin.serverPort=12182 # 修改为避免端口冲突
        server.1=mapper-node1:2888:3888
        server.2=mapper-node2:2888:3888
        server.3=mapper-node3:2888:3888
        1. 复制配置文件及环境变量脚本到其他节点:
        2. scp /opt/soft/zookeeper root@mapper-node2:/opt/soft
          scp /etc/profile.d/zookeeper.sh root@mapper-node2:/etc/profile.d
          scp /opt/soft/zookeeper root@mapper-node3:/opt/soft
          scp /etc/profile.d/zookeeper.sh root@mapper-node3:/etc/profile.d
          1. 在每台节点创建myid文件并启动Zookeeper:
          2. echo '1' > /data/bigdata/zookeeper/myid
            echo '2' > /data/bigdata/zookeeper/myid
            echo '3' > /data/bigdata/zookeeper/myid
            zkServer.sh start

            启动完成后,通过查看状态确认集群搭建成功:

            echo "mapper-node1"
            ssh mapper-node1 'zkServer.sh status'

    转载地址:http://kpqbz.baihongyu.com/

    你可能感兴趣的文章
    nginx 反向代理 转发请求时,有时好有时没反应,产生原因及解决
    查看>>
    Nginx 反向代理+负载均衡
    查看>>
    Nginx 反向代理解决跨域问题
    查看>>
    Nginx 反向代理配置去除前缀
    查看>>
    nginx 后端获取真实ip
    查看>>
    Nginx 多端口配置和访问异常问题的排查与优化
    查看>>
    Nginx 如何代理转发传递真实 ip 地址?
    查看>>
    Nginx 学习总结(16)—— 动静分离、压缩、缓存、黑白名单、性能等内容温习
    查看>>
    Nginx 学习总结(17)—— 8 个免费开源 Nginx 管理系统,轻松管理 Nginx 站点配置
    查看>>
    Nginx 学习(一):Nginx 下载和启动
    查看>>
    nginx 常用指令配置总结
    查看>>
    Nginx 常用配置清单
    查看>>
    nginx 常用配置记录
    查看>>
    nginx 开启ssl模块 [emerg] the “ssl“ parameter requires ngx_http_ssl_module in /usr/local/nginx
    查看>>
    Nginx 我们必须知道的那些事
    查看>>
    Nginx 源码完全注释(11)ngx_spinlock
    查看>>
    Nginx 的 proxy_pass 使用简介
    查看>>
    Nginx 的 SSL 模块安装
    查看>>
    Nginx 的优化思路,并解析网站防盗链
    查看>>
    Nginx 的配置文件中的 keepalive 介绍
    查看>>