Hadoop 与 Zookeeper 集群搭建

打印 上一主题 下一主题

主题 822|帖子 822|积分 2466

一、Hadoop与Zookeeper介绍

(1)Hadoop

Hadoop 是一个分布式系统基础架构,由 Apache 基金会开发,旨在处理大规模数据集。它主要包含以下两个核心组件:


  • Hadoop 分布式文件系统(HDFS):一种分布式文件系统,可以或许将大文件切分成多个块,并存储在集群中的不同节点上。具有高容错性、高吞吐量等特点,恰当大规模数据的存储。比方,在一个大型互联网公司中,天天产生的海量用户行为数据可以存储在 HDFS 中。
  • MapReduce 编程模型:用于大规模数据集的并行计算。通过将计算任务分解为 Map(映射)和 Reduce(归约)两个阶段,实现数据的分布式处理。好比,统计海量文本中每个单词的出现次数,就可以利用 MapReduce 来高效完成。




(2)Zookeepe

        Zookeeper是一个开源的分布式和谐服务,主要用于办理分布式系统中的和谐问题。它提供设置管理、定名服务、集群管理、同步服务等功能。Zookeeper的核心特性包括:



  • 全局数据同等性‌:每个服务器保存一份相同的数据副本,客户端无论连接到哪个服务器,数据都是同等的。
  • 更新请求顺序执行‌:来自同一个客户端的更新请求按发送顺序依次执行。
  • 数据更新原子性‌:一次数据更新要么乐成,要么失败。
  • 及时性‌:在一定时间范围内,客户端能读到最新数据‌34



(3)Hadoop与Zookeeper的关系和应用场景

        在一个典范的大数据处理架构中,Hadoop 和 Zookeeper 常常协同工作。Zookeeper 可以为 Hadoop 集群提供分布式和谐服务,比方:


  • Hadoop NameNode 的高可用性:通过 Zookeeper 实现 NameNode 的主备切换,包管 Hadoop 集群的高可用性。当主 NameNode 出现故障时,Zookeeper 可以或许快速选举出新的主节点,确保集群正常运行。
  • 资源管理和谐:在 Hadoop 的资源管理框架(如 YARN)中,Zookeeper 可以协助进行资源的分配和和谐,包管任务的合理调理和执行。
应用场景



  • Hadoop 的应用场景:适用于大规模数据的存储和离线处理,如日志分析、数据仓库构建、机器学习模型练习等。比方,电商公司可以利用 Hadoop 分析用户购买行为数据,为用户提供个性化推荐。
  • Zookeeper 的应用场景:广泛应用于分布式系统中的和谐、设置管理等方面,如分布式锁、服务发现、集群管理等。好比,在一个微服务架构中,Zookeeper 可以用于服务注册与发现,资助服务之间快速找到对方并进行通信。
       在实际应用中,Hadoop和Zookeeper常常被用于同一个系统中,因为它们之间有很强的耦合关系。Zookeeper可以用于管理Hadoop集群的元数据,如NameNode的地点、DataNode的地点等;同时,Hadoop也可以用于处理Zookeeper集群的大数据,如日志、监控数据等。Zookeeper在Hadoop集群中的作用尤为重要,特殊是在NameNode的高可用性方面,通过Zookeeper的选举机制,确保一个NameService下面只有一个活泼的NameNode,从而提供高可靠性的服务。



二、HBase概述

     Apache HBase是一个分布式可伸缩列式存储高并发及时读写NoSQL数据库,是Hadoop生态的重要组成。一张表支持数十亿行和数百万列。
    HBase是依赖Hadoop。因为HBase是在HDFS的基础之上构建的,而HDFS是分布式文件系统,能存储海量数据,以是HBase能存储海量的数据。
HBase在HDFS之上提供了高并发的随机写和支持及时查询,这是HDFS不具备的。


(1)列式存储

       下图是一个表,表示两行七列数据,也就是可以明白成,存储到磁盘的时候,每行都是由多列数据组成的。
