zookeeper简易配置及hadoop高可用安装

zookeeper介绍
    是一个分布式服务的协调服务,集群半数以上可用(一般配置为奇数台),
    
    
    快速选举机制:当集群中leader挂掉,所有小弟会投票选举出新的leader。
    快速同步数据:zk将会存储小量用于服务做协调的数据。
    
    标准文件系统用于存储大量数据;而zk存储小量协调数据
    标准文件系统文件就是文件,目录就是目录;zk中文件既是目录。


1.zookeeper的安装与启动
    
    解压并配置环境变量
    配置./conf/zoo.cfg
        tickTime=2000  zk中时间单元
        initLimit=5    小弟连接老大的超时时间
        syncLimit=2    同步数据的超时时间
        dataDir=/home/zkdata
        clientPort=2181
        server.100=hadoop01:2888:3888  
        server.200=hadoop02:2888:3888
        server.300=hadoop03:2888:3888
        100(x)是server的id,2888是各个服务的通信端口,3888选举端口

    分发到每一台服务器中
    创建数据目录,并创建myid文件
        mkdir /home/zkdata
        echo 100 > /home/zkdata/myid

    启动zk的服务:
        zkServer.sh status/start/stop [./conf/zoo.cfg]

    连接zk的集群:
        zkCli.sh [-server hadoop02:2181]
        
        
2.zk的简单使用
    增 : create  /name 'sand'          创建永久节点
                create -s /name 'sand'         创建临时顺序节点
                create -e /name 'sand'         创建临时节点
                get该节点信息:ephemeralOwne不为0 则是临时节点,其值为SessionID
    删:    delete  /name                         删除无子节点的节点
                rmr /name/sex                         递归删除
    改:    set /name 'me'                更新节点
    查:  ls /name/                                    查看name节点下节点信息
                get /name                                    查看name节点数据
                
                
3.hadoop高可用配置
    参照官网完成集群XML文件配置
    
    第一次hdfs的高可用流程:
        先启动zk集群(格式化zkfc之前必须要启动zk集群)
        zkServer.sh start
        
        启动journalnode集群: (不启动namenode无法格式化)
        hadoop-daemons.sh start journalnode

        选择一台namenode进行格式化,然后并启动
        hdfs namenode -format
        hadoop-daemon.sh start namenode
        
        再在另一台namenode的服务器上进行拉去元数据操作(手动远程copy)
        hdfs namenode -bootstrapStandby
        
        格式化zkfc
        hdsf zkfc -formatZK

        启动hdfs的模块:
        start-dfs.sh

        测试是否自动切换namenode:
   

原文地址:https://www.cnblogs.com/OnTheWay-0518/p/9812767.html