苏真文 發表於 2023-8-14 00:00:00

Linux下ZooKeeper分布式集群安装教程

<p>
        ZooKeeper 就是动物园管理员的意思,它是用来管理 Hadoop(大象)、Hive(蜜蜂)、pig(小猪)的管理员,Apache Hbase、Apache Solr、Dubbo 都用到了 ZooKeeper,其实就是一个集群管理工具,是集群的入口。ZooKeeper 是一个分布式的、开源的程序协调服务,是 Hadoop 项目下的一个子项目。ZooKeeper 主要应用场景包括集群管理(主从管理、负载均衡、高可用的管理)、配置文件的集中管理、分布式锁、注册中心等。实际项目中,为了保证高可用,ZooKeeper 都是以分布式集群的方式进行安装的,至少需要三个节点,下面具体来看下。</p>
<p>
        这里 Linux 选择 CentOS 7.2。</p>
<div class="jb51code">
        <div>
                <div class="syntaxhighlighterbash" id="highlighter_131075">
                        <div class="toolbar">
                                <span>?</span>
</div>
                        <table border="0" cellpadding="0" cellspacing="0"><tbody><tr>
<td class="gutter">
                                                        <div class="line number1 index0 alt2">
                                                                1</div>
                                                        <div class="line number2 index1 alt1">
                                                                2</div>
                                                        <div class="line number3 index2 alt2">
                                                                3</div>
                                                        <div class="line number4 index3 alt1">
                                                                4</div>
                                                        <div class="line number5 index4 alt2">
                                                                5</div>
                                                        <div class="line number6 index5 alt1">
                                                                6</div>
                                                        <div class="line number7 index6 alt2">
                                                                7</div>
                                                </td>
                                                <td class="code">
                                                        <div class="container">
                                                                <div class="line number1 index0 alt2">
                                                                        <code class="bash comments"># wget -P /usr/local http://mirror.bit.edu.cn/apache/zookeeper/zookeeper-3.4.10/zookeeper-3.4.10.tar.gz</code>
</div>
                                                                <div class="line number2 index1 alt1">
                                                                        <code class="bash comments"># cd /usr/local</code>
</div>
                                                                <div class="line number3 index2 alt2">
                                                                        <code class="bash comments"># tar -zxvf zookeeper-3.4.10.tar.gz</code>
</div>
                                                                <div class="line number4 index3 alt1">
                                                                        <code class="bash comments"># cd zookeeper-3.4.10</code>
</div>
                                                                <div class="line number5 index4 alt2">
                                                                        <code class="bash comments"># mkdir data</code>
</div>
                                                                <div class="line number6 index5 alt1">
                                                                        <code class="bash comments"># mkdir logs</code>
</div>
                                                                <div class="line number7 index6 alt2">
                                                                        <code class="bash comments"># vim /etc/rc.d/rc.local  //配置开启自启动</code>
</div>
                                                        </div>
                                                </td>
                                        </tr></tbody></table>
</div>
        </div>
        <div class="codetool" id="codetool">
                <div class="code_n">
                        <textarea></textarea>
</div>
        </div>
</div>
<p>
        追加如下配置即可:</p>
<div class="jb51code">
        <div>
                <div class="syntaxhighlighterbash" id="highlighter_172502">
                        <div class="toolbar">
                                <span>?</span>
</div>
                        <table border="0" cellpadding="0" cellspacing="0"><tbody><tr>
<td class="gutter">
                                                        <div class="line number1 index0 alt2">
                                                                1</div>
                                                        <div class="line number2 index1 alt1">
                                                                2</div>
                                                </td>
                                                <td class="code">
                                                        <div class="container">
                                                                <div class="line number1 index0 alt2">
                                                                        <code class="bash functions">export</code> <code class="bash plain">JAVA_HOME=</code><code class="bash plain">/usr/java/jdk</code>
</div>
                                                                <div class="line number2 index1 alt1">
                                                                        <code class="bash plain">/usr/local/zookeeper-3</code><code class="bash plain">.4.10</code><code class="bash plain">/bin/zkServer</code><code class="bash plain">.sh start</code>
