Linux环境里部署ZooKeeper所属范畴是构建分布式系统关键基础步骤,ZooKeeper作为分布式协调服务,广泛用于达成配置管理、命名服务、分布式锁及集群管理,稳定可靠的安装跟配置过程,是后续所有高级功能得以顺畅运行的前提条件 ,本文会系统性介绍从准备环境直至验证服务的完整流程linux zookeeper 安装,确保你能够成功搭建起自身的ZooKeeper服务 。
Linux安装Zookeeper需要什么前置条件
在部署ZooKeeper之前,操作系统环境必须要保证符合要求,这是首要条件。其中一个首要条件是,Java运行环境要安装并且正确配置,因为ZooKeeper是基于Java开发而来的。推荐使用OpenJDK 8或者11等长期支持版本这样子的版本,可以通过命令行去检查Java版本是不是满足要求。除此之外,需要准备出一个拥有足够权限的Linux用户,避免直接运用root账户进行操作,以此来提升系统的安全性,。对于网络这一方面,务必要保证服务器相互之间的端口,像2181这个端口,还有2888这个端口,以及3888这个端口,都能够实现正常的通信状况。

需要对硬件以及系统资源展开评估,ZooKeeper自身资源消耗并不多,然而生产环境当中建议给JVM分配充足的内存,磁盘要有足够空间用以存放事务日志以及数据快照,并且建议采用性能较好的SSD硬盘来降低延迟,与此同时,要依据部署模式(单机或者集群)准备相应数量的服务器,还要提前规划好服务器的主机名或者IP地址,这对于后续的集群配置来讲尤为关键。
如何下载和准备Zookeeper安装包
初步来讲,得从Apache ZooKeeper网域或者国内镜像站点那儿去取得稳定版本的二进制发行包。一般而言会挑选带有-bin.tar.gz后边儿那个缀的压缩包linux windows,此压缩包涵盖着编译好了的可执行文件。下载完毕之后,运用tar命令解压到指定的安装目录,像/usr/local或者/opt的下面。解压好了以后,建议把目录重新命名为简洁的zookeeper,便利后续的管理以及设置环境变量。

在后续,是要去创建那运行时ZooKeeper必然所需的数据目录以及日志目录的。这些目录是不应该被放置于临时文件系统之中的,并且需要保证那个运行ZooKeeper的用户此目录对其是拥有读写权限的。之后呢,能够进入到ZooKeeper的配置目录当中,它的核心配置文件zoo.cfg一般常理下是处于conf/目录之下的。在初始的阶段,能够复制一份自带的模板配置文件,就像zoo_sample.cfg这样的,并把它重新命名为zoo.cfg,以此为接下来的详细配置做好先期的准备的。
Zookeeper的核心配置文件zoo.cfg怎么设置
以下是改写后的内容: zoo.cfg属于ZooKeeper服务端的主配置文件,其设定决定着服务的行为模式 ,最为基础的配置项存在dataDir ,它是用来指定存放内存数据库快照的目录路径的 ,必须要跟之前创建的数据目录维持一致 ,另外一个关键项是clientPort ,默认是2181 ,这是客户端连接服务端的端口号码 ,能够依据实际情形予以修改 ,但要保证防火墙已开放 。

倘若部署的是集群模式,那么配置会增添些许复杂性。要于配置文件里明确地罗列所有服务器的信息,呈现的格式为server.id=host:port1:port2。其中呀,id乃是每个服务器的独一无二标识,得跟对应服务器dataDir目录下myid文件的内容保持一致。port1被用于服务器之间的Leader选举通信,port2则被用于集群内部的数据同步。正确地配置这些参数呀,是集群能否成功启动以及稳定运行的具有决定性作用的因素。
如何在Linux上启动和停止Zookeeper服务
启动ZooKeeper服务是比较简便的,进入到安装目录的bin文件夹之中,执行zkServer.sh start这个脚本就行。此脚本会去读取先前配置好的zoo.cfg文件,并且会在后台启动服务。为了去验证服务是不是成功启动了,可以查看默认的日志文件,或者运用zkServer.sh status命令来检查服务的当前状态,它会显示该节点是处于standalone模式、leader还是follower 。
跟停止服务对应的脚本是zkServer.sh stop,此脚本会给ZooKeeper进程发送终止信号,进而让其安全地关闭。在集群环境里,建议逐个按顺序逐个先停止follower节点,最后再停止leader节点,这样能减少对集群服务的影响。除此以外,还能运用zkServer.sh restart命令来进行重启 。在生产环境方面,提议把启动命令设置到诸如systemd或者init.d之类的系统服务管理器里,达成开机时自动启动以及更为便利的服务管理 。

安装后怎样测试Zookeeper服务是否正常
当服务启动完毕之后node.js安装linux,最为基础的测试乃是运用ZooKeeper自身所携带的客户端命令行工具来展开连接这一操作。于安装目录的bin文件夹当中,去执行zkCli.sh -server localhost:2181,要是能够成功地进入到一个交互式命令行界面之内,那就意味着服务端大体上运行处于正常状态。在这个界面之中,可以试着去执行一些基础的命令,比如说运用ls /去查看根路径,或者运用create /test_node "data"去创建一测试节点。
会有对四字命令展开的更进一步测试,ZooKeeper给出了一系列以四字母英文单词构成的命令,借助往服务端口发送特定字符串这种方式来取得状态信息,像运用echo stat | nc localhost 2181能够获取服务器详细的运行状态以及客户端连接方面的信息。要是进行集群部署linux zookeeper 安装,那就得逐个连接到每个节点,去验证集群成员能不能正确分辨彼此,并且能不能选出Leader,这能够借助前面讲的status命令或者四字命令来加以确认。
Zookeeper常见安装问题及解决方法有哪些

在安装期间较常出现的一个情况是Java(编程语言)的用于运行的各类环境方面的问题。要是在开启启动程序的时候出现不正确提示表明查找不到相关Java(编程语言)或者属于版本存在差错的状况,那就得核查看JAVA_HOME环境变量能不能够被正确地进行设定放置,并且要确保在ZooKeeper启动所用到的脚本或conf/java.env配置(设定)文档里正确无误地将Java路径给明确指定出来。常出现的另外一个错误是绑定端口遭遇失败,这兴许是因端口被别的进程给占用了,能够运用netstat命令去查看端口占用的状况,且在zoo.cfg里更换clientPort亦或是解决端口冲突。
在集群配置情形里,myid文件配置出现差错乃是致使节点没办法加入集群的关键缘由。一定要保证处在每一台服务器dataDir目录之下的myid文件内容是一个数字,并且要和zoo.cfg里server.id的id完全相对应。除此之外,要是防火墙或者安全组策略没有开放2888以及3888端口,就会造成集群内部没办法进行通信,呈现出节点一直处于选举状态却无法选出Leader的状况。认真查看各服务器相互之间的网络连通状况,以及仔细审视防火墙规则,乃是处理这类问题的关键所在。
你于部署那用于分布式协调服务的ZooKeeper集群之际,所碰到的最为棘手难处理的问题究竟是啥?是配置出现差错、网络方面存在问题,又或者是因为某种用来限定资源的因素所引发的?欢迎在评论区域分享出你在运行过程中遭遇的那些令人头疼的经历以及相应的解决办法,如果这篇推文对你产生了帮助作用,也请为其点赞并且分享给更多有此种需求的人。