id姓名年龄职业年薪女朋友身高
1小明24500W已有
2小王搬砖
        而假如是列式存储,不同的列是单独存储在不同的文件中,这样可以针对不同的列采取不同的压缩方式,进步压缩结果,降低磁盘利用空间;查询时,也可以只查询部分的列数据,而不用查询全部列,减少I/O,进步查询效率。
       对于上表,在Hbase中,可以将姓名、年龄、身高这几列看作是一组,单独存储,职业、年薪这两列也可以看作是一组,单独存储。在Hbase中,多列归为一组 (具体哪些列在哪些组由设计者决定) ,就可以称之为一个列族
(2)HBase架构图


说明:
1. ZK是zookeeper的缩写,是一个分布式步伐。ZK可以存储小量数据,它一样平常以辅助的脚色来协助其他分布式步伐完成一些功能。
2.HBase依赖ZK。安装HBase的时候,可以独立下载ZK来部署ZK,也可以用HBase自带的ZK


(3)客户端读写HBase的基本流程



三、Hadoop 集群启动

(1)启动下令与节点查抄

        在终端输入start-all.sh
下令启动 Hadoop 集群,顺利启动了 NameNode、DataNode、Secondary NameNode、ResourceManager 和 NodeManager 等节点。通过jps
下令查看各节点历程,确保所有节点正常运行。
  1. start-all.sh
复制代码
运行代码:


查抄所有节点正常运行:

  1. jps
复制代码
运行代码:





(2)遇到的问题及办理

权限问题:最初启动时,部分节点因权限不足无法正常启动。通过查抄文件权限,利用chmod下令赋予相干用户执行权限后办理。
设置错误:设置文件中某些参数设置错误,导致节点间通信异常。仔细查抄hadoop-env.sh、core-site.xml、hdfs-site.xmlyarn-site.xml等设置文件,修正错误参数后,集群乐成启动。
(3)总结与思考

       启动 Hadoop 集群过程中,对各节点功能和相互关系有了更深入明白。NameNode 负责管理文件系统定名空间,DataNode 存储实际数据块,Secondary NameNode 辅助 NameNode 进行元数据备份,ResourceManager 负责资源管理,NodeManager 负责容器管理。合理设置各节点参数对集群性能至关重要。
四、Zookeeper 集群搭建

(1)解压与设置环境变量

1.解压 Zookeeper 安装包:利用tar -zxvf apache-zookeeper-3.5.7-bin.tar.gz -C /usr/local下令将 Zookeeper 解压到指定目次。
  1. tar -zxvf apache-zookeeper-3.5.7-bin.tar.gz -C /usr/local
复制代码
运行代码:


(由于输出太多,仅截图部分压缩代码)
进入local目次
  1. cd /usr/local/
复制代码
运行代码:

查看local目次文件
  1. ll
复制代码
  1. date
复制代码
运行代码:


进入/apache-zookeeper-3.5.7-bin目次
  1. cd apache-zookeeper-3.5.7-bin/
复制代码
  1. pwd
复制代码
运行代码:



2.设置环境变量
/etc/profile文件中添加以下内容:
  1. vi /etc/profile
复制代码
  1. export ZK_HOME=/usr/local/apache-zookeeper-3.5.7-bin
  2. export PATH=$PATH:$ZK_HOME/bin
复制代码
运行代码:


3.设置环境变量
(2)设置文件修改

1.复制设置文件:进入/usr/local/apache-zookeeper-3.5.7-bin/conf目次,复制zoo_sample.cfgzoo.cfg
  1. cd/usr/local/apache-zookeeper-3.5.7-bin/conf
复制代码
运行代码:

查看conf目次文件
  1. ll
复制代码
运行代码:

zoo_sample.cfg的文件复制一份,并定名为zoo.cfg
  1. cp zoo_sample.cfg zoo.cfg
复制代码
运行代码:



2.编辑 zoo.cfg 文件:修改tickTime、initLimit、syncLimit、dataDir、clientPort等参数,并添加集群节点信息,如server.1=wmy077028:2888:3888、server.2=wmy2077028:2888:3888、server.3=wmy3077028:2888:3888(具体环境具体分析)。
  1. vi zoo.cfg
复制代码
  1. /usr/local/apache-zookeeper-3.5.7-bin/dataDir
复制代码
运行代码:


