zoukankan      html  css  js  c++  java
  • HBase基础

    1、hbase

    google:
    gfs –> hdfs
    mapreduce –> mapreduce
    bigtable –> hbase

    Apache HBase™是Hadoop数据库,是一个分布式,可扩展的大数据存储

    当您需要对大数据进行随机,实时读/写访问时,请使用Apache HBase™。该项目的目标是托管非常大的表 - 数十亿行X百万列 - 在商品硬件集群上。Apache HBase是一个开源的,分布式的,版本化的非关系数据库nosql,模仿Google的Bigtable: Chang等人的结构化数据分布式存储系统。正如Bigtable利用Google文件系统提供的分布式数据存储一样,Apache HBase在Hadoop和HDFS之上提供类似Bigtable的功能

    2、hbase集群角色

    hdfs: NameNode DataNode
    yarn: ResourceManager NodeManager
    zookeeper: QuorumPeerMain
    hbase: HMaster RegionServer

    主从结构
    HMaster:
    1)对RegionServer监控
    2)处理一些元数据的变更
    3)对RegionServer进行故障转移
    4)空闲时对数据进行负载均衡
    5)对region进行管理
    6)发布位置到客户端借助于zookeeper

    RegionServer:
    1)存储hbase实际的数据
    2)刷新缓存数据到hdfs
    3)处理Region
    4)可以进行压缩
    5)对Hlog进行维护
    6)对region分片

    3、hbase集群安装部署

    1)需要安装好zookeeper集群

    2)需要安装好hadoop集群
    hdfs
    yarn

    3)解压hbase压缩包
    tar -zxvf hbase-1.3.0-bin.tar.gz

    4)修改配置hbase-env.sh
    export JAVA_HOME=/root/hd/jdk1.8.0_192
    export HBASE_MANAGES_ZK=false

    5)配置hbase-site.xml
    cd /root/hd/hbase-1.3.0
    vi hbase-site.xml

    <configuration>
    <!-- 设置namenode所在位置 通过rootdir设置 也就是设置hdfs中存放的路径 -->
    <property>
    <name>hbase.rootdir</name>
    <value>hdfs://hsiehchou121:9000/hbase</value>
    </property>
    <!-- 是否开启集群 -->
    <property>
    <name>hbase.cluster.distributed</name>
    <value>true</value>
    </property>
    <!-- 0.98 后的新变动,之前版本没有.port,默认端口为 60000 -->
    <property>
    <name>hbase.master.port</name>
    <value>16000</value>
    </property>
    <!-- zookeeper集群的位置 -->
    <property>
    <name>hbase.zookeeper.quorum</name>
    <value>hsiehchou121:2181,hsiehchou122:2181,hsiehchou123:2181,hsiehchou124:2181</value>
    </property>
    <!-- hbase的元数据信息存储在zookeeper的位置 -->
    <property>
    <name>hbase.zookeeper.property.dataDir</name>
    <value>/root/hd/zookeeper-3.4.10/zkData</value>
    </property>
    </configuration>

    指定从节点regionservers
    vi regionservers

    hsiehchou122
    hsiehchou123
    hsiehchou124

    6)解决依赖问题
    HBase依赖于Hadoop,换成2.8.4的hadoop依赖包
    hadoop-annotations-2.8.4.jar
    hadoop-auth-2.8.4.jar
    hadoop-common-2.8.4.jar
    hadoop-hdfs-2.8.4.jar
    hadoop-hdfs-client-2.8.4.jar
    hadoop-mapreduce-client-app-2.8.4.jar
    hadoop-mapreduce-client-common-2.8.4.jar
    hadoop-mapreduce-client-core-2.8.4.jar
    hadoop-mapreduce-client-hs-2.8.4.jar
    hadoop-mapreduce-client-hs-plugins-2.8.4.jar
    hadoop-mapreduce-client-jobclient-2.8.4.jar
    hadoop-mapreduce-client-jobclient-2.8.4-tests.jar
    hadoop-mapreduce-client-shuffle-2.8.4.jar
    hadoop-yarn-api-2.8.4.jar
    hadoop-yarn-applications-distributedshell-2.8.4.jar
    hadoop-yarn-applications-unmanaged-am-launcher-2.8.4.jar
    hadoop-yarn-client-2.8.4.jar
    hadoop-yarn-common-2.8.4.jar
    hadoop-yarn-server-applicationhistoryservice-2.8.4.jar
    hadoop-yarn-server-common-2.8.4.jar
    hadoop-yarn-server-nodemanager-2.8.4.jar
    hadoop-yarn-server-resourcemanager-2.8.4.jar
    hadoop-yarn-server-web-proxy-2.8.4.jar

    zookeeper-3.4.10.jar

    7)软连接core-site.xml hdfs-site.xml
    ln -s /root/hd/hadoop-2.8.4/etc/hadoop/hdfs-site.xml
    ln -s /root/hd/hadoop-2.8.4/etc/hadoop/core-site.xml

    8)发送到其他机器
    scp -r hbase-1.3.0 hsiehchou122:/root/hd
    scp -r hbase-1.3.0 hsiehchou123:/root/hd
    scp -r hbase-1.3.0 hsiehchou124:/root/hd

    fiind /root/hd/hadoop-2.8.4/ -name hadoop-a*

    9)访问ui界面
    http://192.168.116.121:16010/master-status

    启动hbase
    bin/hbase-daemon.sh start master
    bin/hbase-daemon.sh start regionserver

    关闭hbase
    bin/hbase-daemon.sh stop master
    bin/hbase-daemon.sh stop regionserver

    4、hbase设计架构

    Rowkey行键 类似 id
    列式存储
    hbase操作

    1)查看表操作
    list

    2)显示当前服务器状态
    status ‘hsiehchou121’
    1 active master, 0 backup masters, 3 servers, 0 dead, 0.5000 ave
    rage load
    1 active master: 1个存活的master
    0 backup masters: 0个备份master
    3 servers: 3个regionserver
    0 dead: 没有挂掉的
    0.5000 average load:平均加载

    3)显示当前用户
    whoami

    4)创建表
    create ‘表名’,’列族’
    create ‘user’,’info1’

    5)添加数据
    put ‘表名’,’rowkey’,’列族:列’,’值’
    put ‘user’,’1001’,’info1:name’,’xie’
    put ‘user’,’1001’,’info1:age’,’19’

    删除需要ctrl+<-

    6)全表扫描
    scan ‘表名’
    scan ‘user’

    ROW COLUMN+CELL
    1001 column=info1:age, timestamp=1552579563486, value=19
    1001 column=info1:name, timestamp=1552579531260, value=xie

    7)hbase没有修改,只有覆盖
    put ‘user’,’1001’,’info1:name’,’mi’
    只要对应上表名、rowkey、列族、列即可

    8)查看表结构
    describe ‘user’

    9)变更表结构信息
    alter ‘user’,{NAME => ‘info1’,VERSIONS=>’8’}

    10)查看指定的数据信息
    指定具体的rowkey
    get ‘user’,’1001’
    指定具体的列
    get ‘user’,’1001’,’info1:name’

    11)清空表
    truncate ‘user1’

    12)删除表
    需要先指定不可用
    disable ‘表名’
    drop ‘表名’
    disable ‘user1’
    drop ‘user1’

    13)扫描指定范围
    指定从某一rowkey扫描
    scan ‘user’,{STARTROW => ‘1002’}

    包含头不包含尾(1001保留,1002不扫描)
    scan ‘user’,{STARTROW => ‘1001’, STOPROW => ‘1002’}

    14)统计rowkey的个数
    count ‘user’

    15)退出hbase shell
    quit

  • 相关阅读:
    JS(react)里面Json、String、Map、Object之间的转换
    react里面的几个内容
    object.assign的理解
    buffers与cached的区别
    vncserver错误
    Ubuntu可视化jupyter notebook
    ubuntu可视化桌面安装问题
    素数序列的生成及其应用 Version 2.2
    demo14-修改标签里面的属性
    demo13-修改元素的内容
  • 原文地址:https://www.cnblogs.com/hsiehchou/p/10544355.html
Copyright © 2011-2022 走看看