Zookeeper 集群简单搭建

本文详细介绍了Zookeeper集群的搭建过程,并深入讲解了Hadoop-HDFS的存储模型,包括Block的线性切割、副本分散存储以及NameNode和DataNode的角色。同时,文章还探讨了NameNode的元数据管理,强调了其内存存储特点和持久化机制。最后,文章提到了Zookeeper中的Leader选举机制及其在集群中的作用。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

Zookeeper 集群搭建DC

Hadoop-HDFS

存储模型:字节
  • 文件线性切割(Block): 偏移量 offset(byte , 中文)
  • Block分散存储在集群节点中
  • 单一文件Bloack大小一致,文件与文件可以不一致
  • Block可以设置副本数,副本无序分散在不同的节点中
    • ​ 副本数不要超过节点数量
  • 文件上传可以设置Block大小和副本数(资源不够开辟的进程)
  • 已经上传的Block副本数可以调整,大小不变
  • (2.x 128Mb Blocks)
  • 只支持一次写入多次读取,同一时刻只有一个写入者
  • 可以append追加数据
架构模型:
  • 文件元数据MetaData 文件数据

    • 元数据
    • 数据本身
  • (主)NameNode节点保存文件元数据:单节点:单节点 posix

  • (从) DataNode节点保存文件Block数据:多节点

  • DataNode与NameNode保持心跳,提交Block列表

  • HdfsClient与NameNode交互元数据信息

  • HdfsClient与DataNode交互文件Block数据(CS)

  • DataNode利用服务器本地文件系统和存储数据块

    stat  anaconda.cfg  ---->相当于文件的信息
    

Hadoop

NameNode(NN)

  • 基于内存存储 【不会和磁盘发生交换(双向)】

    • 只存在内存中
    • 持久化(单向)

    NameNode主要功能

    ​ 接受客户端的读写服务

    ​ 收集DataNode汇报的Block列表信息

    NameNode保存metadata信息包括

    ​ 文件overship和permission

    ​ 文件大小,时间

    ​ (Block列表:Block偏移量)位置信息(持久化不存)

    ​ Block每副本位置(由DataNode上报)

    NamaNode的持久化
    • NameNode的metadata信息在启动后会加载到内存
    • metdata存储到磁盘文件名为“fsimage”(时点备份) 恢复快
    • Block位置信息不会保存到fsimage
    • edits记录对metadata的操作日志…>Redis 写的快
    • 二者之间产生的时间和过程?{format}

Zookeeper简单应用

zk角色有两种:leader 和 follower

leader选举机制

​ 为用户提供数据提供数据的注册 查询功能

​ 为用户提供数据节点的监听注册服务

​ 与用户之间保持心跳以感知用户的状态

​ 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=/usr/local/zookeeper-3.4.14/data
# the port at which the clients will connect
clientPort=2181
# Set to "0" to disable auto purge feature
#autopurge.purgeInterval=1
server.1=hadoop01:2888:3888
#server.2=hadoop02:2888:3888
#server.3=hadoop03:2888:3888
#rpc port  2888  leader select  3888

hadoop01设置 id

 echo   1 > data/myid 

分发到其他两台

scp -r  /usr/local/zookeeper-3.4.14 root@192.168.200.129:/usr/local/

设置其他两台id

hadoop02#:echo 2 > data/myid

hadoop03#:echo 3 > data/myid

查看集群状态

bin/zkServer.sh status

选举机制:

全新的集群:(id大的leader)

1.启动第一台,发出选举信息,选自己,观望状态

2.第二台启动,选自己,各得一票,重新选 id大的选

运行中的集群

选举标准:数据版本。逻辑时钟。id大的

1.逻辑时钟小的选举结果被忽略,重新选举

2.统一逻辑时钟,id大的为leader

3.数据id相同的情况下,id大的胜出

常用的操作

./zkcli.sh

连接其他的主机:
connect  hadoop02:2181
常见命令:
	[zk: localhost:2181(CONNECTED) 6] help
ZooKeeper -server host:port cmd args
        stat path [watch]
        set path data [version]
        ls path [watch]
        delquota [-n|-b] path
        ls2 path [watch]
        setAcl path acl
        setquota -n|-b val path
        history 
        redo cmdno
        printwatches on|off
        delete path [version]
        sync path
        listquota path
        rmr path
        get path [watch]
        create [-s] [-e] path data acl
        addauth scheme auth
        quit 
        getAcl path
        close 
        connect host:port
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值