• ZooKeeper完全分布式安装与配置


    Apache ZooKeeper是一个为分布式应用所设计开源协调服务,其设计目是为了减轻分布式应用程序所承担的协调任务。可以为用户提供同步、配置管理、分组和命名服务。

    1.环境说明

    在三台装有centos6.5(64位)服务器上安装ZooKeeper,官网建议至少3个节点,本次实验3台

    (主机数:3(要求3+,且必须是奇数,因为ZooKeeper选举算法))。

    需要提前安装jdk,选择版本是jdk-8u91-linux-x64。

     
    2.配置主机名和ip映射关系
     

    ZooKeeper集群所有结点作为一个整体对分布式应用提供服务,因此需要各个节点实现互连,就要知道其它节点主机和ip的映射关系。在每个节点上配置/etc/hosts文件,添加如下:

    主机名 IP地址 JDK ZooKeeper myid
        1.8.0_11 server.1  1
        1.8.0_11 server.2  2
        1.8.0_11 server.3  3
    
    

    1)下载ZooKeeper,选择稳定版,即stable

    2)解压 
    tar -zxvf zookeeper-3.4.8.tar.gz
    这里路径为 /home/hadoop/zookeeper-3.4.6
    3)修改/etc/profile,添加ZooKeeper环境变量 
    /home/hadoop/zookeeper-3.4.8
    
    4)新建zoo.cfg并修改 
    
    cp conf/zoo_sample.cfg conf/zoo.cfg
    
    
    # The number of milliseconds of each tick
    
    3. 参数说明:  

    ①tickTime:心跳时间,毫秒为单位。

    ②initLimit:这个配置项是用来配置 Zookeeper 接受客户端(这里客户端不是用户连接 Zookeeper服务器的客户端,而是 Zookeeper 服务器集群中连接到 Leader 的 Follower 服务器)初始化连接时最长能忍受多少个心跳时间间隔数。当已经超过 10 个心跳的时间(也就是 tickTime)长度后 Zookeeper 服务器还没有收到客户端的返回信息,那么表明这个客户端连接失败。总的时间长度就是 10*2000=20 秒。

    ③syncLimit:这个配置项标识 Leader 与 Follower 之间发送消息,请求和应答时间长度,最长不能超过多少个 tickTime时间长度,总时间长度就是 5*2000=10 秒。

    ④dataDir:存储内存中数据库快照的位置。

    ⑤clientPort:监听客户端连接的端口

    ⑥server.A=B:C:D:其中 A 是一个数字,表示这个是第几号服务器;B 是这个服务器的 ip 地址;C 表示的是这个服务器与集群中的 Leader 服务器交换信息的端口;D 表示的是万一集群中的 Leader 服务器挂了,需要一个端口来重新进行选举,选出一个新的 Leader,而这个端口就是用来执行选举时服务器相互通信的端口。如果是伪集群的配置方式,由于 B 都是一样,所以不同的 Zookeeper 实例通信端口号不能一样,所以要给它们分配不同的端口号。

    5)dataDir目录下创建myid文件,将内容设置为上⑥中A值,用来标识不同的服务器。

    /home/hadoop/zookeeper-3.4.8/data/myid

    在节点配置的dataDir指定的目录下面,创建一个myid文件,里面内容为一个数字,用来标识当前主机,$ZOOKEEPER_HOME/conf/zoo.cfg文件中配置server.X,则myid文件中就输入这个数字X。(即在每个节点上新建并设置文件myid,其内容与zoo.cfg中

    id相对应)这里hadoop01节点为 1

    cd /home/hadoop/zookeeper-3.4.8/datatouch myid
    echo"1" > myid

    4.从master节点分发文件到其它

    1、在master节点的/home/hadoop/目录下

    scp -r zookeeper-3.4.6 hadoop@hadoop02:~/
    scp -r zookeeper-3.4.6 hadoop@hadoop03:~/
    scp -r data hadoop@hadoop02:~/zookeeper-3.4.8
    scp -r data hadoop@hadoop03:~/zookeeper-3.4.8

    2、在hadoop02节点的/home/hadoop/目录下

    vi ./zookeeper-3.4.8/data/myid

    修改为 2

    3、在hadoop03节点的/home/hadoop/目录下

    vi ./zookeeper-3.4.8/data/myid

    修改为 3

    1)各节点上启动 (这里启动顺序为 hadoop01 >  hadoop02 >  hadoop03 

    2)jps查看进程  
    QuorumPeerMain是zookeeper进程,说明启动正常。
    3)查看状态  
    4)停止ZooKeeper  
     
    注意事项:
    如果集群上同时安装了Hadoop、HBase、Zookeeper,需要注意三者之间有先后启动顺序:
    启动顺序:
    Hadoop——>Zookeeper——>HBase
    停止顺序
    HBase——>Zookeeper——>Hadoop
    
    

    启动集群

    首先启动hadoop(在hadoop01上start-all.sh),

    然后启动zookeeper集群(分别在三台机器上zkServer.sh  start;可以使用zkServer.sh status查看zk状态)。

    最后在hadoop01上启动hbase集群(start-hbase.sh)。

  • 相关阅读:
    Oracle varchar2最大支持长度(转)
    Java 内存溢出(java.lang.OutOfMemoryError)的常见情况和处理方式总结(转)
    Android java.net.SocketException四大异常解决方案
    Android 设定activity的进入和退出效果
    Android TabHost 动态修改图标或者动态改变标题
    Android TabHost中实现标签的滚动以及一些TabHost开发的奇怪问题
    Android 动态Tab分页效果
    Android ActionBar通过Tab进行不同的Fragment之间的交换
    Android 如何动态改变Actionbar上的item图标
    RGB颜色查询对照表
  • 原文地址:https://www.cnblogs.com/dtstack/p/10065353.html
Copyright © 2020-2023  润新知