zoukankan      html  css  js  c++  java
  • hbase 部署

     HBase 是一个分布式的, 面向列的, 能存储并处理海量数据存储的非关系型开源nosql 数据库, 物理结构存储结构(k-v)

    Hbase 强读写一致, 但是不是 最终一致性的数据存储, 这使得它非常适合高速的计算聚合,能够对大型数据提供随机,实时的读写访问

    HBase适应场景: 对象存储, 时序数据, 推荐画像, 时空数据, 在线报表查询, 消息/订单, 朋友圈等

    HBase 体系架构

    1个多个master 服务器(主备)

    多个regionserver服务器

    zookeeper服务器

    master服务器负责

    1. 集群管理节点, 负责维护表结构(DDL  create drop  alter) ,不负责存储数据

    2. 控制regionserver的故障转移, 监控regionserver状态, 负责分配regions 到 regionserver

    3. 如果所有的master 都宕机, 仍然可以查询,存储 删除数据,但是不能新建表

    reginserver 服务器:

    1. 数据存储节点, 数据存储在HDFS中

    2.负责响应用户I/O请求(get, put, delete), 实时向master 报告数据存储信息

    3. 管理region的切分与合并

    hbase 分为 HMaster 与 HRegionServer 

    230.121     namenode1   HMaster    resourcemanager  zkfc

    230.122     namenode2  HMaster    resourcemanager   zkfc

    230.123     datanode1     HRegionServer     zk      nodemanager   journalnode

    230.124     datanode2     HRegionServer     zk      nodemanager   journalnode

    230.125     datanode3    HRegionServer      zk      nodemanager   journalnode

    下载:

     wget https://mirrors.bfsu.edu.cn/apache/hbase/2.2.6/hbase-2.2.6-bin.tar.gz

    解压

    [hadoop@namenode1 tools ]$ tar -zxvf hbase-2.2.6-bin.tar.gz
    [hadoop@namenode1 tools ]$ mv hbase
    -2.2.6 ../
    [hadoop@namenode1 tools ]$ cd /data/
    [hadoop@namenode1 data  ]$ ln -s hbase-2.2.6 hbase

    需要修改配置文件

    hbase-env.sh
    hbase-site.xml
    regionservers
    backup-masters 默认不存在,手动创建

    hbase-env.sh

    #注释掉,使用G1
    #export HBASE_OPTS="$HBASE_OPTS -XX:+UseConcMarkSweepGC"
    
    export JAVA_HOME=/data/jdk
    #关闭自带的zk
    export HBASE_MANAGES_ZK=false
    export HADOOP_home=/data/hadoop
    
    export HBASE_MASTER_OPTS="-server -Xms1G -Xmx1G -Xmn400m -Xss228k -XX:+UseG1GC -XX:G1ReservePercent=25 -XX:InitiatingHeapOccupancyPercent=30 -XX:+DisableExplicitGC -XX:+HeapDumpOnOutOfMemoryError -XX:HeapDumpPath=/data/logs/hadoop -XX:ErrorFile=/data/logs/hadoop/hs_err_pid%p.log -XX:+PrintGCDetails -XX:+PrintGCDateStamps -XX:+PrintTenuringDistribution -XX:+PrintGCApplicationStoppedTime -Xloggc:/data/logs/hadoop/gc.log -XX:+UseGCLogFileRotation -XX:NumberOfGCLogFiles=32 -XX:GCLogFileSize=64m ${HBASE_MASTER_OPTS}"
    export HBASE_REGIONSERVER_OPTS="-server -Xms1G -Xmx1G -Xmn400m -Xss228k -XX:+UseG1GC -XX:G1ReservePercent=25 -XX:InitiatingHeapOccupancyPercent=30 -XX:+DisableExplicitGC -XX:+HeapDumpOnOutOfMemoryError -XX:HeapDumpPath=/data/logs/hadoop -XX:ErrorFile=/data/logs/hadoop/hs_err_pid%p.log -XX:+PrintGCDetails -XX:+PrintGCDateStamps -XX:+PrintTenuringDistribution -XX:+PrintGCApplicationStoppedTime -Xloggc:/data/logs/hadoop/gc.log -XX:+UseGCLogFileRotation -XX:NumberOfGCLogFiles=32 -XX:GCLogFileSize=64m ${HBASE_REGIONSERVER_OPTS}"
    export HBASE_SHELL_OPTS="-server -Xms1G -Xmx1G -Xmn400m -Xss228k -XX:+UseG1GC -XX:G1ReservePercent=25 -XX:InitiatingHeapOccupancyPercent=30 -XX:+DisableExplicitGC -XX:+HeapDumpOnOutOfMemoryError -XX:HeapDumpPath=/data/logs/hadoop -XX:ErrorFile=/data/logs/hadoop/hs_err_pid%p.log -XX:+PrintGCDetails -XX:+PrintGCDateStamps -XX:+PrintTenuringDistribution -XX:+PrintGCApplicationStoppedTime -Xloggc:/data/logs/hadoop/gc.log -XX:+UseGCLogFileRotation -XX:NumberOfGCLogFiles=32 -XX:GCLogFileSize=64m ${HBASE_SHELL_OPTS}"

    hbase-site.xml
    <configuration>
    <!--这个目录是region服务器共享的目录,用来持久化存储hbase的数据-->
        <property>
            <name>hbase.rootdir</name>
            <value>hdfs://Abcns/hbase</value>
            <!--- 指定hadoop master服务器的写法,hbse监听hdfs的端口是900   
    <value>hdfs://namenode1:9000/hbase</value> --> </property> <!--指定hbase集群为分布式集群--> <property> <name>hbase.cluster.distributed</name> <value>true</value> </property> <property> <name>hbase.zookeeper.quorum</name> <value>datanode:2181,datanode2:2181,datanode3:2181</value> </property> <!-- zookeeper 元数据快照的存储目录 --> <property> <name>hbase.zookeeper.property.dataDir</name> <value>/data/zookeeper/data</value> </property> <property> <name>hbase.replication</name> <value>3</value> </property>
    <!-- 指定hbase master web访问端口, 默认16010 --> <property> <name>hbase.master.info.port</name> <value>16010</value> </property>
    <!--指定hbase regionserver web访问端口 默认16030 --> <property> <name>hbase.regionserver.info.port</name> <value>16030</value> </property> <!--解决启动hmaster 无法初始化wal问题--> <property> <name>hbase.unsafe.stream.capability.enforce</name> <value>false</value> </property> </configuration>

    regionservers  配置文件

    vim /data/hbase/conf/regionservers

    datanode1
    datanode2
    datanode3

    添加备份master

    vim /data/hbase/conf/backup-masters

    namenode2

    拷贝/data/hbase 到各个节点

    for i in {122..125}; do
      scp -r /data/hbase  172.16.230.$i:/data/
    done
    启动停止
    集群整体启动
    172.16
    .230.121 start-hbase.sh stop-hbase.sh 单独hmaster启动 hbase-daemon.sh start master hbase-daemons.h stop master 单独启停 regionserver hbase-daemon.sh start regionserver hbase-daemons.h stop regionserver
    hbase使用
    hdfs  dfs -ls  /

    hbase shell

    status

    页面:

    HMaster 页面:
    172.16.230.121:16010
    172.16.230.121:16010
    
    regionserver页面:
    172.16.230.121:16030
    172.16.230.121:16030

     hbase 分布式集群扩容与收缩

    要先扩 hadoop  datanode节点, 然后才能扩 hbase的对应节点

    172.16.230.121 主节点

    # 添加新节点
    vim  /data/hadoop/conf/regionservers
    datanode1
    datanode2
    datanode3
    datanode4  ###新加节点

     拷贝/data/hbase 目录到 datanode4

     启动进程

    单独启停 regionserver
    hbase-daemon.sh start regionserver

     vim /data/hbase/conf/hbase-env.sh

  • 相关阅读:
    python 中 time 模块 格式化 format
    python 以标准输出(sys.stdout)为例,看python的标准输入、标准错误输出
    Quick-lua3.3之listview
    健身计划表
    quick-cocos2d-x 实现在lua里面完成android支付宝的接入
    lua table 排序--满足多条件排序
    lua 操作中文字符串之截取和长度竖排显示
    ClippingNode实现新手引导高亮裁切
    quick cocos2dx lua 内存释放
    cocos2d-x的lua脚本加载CocostudioUI两种方式
  • 原文地址:https://www.cnblogs.com/fengjian2016/p/14657235.html
Copyright © 2011-2022 走看看