• [微笑]这篇写得不错,没有逻辑上的问题!不过咱估计不会讨小萌们喜欢。 2019-07-16
  • 陈华德的专栏作者中国国家地理网 2019-07-16
  • 西藏迎来首家民营文化企业援藏团队 2019-07-14
  • “精日亲美的真正原因”是中国的伪公知精英身上长了“洋奴依附之心”,“崇洋媚外之骨”,“汉奸文化之瘤”,这些人利用“和谐、包容”疯狂推行汉奸文化洗脑国人! 2019-07-10
  • 合肥市公立医疗机构1271种医疗服务价格公示 部分服务涨价 2019-07-10
  • 文昌至临高高速公路有望年内开工 建成后车程缩至1小时内 2019-07-02
  • 加入我们中国国家地理网 2019-06-27
  • 强势发力体育营销 世界杯中国企业改变“旁观”窘状 2019-06-25
  • “道德瘾君子”侮辱了杨女士的善良 2019-06-25
  • 郑永年:争名逐利抢流量,中国的知识分子怎么了? 2019-06-21
  • 十九大代表拉措:团结一心跟党走   2019-06-18
  • 美钢铝关税政策引发各界忧虑 2019-06-18
  • 党的十九大最重大的理论成就 2019-06-15
  • 经济日报多媒体数字报刊 2019-06-15
  • 西安外事学院在省茶艺大赛中创多项佳绩西安外事学院-陕西教育新闻 2019-06-14
  • 欢迎来到魔据教育大数据学院,专注大数据工程师培养!
    当前位置:两肖两码中特资料网 > 学习资料 > 讲师博文 > Hbase理论

    两尾两码中特: Hbase理论

    时间:2019-04-12 14:24:03作者:魔据大数据学院

    两肖两码中特资料网 www.mqptd.tw 还记得我们配置hbase的dir路径吗:

    看hbase-site.xml
     
    Hbase理论 
     
    也就是说,我们目前的数据是保存到了家目录的hbasedir这个路径下
     
    那么我们来看一下:
     
    Hbase理论 
     
    这个目录里面存储着数据行健和version数据
     
    那么我们hbase的数据应该是存储到HDFS才对是吧,那么接下来我们来改一改这个配置文件:
     
    [[email protected] hbase-hive]$ vim hbase-1.2.5/conf/hbase-site.xml
     
    <configuration>
    <!-- 指定hbase数据存储在hdfs的位置-->
            <property>
                    <name>hbase.rootdir</name>
                    <value>hdfs://master:9000/hbase</value>
            </property>
    <!-- 指定hbase是否是分布式的 -->
            <property>
                    <name>hbase.cluster.distributed</name>
                    <value>true</value>
            </property>
    <!-- 指定zooleeper的端口号 -->
            <property>
                    <name>hbase.zookeeper.property.clientPort</name>
                    <value>2181</value>
            </property>
    <!-- 指定zk的地址,多个用“,”分割 ,咱们这是单节点-->
            <property>
                    <name>hbase.zookeeper.quorum</name>
                    <value>master</value>
            </property>
    <!-- zookeeper存储数据的地址,咱们启动的zookeeper是hbase自带的-->
            <property>
                    <name>hbase.zookeeper.property.dataDir</name>
                    <value>/home/hyxy/hbase-hive/hbase-1.2.5/zookeeper</value>
            </property>
     
    </configuration>
     
    Hbase理论 
     
    然后我们再编辑env.sh ,加入:
     
    export HBASE_MANAGES_ZK=true  开启hbase集群
     
    Hbase理论 
     
    保存退出
     
    配置一下环境变量:
     
    Hbase理论 
     
    然后别忘了关闭hbase进程,再启动hadoop然后再来开启hbase
     
    你不能不开启hdfs就直接开启hbase否则会报错
     
    Hbase理论 
     
    这个时候我们jps查看一下:
     
    Hbase理论 
     
    你会发现多了三个进程
     
    HMaster 进程Hbase的主节点,类似hadoop的namenode
    HQuorumPeer 是zookpeer进程,负责协调主从节点的切换
    HRegionServer 进程一般存在从节点上,就是小弟,负责存储数据,类似hadoop的datanode
     
    这个时候你再list,你会发现没有一张表,因为hdfs上没有数据
     
    Hbase理论 
     
    看一下hdfs:
     
    Hbase理论 
     
    有一个hbasedir 目录,这个就是存放数据的目录
     
    接下来我们创建一张user表,表中有两个列族,一个是info1 一个是info2
     
    create 'user', 'info1', 'info2'
     
    Hbase理论 
     
    那么hbase是有web端的,那么查看hbase的web页面很简单:
     
    在浏览器输入:ip:60010即可
     
    Hbase理论 
     
    我们往下看tables那块
     
    Hbase理论 
     
    很详细的说了有多少张表,和表的信息
     
     
    接下来咱们说一下hbase的理论:
     
    1.物理存储:
     Table 在行的方向上分割为多个HRegion,一个region由[startkey,endkey)表示(包左不包右),每个HRegion分散在不同的RegionServer中
    在分布式存储过程中,存储的最小单位就是region,也就是说,hbase中表的数据是分割成多个region然后再放到hdfs中,我们想,如果将一张表放在一台机器上,那么读写的时候一直访问这一台机器,机器压力会很大,所以我们要分布式存储,读写操作多台机器,实现负载均衡,看下图:
     
     
    Hbase理论 
     
    此图将两张表都分成了多个region,以row key进行分割,存储在Region Servers , 也就是jps进程中的HRegion Server
    Hbase理论 
     
    那么到达了这个HRegion Server 后,并不是直接存储在hdfs上的,而是先存储在内存中,经过一系列的内部操作后,才会写入到hdfs中,这点要记住
     
    说完了region之后我们再来说一个重点:hbase表中row key 顺序问题:
     
    假设现在有一堆数字,让你排序,你试着排一下:
     
    1 11 21 41
     
    现在加入一个2 和 5  ,看好下面hbase是怎么排的:
     
    1 11 2 21 41 5
     
    那么现在再加入一个50 和 20 怎么排?
     
    1 11 2 20 21 41 5 50
     
    也就是说,hbase的排序是根据第一位进行排序,同一位的数据根据下一位的大小再继续拍
     
    现在加入一个200怎么排?
     
    1 11 2 20 200 21 41 5 50
     
    这样做的好处是每一位数字都在一起,例如这张表的row key是1到100那么就是1-9 之间都是分段排序,只要知道了开头第一位数字就可以去相应的位置查询,方便快捷
     
    那么到这里我们总结一下:
     
    Region是分布式存储的最小单元,并且开始是存储在Hregion Server内存中,最终存储在
    HDFS  存储的格式是按照row key分割范围存储的, hbase的排序是非常特殊的字典排序,每一位都有一个区间范围,方便查找
     
    那么两者结合一下,看下图:
    Hbase理论 
     
    上图一张表分为了5个region,并且分布式存储在regionServers上,但是一个region也不见得就能保存[0,2)区间范围的值,有可能1区间的数据非常大,那么这一个region可能1区间的值都存不下,所以还要酌情考虑
     
    这里扩展一下:每个region能够存储的默认大小是128MB~256MB
     
    接下来看下图region的内部结构图,挺复杂的:
     
    Hbase理论 
     
    其中Region包含了 HLog  Store MemStore StoreFile HFile
     
    HLog存储的是对写入数据的存储操作,类似于yarn中的elogs,当机器宕机时可以通过HLog进行恢复
     
    Store:HRegin 虽然是负载均衡的最小单元,但并不是物理存储的最小单元,事实上,HRegion由一个或者多个Store组成,每个store保存一个column family 列族,每个store又由一个memStore和0至多个StoreFile组成
     
    一个 region 由多个 store 组成,每个 store 包含一个列族的所有数据 Store 包括位于内存
     
    的 memstore 和位于硬盘的 storefile
     
    写操作先写入 memstore,当 memstore 中的数据量达到某个阈值, HRegionServer 启动
     
    flushcache 进程写入 storefile, 每次写入形成单独一个 Hfile
     
    当 storefile 大小超过一定阈值后,会把当前的 storefile 分割成两个
     
     
     
    写流程
    1、 client向Zookeeper发送写请求,zookeeper和Hmaster交互,反馈可以写入
    2、 Client向hregionserver 发送数据写入
    3、 hregionserver将数据写到hlog(write ahead log)。为了数据的持久化和恢复。
    4、 hregionserver将数据写到内存(memstore)
    5、 反馈client写成功。
     
    数据flush过程
    1、 当memstore数据达到阈值(默认是128M),将数据刷到硬盘,将内存中的数据删除,同时删除Hlog中的历史数据。
    2、 并将数据存储到hdfs中。
    3、 在hlog中做标记点。
     
    hbase的读流程
    1、 通过zookeeper和HMETA.表定位hregionserver。
    2、 数据从内存和硬盘合并后返回给client
    3、 数据块会缓存
    hmaster的职责
    1、管理用户对Table的增、删、改、查操作;
    2、记录region在哪台Hregion server上
    3、在Region Split后,负责新Region的分配;
    4、新机器加入时,管理HRegion Server的负载均衡,调整Region分布
    5、在HRegion Server宕机后,负责失效HRegion Server 上的Regions迁移。
     
    hregionserver的职责
    HRegion Server主要负责响应用户I/O请求,向HDFS文件系统中读写数据,是HBASE中最核心的???。
    HRegion Server管理了很多table的分区,也就是region。
     
    client职责
    Client
    HBASE Client使用HBASE的RPC机制与HMaster和RegionServer进行通信
    管理类操作:Client与HMaster进行RPC;
    数据读写类操作:Client与HRegionServer进行RPC。
     
    好好理解一下,掌握了以上理论,我觉得你的hbase就学的差不多了;
     
    接下来带大家看一下hdfs上我们存储的表信息:
     
    如果想要知道数据存储在哪,首先要看hbase-site.xml文件:
     
    Hbase理论 
     
    找一下:/hbase/data/default 路径下
     
    表信息:
    Hbase理论 

    更多大数据相关资讯敬请关注魔据教育,为您分享最及时的大数据资讯。
    学习大数据敬请关注魔据教育微信二维码。
    魔据教育微信二维码

    【版权与免责声明】如发现内容存在版权问题,烦请提供相关信息发邮件至[email protected],我们将及时沟通与处理。本站内容除非来源注明魔据教育,否则均为网友转载,涉及言论、版权与本站无关。

    全国咨询热线:18501996998,值班手机:18501996998(7*24小时)

    在线咨询:张老师QQ 320169340

    企业合作服务专线:010-82340234-821, 院校合作洽谈专线:010-82340234

    Copyright 2001-2019 魔据教育 - 北京华育兴业科技有限公司 版权所有,京ICP备17018991号-2

    免费在线咨询两肖两码中特资料网

    免费索取技术资料立即索取

    大数据技术交流QQ:226594285

    电话咨询010-82340234

  • [微笑]这篇写得不错,没有逻辑上的问题!不过咱估计不会讨小萌们喜欢。 2019-07-16
  • 陈华德的专栏作者中国国家地理网 2019-07-16
  • 西藏迎来首家民营文化企业援藏团队 2019-07-14
  • “精日亲美的真正原因”是中国的伪公知精英身上长了“洋奴依附之心”,“崇洋媚外之骨”,“汉奸文化之瘤”,这些人利用“和谐、包容”疯狂推行汉奸文化洗脑国人! 2019-07-10
  • 合肥市公立医疗机构1271种医疗服务价格公示 部分服务涨价 2019-07-10
  • 文昌至临高高速公路有望年内开工 建成后车程缩至1小时内 2019-07-02
  • 加入我们中国国家地理网 2019-06-27
  • 强势发力体育营销 世界杯中国企业改变“旁观”窘状 2019-06-25
  • “道德瘾君子”侮辱了杨女士的善良 2019-06-25
  • 郑永年:争名逐利抢流量,中国的知识分子怎么了? 2019-06-21
  • 十九大代表拉措:团结一心跟党走   2019-06-18
  • 美钢铝关税政策引发各界忧虑 2019-06-18
  • 党的十九大最重大的理论成就 2019-06-15
  • 经济日报多媒体数字报刊 2019-06-15
  • 西安外事学院在省茶艺大赛中创多项佳绩西安外事学院-陕西教育新闻 2019-06-14
  • 辽宁十一选五爱彩乐 ac米兰 国际米兰 澳洲幸运10冠军定位 银色雌狮4x游戏 深圳风采查询 沈阳麻将微信群 30选5app 浙江20选5走势图 青海十一选五今天奖号 我的世界皮肤站