Hbase入门知识点入门学习一

一:简介

  1. Hbase角色
      Hbase一共存在两个角色,一个HMaster(主节点) ,一个RegionServer (从节点)
  2. HMaster功能
     ⑴监控 RegionServer 
     ⑵处理 RegionServer 故障转移 
     ⑶处理元数据的变更 
     ⑷处理 region 的分配或移除 
     ⑸在空闲时间进行数据的负载均衡 
     ⑹通过 Zookeeper 发布自己的位置给客户端 
  3. RegionServer 功能
     ⑴负责存储 HBase 的实际数据 
     ⑵处理分配给它的 Region(可以理解为table,用来存储数据) 
     ⑶刷新缓存到 HDFS
     ⑷维护 HLog 
     ⑸执行压缩 
     ⑹负责处理 Region 分片 
  4.          

二:Hbase架构

  1.  架构图如下:
     
     ⑴客户端client:
              Client 访问用户数据前需要首先访问 ZooKeeper,因为ZooKeeper中存放着数据的元数据地址信息,
         ZooKeeper负责维护元数据信息。
     ⑵HRegionServer:
              client通过ZooKeeper找到了元数据信息,那么就找到了这个数据的地址,这个数据又是存放在
          HRegionServer中的,那么现在需要通过HRegionServer去访问数据本身了。
          HRegionServer中又分为如下几个模块:
          a:HLog
                  存在本地磁盘中用来做灾难恢复使用,HLog记录数据的所有变更,一旦region server 宕机,就可以从log中进行恢复。
          b:HRegion(一个HRegionServer可以维护和管理多个HRegion)
                     table在行的方向上分隔为多个Region。Region是HBase中分布式存储和负载均衡的最小单元,
                即不同的region可以分别在不同的Region Server上,但同一个Region是不会拆分到多个server上。
                     Region按大小分隔,每个表一般是只有一个region。随着数据不断插入表,region不断增大,
                当region的某个列族达到一个阈值时就会分成两个新的region。
          c:Store(一个HRegion中包含多个store)
                      每一个region由一个或多个store组成,至少是一个store,hbase会把一起访问的数据放在一个store里面,
                即为每个 ColumnFamily建一个store,如果有几个ColumnFamily,也就有几个Store。一个Store由一个
                memStore和0或者 多个StoreFile组成。 HBase以store的大小来判断是否需要切分region。
                HFile 存储在 Store 中,一个 Store 对应 HBase 表中的一个列族。 
          d:MemStore(一个Store对应一个MemStore)
                       memStore 是放在内存里的。保存修改的数据即keyValues。当memStore的大小达到一个
                阀值(默认128MB)时,memStore会被flush到文 件,即生成一个快照。目前hbase 会有一个
               线程来负责memStore的flush操作。 
          e:StoreFile
                       memStore内存中的数据写到文件后就是StoreFile,StoreFile底层是以HFile的格式保存。
                当storefile文件的数量增长到一定阈值后,系统会进行合并(minor、major compaction),
                 在合并过程中会进行版本合并和删除工作(majar),形成更大的storefile。     
          f:HFile
                      HBase中KeyValue数据的存储格式,HFile是Hadoop的 二进制格式文件,实际上StoreFile就是
                 对Hfile做了轻量级包装,即StoreFile底层就是HFile。这是在磁盘上保存原始数据的实际的物理文件,
                是实际的存储文件。    

三:HBase 部署与使用 

  1.  解压 HBase 到指定目录
     
  2.  修改hbase-env.sh 配置文件,在/opt/module/hbase-1.3.1/conf/目录下
     
      
      注意:如果使用的是 JDK8 以 上 版 本 , 则 应 在 hbase-evn.sh 中 移除“HBASE_MASTER_OPTS”和“HBASE_REGIONSERVER_OPTS”配置。 
     
  3. 修改hbase-site.xml 配置文件,在/opt/module/hbase-1.3.1/conf/目录下
      
    <configuration>
          <!--设置HBase将数据写到哪个目录下-->
            <property>
                    <name>hbase.rootdir</name>
                    <value>hdfs://hadoop102: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>hadoop102:2181,hadoop103:2181,hadoop104:2181</value>
            </property>
        <!--配置hbase中的元数据信息存放在zookeeper中的位置 -->
            <property>
                    <name>hbase.zookeeper.property.dataDir</name>
                    <value>/opt/module/zookeeper-3.4.10/zkData</value>
            </property>
    </configuration>
    

     

  4. 修改regionservers配置文件,在/opt/module/hbase-1.3.1/conf/目录下
     
  5. HBase 需要依赖的 Jar 包 
    a:简介
          由于 HBase 需要依赖 Hadoop,所以替换 HBase 的 lib 目录下的 jar 包,以解决兼容问题。
    b:删除原有的 jar,zookeeper默认jar也删掉
          
          
  6. 拷贝新 jar,涉及的 jar 有: 
           
  7. HBase 软连接 Hadoop 配置 (软链接文件有类似于Windows的快捷方式)
      
  8. HBase 远程 scp 到其他集群节点
     
      
  9. 启动zookeeper和hadoop
     
  10. HBase 服务的启动 
     
     
      
  11. 效果,通过Hbase提供的页面查看
     

 

四:Hbase基本操作

  1.  进入 HBase 客户端命令行 
     命令:bin/hbase shell
     
  2. 查看当前数据库中有哪些表 
     
  3.  创建表 ,表名:student,列簇:info
     
     
  4.  向表中插入数据(Hbase擅长存储非结构化数据)
     语法:put '表名','rowkey(不用在创建表时候指定)','列簇:列名(这个列名不用在创建表时候指定)','数据' 
     
  5. 扫描查看表数据 
     语法:scan '表名'
     
     
  6.   将之前的name覆盖掉
     
  7. 可以指定不同的rowkey
     
  8. 查看表结构 
  9.   查看“指定行”或“指定列族:列”的数据 (会扫描整张表,性能很低)
     
     
  10.  删除数据 
     a:删除某 rowkey 的全部数据: 
           
     b:删除某 rowkey 的某一列数据: 
           
  11.  清空表数据
      
  12. 删除表
     a:首先需要先让该表为 disable 状态
            
     b:然后才能 drop 这个表: 
           
  13. 统计表数据行数 (这里统计的是rowkey的数量,因为Hbase是按列存储的)
     
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值