zookeeper01 详解、安装与配置、集群

zookeeper
---------------
    协同服务系统。
    分布式系统协同处理。
    小集群.

 
配置完全分布式zk集群
---------------------
    1.挑选3台主机
        s201 ~ s203
    2.每台机器都安装zk
        tar
        环境变量
 
    3.配置zk配置文件
        s201 ~ s203
        [/soft/zk/conf/zoo.cfg]
        ...
        dataDir=/home/centos/zookeeper
 
        server.1=s201:2888:3888
        server.2=s202:2888:3888
        server.3=s203:2888:3888
 
    4.在每台主机的/home/centos/zookeeper中添加myid,内容分别是1,2,3
        [s201]
        $>echo 1 > /home/centos/zookeeper/myid
        [s202]
        $>echo 2 > /home/centos/zookeeper/myid
        [s203]
        $>echo 3 > /home/centos/zookeeper/myid
 
    5.启动服务器集群 
        $>zkServer.sh start
        ...
 
    6.查看每台服务器的状态
        $>zkServer.sh status
 
    7.修改zk的log目录
         
 
 
部署细节
----------------
    1.在jn节点分别启动jn进程
        $>hadoop-daemon.sh start journalnode
 
    2.启动jn之后,在两个NN之间进行disk元数据同步
        a)如果是全新集群,先format文件系统,只需要在一个nn上执行。
            [s201]
            $>hadoop namenode -format
         
        b)如果将非HA集群转换成HA集群,复制原NN的metadata到另一个nn.
            1.步骤一
                [s201]
                $>scp -r /home/centos/hadoop/dfs centos@s206:/home/centos/hadoop/
 
            2.步骤二
                在新的nn(未格式化的nn)上运行一下命令,实现待命状态引导。
                [s206]
                $>hdfs namenode -bootstrapStandby        //需要s201为启动状态,提示是否格式化,选择N.
                 
            3)在一个NN上执行以下命令,完成edit日志到jn节点的传输。
                $>hdfs namenode -initializeSharedEdits
                #查看s202,s203是否有edit数据.
 
            4)启动所有节点.
                [s201]
                $>hadoop-daemon.sh start namenode        //启动名称节点
                $>hadoop-daemons.sh start datanode       //启动所有数据节点
 
                [s206]
                $>hadoop-daemon.sh start namenode        //启动名称节点
             
 
HA管理
-----------------
    $>hdfs haadmin -transitionToActive nn1               //切成激活态
    $>hdfs haadmin -transitionToStandby nn1              //切成待命态
    $>hdfs haadmin -transitionToActive --forceactive nn2//强行激活
    $>hdfs haadmin -failover nn1 nn2                 //模拟容灾演示,从nn1切换到nn2
 