</div>
                                                        </div>
                                                </td>
                                        </tr></tbody></table>
</div>
        </div>
        <div class="codetool" id="codetool">
                <div class="code_n">
                        <textarea></textarea>
</div>
        </div>
</div>
<p>
        我们在三台不同的服务器上各部署一个 ZooKeeper 进程,以构成一个 ZooKeeper 集群。三个 ZooKeeper 进程均使用相同的 zoo.cfg 配置:</p>
<div class="jb51code">
        <div>
                <div class="syntaxhighlighterbash" id="highlighter_784428">
                        <div class="toolbar">
                                <span>?</span>
</div>
                        <table border="0" cellpadding="0" cellspacing="0"><tbody><tr>
<td class="gutter">
                                                        <div class="line number1 index0 alt2">
                                                                1</div>
                                                        <div class="line number2 index1 alt1">
                                                                2</div>
                                                        <div class="line number3 index2 alt2">
                                                                3</div>
                                                </td>
                                                <td class="code">
                                                        <div class="container">
                                                                <div class="line number1 index0 alt2">
                                                                        <code class="bash comments"># cd /usr/local/zookeeper-3.4.10/conf</code>
</div>
                                                                <div class="line number2 index1 alt1">
                                                                        <code class="bash comments"># cp zoo_sample.cfg zoo.cfg             //拷贝配置文件</code>
</div>
                                                                <div class="line number3 index2 alt2">
                                                                        <code class="bash comments"># vim zoo.cfg</code>
</div>
                                                        </div>
                                                </td>
                                        </tr></tbody></table>
</div>
        </div>
        <div class="codetool" id="codetool">
                <div class="code_n">
                        <textarea></textarea>
</div>
        </div>
</div>
<p>
        修改配置如下:</p>
<div class="jb51code">
        <div>
                <div class="syntaxhighlighterbash" id="highlighter_287132">
                        <div class="toolbar">
                                <span>?</span>
</div>
                        <table border="0" cellpadding="0" cellspacing="0"><tbody><tr>
<td class="gutter">
                                                        <div class="line number1 index0 alt2">
                                                                1</div>
                                                        <div class="line number2 index1 alt1">
                                                                2</div>
                                                        <div class="line number3 index2 alt2">
                                                                3</div>
                                                        <div class="line number4 index3 alt1">
                                                                4</div>
                                                        <div class="line number5 index4 alt2">
                                                                5</div>
                                                        <div class="line number6 index5 alt1">
                                                                6</div>
                                                        <div class="line number7 index6 alt2">
                                                                7</div>
                                                        <div class="line number8 index7 alt1">
                                                                8</div>
                                                        <div class="line number9 index8 alt2">
                                                                9</div>
                                                        <div class="line number10 index9 alt1">
                                                                10</div>
                                                </td>
                                                <td class="code">
                                                        <div class="container">
                                                                <div class="line number1 index0 alt2">
                                                                        <code class="bash comments"># 配置存储快照文件的目录</code>
</div>
                                                                <div class="line number2 index1 alt1">
                                                                        <code class="bash plain">dataDir=</code><code class="bash plain">/usr/local/zookeeper-3</code><code class="bash plain">.4.10</code><code class="bash plain">/data</code>
</div>
                                                                <div class="line number3 index2 alt2">
                                                                        <code class="bash plain">dataLogDir=</code><code class="bash plain">/usr/local/zookeeper-3</code><code class="bash plain">.4.10</code><code class="bash plain">/logs</code>
</div>
                                                                <div class="line number4 index3 alt1">
                                                                        <code class="bash comments"># zk服务进程监听的TCP端口</code>
</div>
                                                                <div class="line number5 index4 alt2">
                                                                        <code class="bash plain">clientPort=2181</code>
</div>
                                                                <div class="line number6 index5 alt1">
                                                                        <code class="bash comments"># 2888:ZooKeeper服务之间通信的端口,3888:ZooKeeper与其他应用程序通信的端口</code>
