广州网站关键词优化推广,网站建设中模版,柳州网站推广,烘焙培训zookeeper#xff08;动物园管理员#xff09;是一个广泛应用于分布式服务提供协调服务Apache的开源框架 Zookeeper从设计模式角度来理解#xff1a;是一个基于观察者模式设计的分布式服务管理框架#xff0c;它 负责存储和管理大家都关心的数据 #xff0c;然 后 接受观察…zookeeper动物园管理员是一个广泛应用于分布式服务提供协调服务Apache的开源框架 Zookeeper从设计模式角度来理解是一个基于观察者模式设计的分布式服务管理框架它 负责存储和管理大家都关心的数据 然 后 接受观察者的注册 一旦这些数据的状态发生变化 Zookeeper 就将 负责通知已经在 Zookeeper上注册的那些观察者 做出相应的反应。 zookeeper集群特点
zookeeper集群由一个领导者Leader和多个跟随者Follower组成。集群中只要有半数以上节点存活Zookeeper集群就能正常服务。所 以Zookeeper适合安装奇数台服务器。 全局数据一致每个Server保存一份相同的数据副本Client无论连接到哪个Server数据都是一致的。 更新请求顺序执行来自同一个Client的更新请求按其发送顺序依次执行。数据更新原子性一次数据更新要么成功要么失败。实时性在一定时间范围内Client能读到最新数据。 本地模式安装 zookeeper由Java开发所有要运行zookeeper需要现安装jdk 安装jdk 可以下载免安装版jdk解压后配置一下环境变量即可 linux下的环境变量配置文件在 /etc/profile 然后在该文件下增加如下配置即可 export JAVA_HOME/usr/java/jdk-21/jdk-21.0.1 // 我自己的jdk目录 export JRE_HOME${JAVA_HOME}/jre export CLASSPATH.:${JAVA_HOME}/lib:${JRE_HOME}/lib export PATH${JAVA_HOME}/bin:$PATH 然后从新加载配置文件命令为 source /etc/profile 查看Java版本 则表示已成功安装Jdk 安装zookeeper 进入zookeeper官网找到下载页面下载-bin.tar.gz版即可如果没有想要的版本则可以在下载页面的存档连接中找到 Apache ZooKeeper 1、拷贝 apache-zookeeper-3.5.7-bin.tar.gz 安装包到 Linux 系统下 2、解压到指定目录 tar -zxvf apache-zookeeper-3.5.7- bin.tar.gz -C /mydata/zookeeper 3、修改名称 mv apache-zookeeper-3.5.7 -bin/ zookeeper-3.5.7 配置修改 1、将/mydata/zookeeper/zookeeper-3.5.7/conf这个路径下的 zoo_sample.cfg 修改为 zoo.cfg mv zoo_sample.cfg zoo.cfg 2、打开 zoo.cfg 文件修改 dataDir 配置的路径 修改为如下内容默认的tmp路径是临时路径一段时间后linux会自动删除里面的文件所有不适合正式环境使用 dataDir/mydata/zookeeper/zookeeper-3.5.7/data 3、在/mydata/zookeeper/zookeeper-3.5.7/这个目录上创建 data文件夹 mkdir data 操作zookeeper 1、启动 Zookeeper 在bin目录下使用 ./zkServer.sh start 启动zookeeper 2、 查看进程是否启动 3、查看状态 4、启动客户端 ./zkCli.sh 5、退出客户端 [zk: localhost:2181(CONNECTED) 0] quit 6、停止 Zookeeper .bin/zkServer.sh stop 配置参数解读 Zookeeper中的配置文件zoo.cfg中参数含义解读如下 1tickTime 2000通信心跳时间Zookeeper服务器与客户端心跳时间单位毫秒 2 initLimit 10 LF 初始通信时限 Leader和Follower初始连接时能容忍的最多心跳数tickTime的数量 3syncLimit 5LF同步通信时限 Leader和Follower之间通信时间如果超过syncLimit * tickTimeLeader认为Follwer死掉从服务器列表中删除Follwer。 4dataDir保存Zookeeper中的数据 注意默认的tmp目录容易被Linux系统定期删除所以一般不用默认的tmp目录。 5 clientPort 2181 客户端连接端口通常不做修改。 zookeeper集群搭建 1集群规划 首先准备三台linux虚拟机 可以安装一台然后使用vmware提供的克隆功能实现克隆克隆之前需要先关闭虚拟机。 克隆完成后 修改克隆机 IP 以下以 hadoop100hadoop100为我自己设置的主机名称 举例说明 1修改克隆虚拟机的静态 IP 改成 TYPEEthernet PROXY_METHODnone BROWSER_ONLYno BOOTPROTOstatic DEFROUTEyes IPV4_FAILURE_FATALno IPV6INITyes IPV6_AUTOCONFyes IPV6_DEFROUTEyes IPV6_FAILURE_FATALno IPV6_ADDR_GEN_MODEstable-privacy NAMEens33 UUIDd7919ed1-15af-49fe-9b4e-aad1456eed3d DEVICEens33 ONBOOTyes IPADDR192.168.127.100 # wangGuan GATEWAY192.168.127.2 # DNS DNS1192.168.127.2 2查看 Linux 虚拟机的虚拟网络编辑器编辑-虚拟网络编辑器-VMnet8 3查看 Windows 系统适配器 VMware Network Adapter VMnet8 的 IP 地址 4保证 Linux 系统 ifcfg-ens33 文件中 IP 地址、虚拟网络编辑器地址和 Windows 系统 VM8 网络 IP 地址在同一网段。 2修改克隆机主机名以下以 hadoop100 举例说明 1修改主机名称 vim /etc/hostname hadoop102 2配置 Linux 克隆机主机名称映射 hosts 文件打开/etc/host [roothadoop100 ~]# vim /etc/hosts 添加如下内容 192.168.127.100 hadoop100 192.168.127.101 hadoop101 192.168.127.102 hadoop102 192.168.127.103 hadoop103 192.168.127.104 hadoop104 192.168.127.105 hadoop105 192.168.127.106 hadoop106 192.168.127.107 hadoop107 192.168.127.108 hadoop108 192.168.127.132 qingmangmall 3重启克隆机 hadoop100 [roothadoop100 ~]# reboot 4修改 windows 的主机映射文件hosts 文件 a进入 C:\Windows\System32\drivers\etc 路径 b打开 hosts 文件并添加如下内容然后保存 192.168.127.100 hadoop100 192.168.127.101 hadoop101 192.168.127.102 hadoop102 192.168.127.103 hadoop103 192.168.127.104 hadoop104 192.168.127.105 hadoop105 192.168.127.106 hadoop106 192.168.127.107 hadoop107 192.168.127.108 hadoop108 192.168.127.132 qingmangmall 至此克隆的虚拟机就可以使用了 如果之前已有三台虚拟机使用如何快速将其中的某一个文件快速共享给其他机器呢 3集群分发 将zookeeper分发给其他服务 前提在 hadoop102 、 hadoop103 、 hadoop104 都已经创建好的/mydata目录 并且已经把这两个目录修改为 user:user(想要操作该目录的用户) [userhadoop102 ~]$ sudo chown user:user -R /mydata 在 hadoop102 上将 hadoop102 中 /mydata/zookeeper 目录拷贝到 hadoop103 上。 [user hadoop102 ~]$ scp -r /mydata/zookeeper userhadoop103:/mydata 其他服务器以此类推 至此三台服务器就都有了zookeeper服务 想要启用zookeeper集群需要在 /mydata/zookeeper/zookeeper-3.5.7/data 目录下创建 一个 myid 的文件。 在文件中添加与 server 对应的编号注意上下不要有空行左右不要有空格这里我使用了linux机器IP的最后三位当作id号 100 注意添加 myid 文件一定要在 Linux 里面创建在 notepad 里面很可能乱码 3 拷贝配置好的 zookeeper 到其他机器上 scp -r /mydata/zookeeper/zookeeper-3.5.7/data userhadoop103:/mydata/zookeeper/zookeeper-3.5.7 配置zoo.cfg文件 1 重命名 /opt/module/zookeeper-3.5.7/conf 这个目录下的 zoo_sample.cfg 为 zoo.cfg [userhadoop102 conf]$ mv zoo_sample.cfg zoo.cfg 2 打开 zoo.cfg 文件 [userhadoop102 conf]$ vim zoo.cfg # 修改数据存储路径配置 dataDir/opt/module/zookeeper-3.5.7/zkData # 增加如下配置 #######################cluster########################## server.100hadoop100:2888:3888 server.103hadoop103:2888:3888 server.132qingmangmall:2888:3888 3 配置参数解读 server.AB:C:D 。 A 是一个数字表示这个是第几号服务器 集群模式下配置一个文件 myid 这个文件在 dataDir 目录下这个文件里面有一个数据 就是 A 的值 Zookeeper 启动时读取此文件拿到里面的数据与 zoo.cfg 里面的配置信息比 较从而判断到底是哪个 server 。 B 是这个服务器的地址 C 是这个服务器 Follower 与集群中的 Leader 服务器交换信息的端口 D 是万一集群中的 Leader 服务器挂了需要一个端口来重新进行选举选出一个新的 Leader 而这个端口就是用来执行选举时服务器相互通信的端口。 4 同步 zoo.cfg 配置文件 集群操作 1 分别启动 Zookeeper [userhadoop100 zookeeper-3.5.7]$ bin/zkServer.sh start [userhadoop103 zookeeper-3.5.7]$ bin/zkServer.sh start [userqingmangmall zookeeper-3.5.7]$ bin/zkServer.sh start 2 查看状态 [userhadoop100 zookeeper-3.5.7]# bin/zkServer.sh status JMX enabled by default Using config: /opt/module/zookeeper-3.5.7/bin/../conf/zoo.cfg Mode: follower [userhadoop103 zookeeper-3.5.7]# bin/zkServer.sh status JMX enabled by default Using config: /opt/module/zookeeper-3.5.7/bin/../conf/zoo.cfg Mode: leader [userqingmangmall zookeeper-3.5.7]# bin/zkServer.sh status JMX enabled by default Using config: /opt/module/zookeeper-3.5.7/bin/../conf/zoo.cfg Mode: follower 附录 1)创建用户 并设置文件所属组 可以使用如下操作创建用户 [roothadoop100 ~]# useradd user [roothadoop100 ~]# passwd user 配置 user用户具有 root 权限方便后期加 sudo 执行 root 权限的命令 [roothadoop100 ~]# vim /etc/sudoers 修改 /etc/sudoers 文件在 %wheel 这行 下面添加一行如下所示 ## Allow root to run any commands anywhere root ALL(ALL) ALL ## Allows people in group wheel to run all commands % wheel ALL(ALL) ALL user ALL(ALL) NOPASSWD:ALL 注意 user 这一行不要直接放到 root 行下面因为所有用户都属于 wheel 组你先 配置了 user 具有免密功能但是程序执行到%wheel 行时该功能又被覆盖回需要 密码。所以 user 要放到%wheel 这行下面。 在根目录 下创建文件夹并修改所属主和所属组 mkdir /mydata 修改 mydata文件夹的所有者和所属组均为 user 用户 [roothadoop100 ~]# chown user:user /mydata 查看 /mydata文件夹的所有者和所属组可以发现所属主已改为自己设置的用户了 2scpsecure copy安全拷贝 1 scp 定义 scp 可以实现服务器与服务器之间的数据拷贝。 from server1 to server2 2 基本语法 scp -r $pdir/$fname $user$host:$pdir/$fname 命令 递归 要拷贝的文件路径/ 名称 目的地用户 主机 : 目的地路径 / 名称 3rsync 远程同步工具 rsync 主要用于备份和镜像。具有速度快、避免复制相同内容和支持符号链接的优点。 rsync 和 scp 区别 用 rsync 做文件的复制要比 scp 的速度快 rsync 只对差异文件做更 新。 scp 是把所有文件都复制过去。 1 基本语法 rsync -av $pdir/$fname $user$host:$pdir/$fname 命令 选项参数 要拷贝的文件路径 / 名称 目的地用户 主机 : 目的地路径 / 名称 选项参数说明 选项 功能 -a 归档拷贝 -v 显示复制过程