(3)创建 myid 文件

        在dataDir目次下创建myid文件,分别在三台机器上设置不同的值(1、2、3),用于标识集群中的不同节点。
切换到apache-zookeeper-3.5.7-bin目次,并查看当前目次文件
  1. cd ..
复制代码
  1. ll
复制代码
运行代码:



在当前工作目次下创建一个名为dataDir的目次

  1. mkdir dataDir
复制代码
运行代码:


切换到 dataDir目次下

  1. cd dataDir/
复制代码
运行代码:


创建并进入myid文件,内容为1(其他两个历程分别编辑为2,3)

  1. vi myid
复制代码
运行代码:



查看三个历程:

  1. cd /usr/local/
  2. apache-zookeeper-3.5.7-bin/dataDir/cat myid
复制代码
运行代码:

第一个历程:


第二个历程:


第三个历程:


(4)分发 Zookeeper 到其他节点

      利用scp -r apache-zookeeper-3.5.7-bin/ root@wmy2077028:/usr/local/和scp -r apache-zookeeper-3.5.7-bin/ root@wmy3077028:/usr/local/下令将 Zookeeper 分发到其他节点。
  1. scp /etc/profile root@wmy2077028:/etc
  2. scp /etc/profile root@wmy3077028:/etc
复制代码
运行代码:

切换到apache-zookeeper-3.5.7-bin目次,并查看当前目次文件
  1. cd
复制代码
  1. ll
复制代码
运行代码:


分发到其他节点
  1. scp -r apache-zookeeper-3.5.7-bin/ root@wmy2077028:/usr/local/
  2. scp -r apache-zookeeper-3.5.7-bin/ root@wmy3077028:/usr/local/
复制代码
运行代码:


(由于输出太多,仅截图部传输代码)
(5)启动 Zookeeper 集群

在每台机器上执行
  1. zkServer.sh status
复制代码
启动 Zookeeper 服务,通过zkServer.sh status
查看节点状态,确保一台为 leader两台为 follower
运行代码:





(6)遇到的问题及办理

1.myid 文件设置错误:节点启动失败,查抄发现myid文件内容设置错误,重新设置正确的值后办理。
2.防火墙问题:节点间无法通信,关闭防火墙后恢复正常。
(7)总结与思考

       搭建 Zookeeper 集群需留意设置文件准确性和节点间通信。zoo.cfg文件参数影响集群性能和可靠性,如tickTime控制心跳隔断,initLimit和syncLimit影响节点同步。myid文件标识节点,确保其唯一性和正确性。
五、Zookeeper 客户端操作

(1)连接到 Zookeeper 集群

       利用zkCli.sh下令连接到当地 Zookeeper 服务(localhost:2181),连接乐成后表现客户端环境信息和欢迎信息。
  1. zkCli.sh
复制代码
运行代码:

(由于输出太多,仅截图部分代码)
(2)数据操作示例

1.查看Zookeeper节点:利用ls /下令查看Zookeeper节点。
  1. ls /
复制代码
2.创建节点:利用create /mynode1下令创建一个名为mynode1的节点。
  1. create /mynode1
复制代码
3.设置节点数据:利用set /mynode1 'value of my node1'为节点设置数据。
  1. set /mynode1 'value of my node1'
复制代码
4.获取节点数据:利用get /mynode1获取节点数据,验证数据设置是否乐成。
  1. get /mynode1
复制代码
5.查看节点列表:利用ls下令查看当前节点下的子节点列表,表现[mynode1, zookeeper]
运行代码:

(3)总结与思考

       通过 Zookeeper 客户端操作,了解其基本数据模型和操作方法。Zookeeper 提供简朴易用接口,可用于分布式系统和谐和设置管理。在实际应用中,可用于实现分布式锁、服务发现、设置中央等功能。
       这次 Hadoop 和 Zookeeper 集群搭建过程布满挑战,但也让我对大数据技能有了更深入明白。盼望我的履历能对大家有所资助,欢迎交流讨论。



免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

x
回复

使用道具 举报

0 个回复

倒序浏览

快速回复

您需要登录后才可以回帖 登录 or 立即注册

本版积分规则

铁佛

金牌会员
这个人很懒什么都没写!

标签云

快速回复 返回顶部 返回列表