</div>
                                                                <div class="line number7 index6 alt2">
                                                                        <code class="bash comments"># server.1:表示这是第几号服务器</code>
</div>
                                                                <div class="line number8 index7 alt1">
                                                                        <code class="bash plain">server.1=192.168.20.11:2888:3888</code>
</div>
                                                                <div class="line number9 index8 alt2">
                                                                        <code class="bash plain">server.2=192.168.20.12:2888:3888</code>
</div>
                                                                <div class="line number10 index9 alt1">
                                                                        <code class="bash plain">server.3=192.168.20.13:2888:3888</code>
</div>
                                                        </div>
                                                </td>
                                        </tr></tbody></table>
</div>
        </div>
        <div class="codetool" id="codetool">
                <div class="code_n">
                        <textarea></textarea>
</div>
        </div>
</div>
<p>
        然后在三台服务器 dataDir 目录下,分别创建一个 myid 文件,其内容分别为1,2,3。然后分别在这三台机器上启动 ZooKeeper 进程,这样我们便将 ZooKeeper 集群启动了起来。如下:</p>
<div class="jb51code">
        <div>
                <div class="syntaxhighlighterbash" id="highlighter_676616">
                        <div class="toolbar">
                                <span>?</span>
</div>
                        <table border="0" cellpadding="0" cellspacing="0"><tbody><tr>
<td class="gutter">
                                                        <div class="line number1 index0 alt2">
                                                                1</div>
                                                        <div class="line number2 index1 alt1">
                                                                2</div>
                                                        <div class="line number3 index2 alt2">
                                                                3</div>
                                                </td>
                                                <td class="code">
                                                        <div class="container">
                                                                <div class="line number1 index0 alt2">
                                                                        <code class="bash comments"># cd /usr/local/zookeeper-3.4.10/data</code>
</div>
                                                                <div class="line number2 index1 alt1">
                                                                        <code class="bash comments"># echo 1 &gt;&gt;myid                    //创建myid文件并写入1</code>
</div>
                                                                <div class="line number3 index2 alt2">
                                                                        <code class="bash comments"># /usr/local/zookeeper-3.4.10/bin/zkServer.sh start  //后台启动ZooKeeper</code>
</div>
                                                        </div>
                                                </td>
                                        </tr></tbody></table>
</div>
        </div>
        <div class="codetool" id="codetool">
                <div class="code_n">
                        <textarea></textarea>
</div>
        </div>
</div>
<p>
        还有一些其他命令如下:</p>
<div class="jb51code">
        <div>
                <div class="syntaxhighlighterbash" id="highlighter_73145">
                        <div class="toolbar">
                                <span>?</span>
</div>
                        <table border="0" cellpadding="0" cellspacing="0"><tbody><tr>
<td class="gutter">
                                                        <div class="line number1 index0 alt2">
                                                                1</div>
                                                        <div class="line number2 index1 alt1">
                                                                2</div>
                                                        <div class="line number3 index2 alt2">
                                                                3</div>
                                                </td>
                                                <td class="code">
                                                        <div class="container">
                                                                <div class="line number1 index0 alt2">
                                                                        <code class="bash comments"># /usr/local/zookeeper-3.4.10/bin/zkServer.sh stop   //关闭ZooKeeper</code>
</div>
                                                                <div class="line number2 index1 alt1">
                                                                        <code class="bash comments"># /usr/local/zookeeper-3.4.10/bin/zkServer.sh status  //查看服务状态</code>
</div>
                                                                <div class="line number3 index2 alt2">
                                                                        <code class="bash comments"># /usr/local/zookeeper-3.4.10/bin/zkServer.sh start-foreground  //前台启动</code>
</div>
                                                        </div>
                                                </td>
                                        </tr></tbody></table>
</div>
        </div>
        <div class="codetool" id="codetool">
                <div class="code_n">
                        <textarea></textarea>
</div>
        </div>
</div>
<p>
        以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。</p>
<p>
        原文链接:http://blog.csdn.net/smartbetter/article/details/53083816</p>
頁: [1]
查看完整版本: Linux下ZooKeeper分布式集群安装教程