完全0开始部署hadoop HDFS的HA集群,使用zk实现自动容灾
-------------------------------------------------
    1.停掉hadoop的所有进程
         
    2.删除所有节点的日志和本地数据.
     
    3.改换hadoop符号连接为ha
 
    4.登录每台JN节点主机,启动JN进程.
        [s202-s204]
        $>hadoop-daemon.sh start journalnode
     
    5.登录其中一个NN,格式化文件系统(s201)
        $>hadoop namenode -format
 
    6.复制201目录的下nn的元数据到s206
        $>scp -r ~/hadoop/* centos@s206:/home/centos/hadoop
 
    7.在未格式化的NN(s206)节点上做standby引导.
        7.1)需要保证201的NN启动
            $>hadoop-daemon.sh start namenode
 
        7.2)登录到s206节点,做standby引导.
            $>hdfs namenode -bootstrapStandby
         
        7.3)登录201,将s201的edit日志初始化到JN节点。
            $>hdfs namenode -initializeSharedEdits
         
    8.启动所有数据节点.
        $>hadoop-daemons.sh start datanode
     
    9.登录到206,启动NN
        $>hadoop-daemon.sh start namenode
 
    10.查看webui
        http://s201:50070/
        http://s206:50070/
 
    11.自动容灾
        11.1)介绍
            自动容灾引入两个组件,zk quarum + zk容灾控制器(ZKFC)。
            运行NN的主机还要运行ZKFC进程,主要负责:
            a.健康监控
            b.session管理
            c.选举
        11.2部署容灾
            a.停止所有进程
                $>stop-all.sh
 
            b.配置hdfs-site.xml,启用自动容灾.
                [hdfs-site.xml]
                <property>
                    <name>dfs.ha.automatic-failover.enabled</name>
                    <value>true</value>
                </property>
 
            c.配置core-site.xml,指定zk的连接地址.
                <property>
                    <name>ha.zookeeper.quorum</name>
                    <value>s201:2181,s202:2181,s203:2181</value>
                </property>
 
            d.分发以上两个文件到所有节点。
         
    12.登录其中的一台NN(s201),在ZK中初始化HA状态
        $>hdfs zkfc -formatZK
     
    13.启动hdfs进程.
        $>start-dfs.sh
 
    14.测试自动容在(206是活跃节点)
        $>kill -9
 
配置RM的HA自动容灾
----------------------
    1.配置yarn-site.xml
        <property>
            <name>yarn.resourcemanager.ha.enabled</name>
            <value>true</value>
        </property>
        <property>
            <name>yarn.resourcemanager.cluster-id</name>
            <value>cluster1</value>
        </property>
        <property>
            <name>yarn.resourcemanager.ha.rm-ids</name>
            <value>rm1,rm2</value>
        </property>
        <property>
            <name>yarn.resourcemanager.hostname.rm1</name>
            <value>s201</value>
        </property>
        <property>
            <name>yarn.resourcemanager.hostname.rm2</name>
            <value>s206</value>
        </property>
        <property>
            <name>yarn.resourcemanager.webapp.address.rm1</name>
            <value>s201:8088</value>
        </property>
        <property>
            <name>yarn.resourcemanager.webapp.address.rm2</name>
            <value>s206:8088</value>
        </property>
        <property>
            <name>yarn.resourcemanager.zk-address</name>
            <value>s201:2181,s202:2181,s203:2181</value>
        </property>
     
    2.使用管理命令
        //查看状态
        $>yarn rmadmin -getServiceState rm1
        //切换状态到standby
        $>yarn rmadmin -transitionToStandby rm1
 
    3.启动yarn集群
        $>start-yarn.sh
 
    4.hadoop没有启动两个resourcemanager,需要手动启动另外一个
        $>yarn-daemon.sh start resourcemanager
 
    5.查看webui
 
    6.做容灾模拟.
        kill -9
 
 
hive的注意事项
------------------
    如果配置hadoop HA之前,搭建了Hive的话,在HA之后,需要调整路径信息.
    主要是修改mysql中的dbs,tbls等相关表。
 
Hbase
--------------------
    hadoop数据库,分布式可伸缩大型数据存储。
    用户对随机、实时读写数据。
    十亿行 x 百万列。
    版本化、非关系型数据库。
     
 
Feature
----------------
    Linear and modular scalability.                 //线性模块化扩展方式。
    Strictly consistent reads and writes.           //严格一致性读写
    Automatic and configurable sharding of tables   //自动可配置表切割
    Automatic failover support between RegionServers.   //区域服务器之间自动容在
    Convenient base classes for backing Hadoop MapReduce jobs with Apache HBase tables.     //
    Easy to use Java API for client access.         //java API
    Block cache and Bloom Filters for real-time queries //块缓存和布隆过滤器用于实时查询 
    Query predicate push down via server side Filters   //通过服务器端过滤器实现查询预测
    Thrift gateway and a REST-ful Web service that supports XML, Protobuf, and binary data encoding options //
    Extensible jruby-based (JIRB) shell                 //
    Support for exporting metrics via the Hadoop metrics subsystem to files or Ganglia; or via JMX          //可视化
    面向列数据库。
 
hbase存储机制
-------------------
    面向列存储,table是按row排序。
 
 
搭建hbase集群
---------------
    0.选择安装的主机
        s201 ~ s204
    1.jdk
        略
    2.hadoop
        略
    3.tar 
        略
    4.环境变量
        略
     
    5.验证安装是否成功
        $>hbase version
 
    5.配置hbase模式
        5.1)本地模式
            [hbase/conf/hbase-env.sh]
            EXPORT JAVA_HOME=/soft/jdk
 
            [hbase/conf/hbase-site.xml]
            ...
            <property>
                <name>hbase.rootdir</name>
                <value>file:/home/hadoop/HBase/HFiles</value>
            </property>
 
        5.2)伪分布式
            [hbase/conf/hbase-env.sh]
            EXPORT JAVA_HOME=/soft/jdk
 
            [hbase/conf/hbase-site.xml]
            <property>
                <name>hbase.cluster.distributed</name>
                <value>true</value>
            </property
            <property>
                <name>hbase.rootdir</name>
                <value>hdfs://localhost:8030/hbase</value>
            </property>
 
        5.3)完全分布式(必做)
            [hbase/conf/hbase-env.sh]
            export JAVA_HOME=/soft/jdk
            export HBASE_MANAGES_ZK=false
 
            [hbse-site.xml]
            <!-- 使用完全分布式 -->
            <property>
                <name>hbase.cluster.distributed</name>
                <value>true</value>
            </property>
 
            <!-- 指定hbase数据在hdfs上的存放路径 -->
            <property>
                <name>hbase.rootdir</name>
                <value>hdfs://s201:8020/hbase</value>
            </property>
            <!-- 配置zk地址 -->
            <property>
                <name>hbase.zookeeper.quorum</name>
                <value>s201:2181,s202:2181,s203:2181</value>
            </property>
            <!-- zk的本地目录 -->
            <property>
                <name>hbase.zookeeper.property.dataDir</name>
                <value>/home/centos/zookeeper</value>
            </property>
         
    6.配置regionservers
        [hbase/conf/regionservers]
        s202
        s203
        s204
     
    7.启动hbase集群(s201)
        $>start-hbase.sh
     
    8.登录hbase的webui
        http://s201:16010

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值