• HBase 学习(二) Hbase安装与启动


    一,前言

    二,前期准备

      2.1 文件下载

      2.2 服务器准备

    三,配置文件配置

      3.1 hbase-env.sh

      3.2 hbase-site.xml

      3.3 regionservers

      3.4 将hbase的bin目录添加到环境变量

      3.5 Hbase的官方配置文档

    四,Hbase服务启动

      4.1 Hbase启动

      4.2 Hbase的web页面访问

    五,Hbase的shell简单使用

      5.1 Hbase的命令行客户端

      5.2 Hbase的简单使用

      5.3 Hbase的DML

        5.3.1 增加数据

       5.3.2 查询数据

       5.3.3 删除数据

    正文

    一,前言

      上节我们知道Hbase是hadoop体系中的分布式存储的nosql,他依赖于HDFS进行数据存储,依赖于Zookeeper进行hmaster的高可用,同时若要对其进行数据分析,可能还用到MapReduce。所以在进行服务安装的时候,必须要先安装HDFS,Zookeeper和yarn。若对这些安装有疑问,请查看前面章节。

    二,前期准备

      2.1 文件下载和解压

      点击下载Hbase:当然也可以自己到官网下载相应的版本。链接地址:http://archive.apache.org/dist/hbase/

      解压文件如下:

         

      2.2 服务器准备

      

      注意:JDK,Hdoop,zookeeper已经安装完成,若对这些安装有疑问,可以查看前面文章。

    三,配置文件配置

      下面对配置文件进行配置,主要当其中一台配置完毕后,需要将这些配置文件复制到另外两台。我这里配置的是hd3,配置完毕后,我将整个hbase的安装目录复制到了另外两台服务器。

      3.1 hbase_env.sh

      主要添加的配置如下:

    export JAVA_HOME=/root/apps/jdk1.7.0_67
    export HBASE_MANAGES_ZK=false

      上述配置是指明运行环境,JDK和是否使用内置的zookeeper这里选择的是false,因为我们需要使用的是我们自己定义的zookeeper.

      实际配置示例:

     

      3.2 hbase_site.xml

      主要添加的配置如下:

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

      注意:上述配置是最基本配置,若要对齐配置进行优化设置,可以查看官方文档。

      实际配置示例:

     

      3.3 regionservers

      主要添加配置:

    hd1
    hd2
    hd3

      上述配置主要是添加需要启动HRegionServer的主机名。

      3.4 将hbase的bin目录添加到环境变量

      添加环境变量如下所示:

     

      3.5 官方配置文件地址

      点击进入

    四,Hbase服务启动

      4.1 Hbase启动

      启动前需要对服务器进行时间同步,否则会报错:

      报错信息如下:

      时间同步:

    # 依次执行如下步骤
    
    
    # 一,安装ntp服务
    
    yum install ntp
    
    # 二,设置服务启动方式
    systemctl enable ntpd
    
    
    # 三,启动服务
    service ntpd restart
    
    
    # 四,将系统时区修改为上海时间
    ln -sf /usr/share/zoneinfo/Asia/Shanghai /etc/localtime

      然后对其启动:

    -->直接在命令行运行start-hbase.sh
    [root@hd1 ~]$ start-hbase.sh

      然后可以通过JPS进行进程访问,如下所示:

      

      4.2 Hbase的web页面访问

      hbase启动完毕后,可以访问Hmaster所在服务的主机进行Hbase访问,如下所示:

       

    五,Hbase的shell简单使用

      5.1 hbase的命令行客户端

      执行如下命令进入Hbase的命令行客户端:

    [root@hd1 ~]$ hbase shell

      如下示例:

      5.2 hbase的简单使用

    Hbase> list     // 查看表
    Hbase> status   // 查看集群状态
    Hbase> version  // 查看集群版本

      5.3 hbase的shell的DML

        5.3.1 插入数据

    hbase(main):011:0> put 't_user_info','001','base_info:username','zhangsan'
    0 row(s) in 0.2420 seconds
    
    hbase(main):012:0> put 't_user_info','001','base_info:age','18'
    0 row(s) in 0.0140 seconds
    
    hbase(main):013:0> put 't_user_info','001','base_info:sex','female'
    0 row(s) in 0.0070 seconds
    
    hbase(main):014:0> put 't_user_info','001','extra_info:career','it'
    0 row(s) in 0.0090 seconds
    
    hbase(main):015:0> put 't_user_info','002','extra_info:career','actoress'
    0 row(s) in 0.0090 seconds
    
    hbase(main):016:0> put 't_user_info','002','base_info:username','liuyifei'
    0 row(s) in 0.0060 seconds

        5.3.2 查看数据

        查看方式一:scan 扫描

    hbase(main):017:0> scan 't_user_info'
    ROW                               COLUMN+CELL                                                                                     
     001                              column=base_info:age, timestamp=1496567924507, value=18                                         
     001                              column=base_info:sex, timestamp=1496567934669, value=female                                     
     001                              column=base_info:username, timestamp=1496567889554, value=zhangsan                              
     001                              column=extra_info:career, timestamp=1496567963992, value=it                                     
     002                              column=base_info:username, timestamp=1496568034187, value=liuyifei                              
     002                              column=extra_info:career, timestamp=1496568008631, value=actoress    

        查看方式二:get单行数据

    hbase(main):020:0> get 't_user_info','001'
    COLUMN                            CELL                                                                                            
     base_info:age                    timestamp=1496568160192, value=19                                                               
     base_info:sex                    timestamp=1496567934669, value=female                                                           
     base_info:username               timestamp=1496567889554, value=zhangsan                                                         
     extra_info:career                timestamp=1496567963992, value=it                                                               
    4 row(s) in 0.0770 seconds

        5.3.3 删除数据

        删除一个kv数据

    hbase(main):021:0> delete 't_user_info','001','base_info:sex'
    0 row(s) in 0.0390 seconds

        删除整行

    hbase(main):024:0> deleteall 't_user_info','001'
    0 row(s) in 0.0090 seconds
    
    hbase(main):025:0> get 't_user_info','001'
    COLUMN                            CELL                                                                                            
    0 row(s) in 0.0110 seconds

        删除整个表

    hbase(main):028:0> disable 't_user_info'
    0 row(s) in 2.3640 seconds
    
    hbase(main):029:0> drop 't_user_info'
    0 row(s) in 1.2950 seconds
    
    hbase(main):030:0> list
    TABLE                                                                                                                             
    0 row(s) in 0.0130 seconds
    
    => []
  • 相关阅读:
    Java中String做为synchronized同步锁
    99%的人都理解错了GET与POST的区别
    为什么Java中只有值传递
    解决maven打包时,会编译特定文件导致文件不可用
    Java使用icepdf转高清图片
    iText输出中文
    Error:(1, 1) java: 非法字符: ‘ufeff’
    java根据模板生成pdf
    携程Apollo统一配置中心的搭建和使用
    1008
  • 原文地址:https://www.cnblogs.com/tashanzhishi/p/10916714.html
Copyright © 2020-2023  润新知