• hbase集群安装和shell操作


    1.上传hbase安装包


    2.解压


    3.配置hbase集群,要修改3个文件(首先zk集群已经安装好了)
    注意:要把hadoop的hdfs-site.xml和core-site.xml 放到hbase/conf下
    让hbase节点知道hdfs的映射关系,也可以在hbase-site.xml中配置

    3.1修改hbase-env.sh
    export JAVA_HOME=/usr/java/jdk
    //告诉hbase使用外部的zk 
    export HBASE_MANAGES_ZK=false

    vi hbase-site.xml
    <configuration>
    <!-- 指定hbase在HDFS上存储的路径 -->
            <property>
                    <name>hbase.rootdir</name>
                    <value>hdfs://ns1/hbase</value>
            </property>
    <!-- 指定hbase是分布式的 -->
            <property>
                    <name>hbase.cluster.distributed</name>
                    <value>true</value>
            </property>
    <!-- 指定zk的地址,多个用“,”分割 -->
            <property>
                    <name>hbase.zookeeper.quorum</name>
                    <value>cloud4:2181,cloud5:2181,cloud6:2181</value>
            </property>
    </configuration>

    和hdfs的配置一样,说明hbase的子节点都在哪些机器上

    vi regionservers
    cloud3
    cloud4
    cloud5
    cloud6

    3.2拷贝hbase到其他节点
    scp -r ~/hbase/ cloud2:~/
    scp -r ~/hbase/ cloud3:~/
    scp -r ~/hbase/ cloud4:~/
    scp -r ~/hbase/ cloud5:~/
    scp -r ~/hbase/ cloud6:~/
    4.将配置好的HBase拷贝到每一个节点并同步时间。


    5.启动所有的hbase
    分别启动zk
    ./zkServer.sh start
    启动hadoop集群
    start-dfs.sh
    启动hbase,在主节点(cloud1)上运行:
    start-hbase.sh
    6.通过浏览器访问hbase管理页面
    192.168.1.201:60010
    7.为保证集群的可靠性,要启动多个HMaster(cloud1和cloud2上都是主节点)
    hbase-daemon.sh start master






    进入hbase命令行
    ./hbase shell


    显示hbase中的表
    list


    创建user表,包含info、data两个列族
    create 'user', 'info1', 'data1'
    create 'user', {NAME => 'info', VERSIONS => '3'}


    向user表中插入信息,row key为rk0001,列族info中添加name列标示符,值为zhangsan
    put 'user', 'rk0001', 'info:name', 'zhangsan'


    向user表中插入信息,row key为rk0001,列族info中添加gender列标示符,值为female
    put 'user', 'rk0001', 'info:gender', 'female'


    向user表中插入信息,row key为rk0001,列族info中添加age列标示符,值为20
    put 'user', 'rk0001', 'info:age', 20


    向user表中插入信息,row key为rk0001,列族data中添加pic列标示符,值为picture
    put 'user', 'rk0001', 'data:pic', 'picture'


    获取user表中row key为rk0001的所有信息
    get 'user', 'rk0001'


    获取user表中row key为rk0001,info列族的所有信息
    get 'user', 'rk0001', 'info'


    获取user表中row key为rk0001,info列族的name、age列标示符的信息
    get 'user', 'rk0001', 'info:name', 'info:age'


    获取user表中row key为rk0001,info、data列族的信息
    get 'user', 'rk0001', 'info', 'data'
    get 'user', 'rk0001', {COLUMN => ['info', 'data']}


    get 'user', 'rk0001', {COLUMN => ['info:name', 'data:pic']}


    获取user表中row key为rk0001,列族为info,版本号最新5个的信息
    get 'people', 'rk0002', {COLUMN => 'info', VERSIONS => 2}
    get 'user', 'rk0001', {COLUMN => 'info:name', VERSIONS => 5}
    get 'user', 'rk0001', {COLUMN => 'info:name', VERSIONS => 5, TIMERANGE => [1392368783980, 1392380169184]}


    获取user表中row key为rk0001,cell的值为zhangsan的信息
    get 'people', 'rk0001', {FILTER => "ValueFilter(=, 'binary:图片')"}


    获取user表中row key为rk0001,列标示符中含有a的信息
    get 'people', 'rk0001', {FILTER => "(QualifierFilter(=,'substring:a'))"}




    查询user表中的所有信息
    scan 'user'


    查询user表中列族为info的信息
    scan 'people', {COLUMNS => 'info'}
    scan 'user', {COLUMNS => 'info', RAW => true, VERSIONS => 5}
    scan 'persion', {COLUMNS => 'info', RAW => true, VERSIONS => 3}
    查询user表中列族为info和data的信息
    scan 'user', {COLUMNS => ['info', 'data']}
    scan 'user', {COLUMNS => ['info:name', 'data:pic']}




    查询user表中列族为info、列标示符为name的信息
    scan 'user', {COLUMNS => 'info:name'}


    查询user表中列族为info、列标示符为name的信息,并且版本最新的5个
    scan 'user', {COLUMNS => 'info:name', VERSIONS => 5}


    查询user表中列族为info和data且列标示符中含有a字符的信息
    scan 'people', {COLUMNS => ['info', 'data'], FILTER => "(QualifierFilter(=,'substring:a'))"}


    查询user表中列族为info,rk范围是[rk0001, rk0003)的数据
    scan 'people', {COLUMNS => 'info', STARTROW => 'rk0001', ENDROW => 'rk0003'}


    查询user表中row key以rk字符开头的
    scan 'user',{FILTER=>"PrefixFilter('rk')"}


    查询user表中指定范围的数据
    scan 'user', {TIMERANGE => [1392368783980, 1392380169184]}


    删除数据
    删除user表row key为rk0001,列标示符为info:name的数据
    delete 'people', 'rk0001', 'info:name'
    删除user表row key为rk0001,列标示符为info:name,timestamp为1392383705316的数据
    delete 'user', 'rk0001', 'info:name', 1392383705316




    清空user表中的数据
    truncate 'people'




    修改表结构
    首先停用user表(新版本不用)
    disable 'user'


    添加两个列族f1和f2
    alter 'people', NAME => 'f1'
    alter 'user', NAME => 'f2'
    启用表
    enable 'user'




    ###disable 'user'(新版本不用)
    删除一个列族:
    alter 'user', NAME => 'f1', METHOD => 'delete' 或 alter 'user', 'delete' => 'f1'


    添加列族f1同时删除列族f2
    alter 'user', {NAME => 'f1'}, {NAME => 'f2', METHOD => 'delete'}


    将user表的f1列族版本号改为5
    alter 'people', NAME => 'info', VERSIONS => 5
    启用表
    enable 'user'




    删除表
    disable 'user'
    drop 'user'
  • 相关阅读:
    pyzabbix 接口使用
    lvs使用进阶
    lvs基础
    linux服务基础之nginx配置详解
    linux服务基础之编译安装nginx
    iptables (二) nat & tcp_wrapper
    iptables (一) 主机防火墙和网络防火墙
    rsyslog及loganalyzer
    linux基础之Mini Linux制作
    linux基础之磁盘管理与文件系统
  • 原文地址:https://www.cnblogs.com/jchubby/p/4429690.html
Copyright © 2020-2023  润新知