[大数据]连载No18 Hbase环境配置

本次总结
1、认识列数据库特点,数据模型,单元格,列族,
2、伪分布式搭建+完全分布式环境搭建

HBase(分布式列式数据库)特点

1、高可靠性:利用Hadoop HDFS作为其文件存储系统,多副本,多节点,主从架构
2、高性能:google论文bigtable实现,作为海量数据库存储
3、面向列、可伸缩
4、实时读写的分布式数集群据库
5、利用Hadoop HDFS作为其文件存储系统,利用Hadoop MapReduce来处理HBase中的海量数据,利用Zookeeper作为其分布式协同服务
6、主要用来存储非结构化和半结构化的松散数据(列存 NoSQL 数据库)


HBase 数据模型
1、Row Key:
   a、决定一行数据
   b、按照字典顺序排序的。
   c、只能存储64k的字节数据
2、Time Stamp :数据版本    
   可设置maxversion,没有update操作
3、列族 & 列
  a、HBase表中的每个列都归属于某个列族,列族必须作为表模式(schema)定义的一部分预先给出。如 create ‘test’, ‘course’
  b、列名以列族作为前缀,每个“列族”都可以有多个列成员(column);如course:math, course:english, 新的列族成员(列)可以随后按需、动态加入
     权限控制、存储以及调优都是在列族层面进行的
  c、HBase把同一列族里面的数据存储在同一目录下,由几个文件保存


Cell单元格
1、由行和列的坐标交叉决定;
2、单元格是有版本的;
3、单元格的内容是未解析的字节数组;
   由{row key, column( =<family> +<qualifier>), version} 唯一确定的单元。
   cell中的数据是没有类型的,全部是字节码形式存贮。


HBase架构



Client作用
包含访问HBase的接口并维护cache来加快对HBase的访问


Zookeeper在hbase作用
1、保证任何时候,集群中只有一个master
2、存贮所有Region(表)的寻址入口。
3、实时监控Region server的上线和下线信息。并实时通知Master
4、存储HBase的schema和table元数据


Master(主节点)作用
1、为Region server分配region
2、负责Region server的负载均衡
3、发现失效的Region server并重新分配其上的region
4、管理用户对table的增删改操作


RegionServer(从节点)作用
1、维护当前节点region,处理对这些region的IO请求
2、负责切分在运行过程中变得过大的region


Region作用
1、HBase自动把表水平划分成多个区域(region),每个region会保存一个表里面某段连续的数据
2、每个表一开始只有一个region,随着数据不断插入表,region不断增大,当增大到一个阀值的时候,region就会等分会两个新的region(裂变)
3、当table中的行不断增多,就会有越来越多的region。这样一张完整的表被保存在多个Regionserver 上。

Memstore 与 storefile
1、一个region由多个store组成,一个store对应一个CF(列族)
2、store包括位于内存中的memstore和位于磁盘的storefile写操作先写入memstore,当memstore中的数据达到某个阈值,hregionserver会启动flashcache进程写入sto  refile,每次写入形成单独的一个storefile
3、当storefile文件的数量增长到一定阈值后,系统会进行合并(minor、majorcompaction),在合并过程中会进行版本合并和删除工作(majar),形成更大的storefile
4、当一个region所有storefile的大小和数量超过一定阈值后,会把当前的region分割为两个,并由hmaster分配到相应的regionserver服务器,实现负载均衡
5、客户端检索数据,先在memstore找,找不到再找storefile


备注:
1、HRegion是HBase中分布式存储和负载均衡的最小单元。最小单元就表示不同的HRegion可以分布在不同的 HRegion server上。
2、HRegion由一个或者多个Store组成,每个store保存一个columns family。
3、每个Strore又由一个memStore和0至多个StoreFile组成。

架构图说明如下





===================伪分布式环境搭建===================
配置环境:自带zookeeper,linux文件存储系统
1、上传解压 hbase-0.98.12.1-hadoop2-bin.tar.gz
2、修改hbase的配置文件
》conf/hbase-env.sh  JAVA_HOME=
》conf/hbase-site.xml  

<configuration>
<property>
<name>hbase.rootdir</name>
<value>file:///usr/hbase</value>
</property>
<property>
<name>hbase.zookeeper.property.dataDir</name>
<value>/usr/hbase/zookeeper</value>
</property>
</configuration>
3、启动hbase
bin/start-hbase.sh

访问HBase web端口
http://ip:60010

===========完全分布式环境搭建==================
环境节点配置:
NN   DN   ZK   Hbase-Master   BackUp-Master  Regionserver
master    1        1        1
node1         1    1                             1
node2         1    1                1                      
                                    
       
1、上传 hbase-0.98.12.1-hadoop2-bin.tar.gz 到三台服务器,解压
2、修改配置文件
》修改环境 conf/hbase-env.sh  
export JAVA_HOME=/home/softs/jdk1.7.0_51
export HBASE_MANAGES_ZK=false  #是否使用自带hbase,false[不使用]
》修改conf/hbase-site.xml
<configuration>
<property>
<name>hbase.rootdir</name>       #hadoop存放数据文件位置
<value>hdfs://master:9000/hbase</value>   #注意 9000必须加上 hdfs://{mycluster}  mycluster要和hadoop core-size.xml的 fs.defaultFS一直
</property>
<property>
<name>hbase.cluster.distributed</name>  #是否使用分布式集群
<value>true</value>
</property>
<property>
<name>hbase.zookeeper.quorum</name>   #zookeeper集群
<value>master,node1,node2</value>
</property>
</configuration>

》指定从节点conf/regionservers
node1
node2
》指定备份的主节点conf/backup-masters ,此文件需要手动创建
node5
》将hdfs当中的hdfs-site.xml 拷贝hbase的conf目录下,原因是需要通过此配置文件配置,连接到hadf集群,
[root@master hadoop]# scp hdfs-site.xml /home/softs/hbase-0.98.12.1-hadoop2/conf/

3、将上面修改的所有配置文件分发到其他所有节点,保证集群当中每一台服务器配置文件相同
[root@master softs]#  scp -r hbase-0.98.12.1-hadoop2 root@node1:`pwd`

4、启动集群
在node1(Master节点) 执行 bin/start-hbase.sh,其他节点自动启动
ui地址: master:60010
注意:1、没有指定master,所以在master节点启动,那么它会将此节点作为master
      2、要先启动zookeeper,hadoop

异常
2018-06-11 01:52:45,239 FATAL [master:master:60000] master.HMaster: Unhandled exception. Starting shutdown.
java.net.ConnectException: Call From master/192.168.1.150 to master:8020 failed on connection exception: 
java.net.ConnectException: 拒绝连接; For more details see: http://wiki.apache.org/hadoop/ConnectionRefused
原因 hbase-site.xml   设置问题  <name>hbase.rootdir</name>       #hadoop存放数据文件位置
    <value>hdfs://master/hbase</value> 
  要改为  hdfs://master:9000/hbase
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
提供的源码资源涵盖了安卓应用、小程序、Python应用和Java应用等多个领域,每个领域都包含了丰富的实例和项目。这些源码都是基于各自平台的最新技术和标准编写,确保了在对应环境下能够无缝运行。同时,源码中配备了详细的注释和文档,帮助用户快速理解代码结构和实现逻辑。 适用人群: 这些源码资源特别适合大学生群体。无论你是计算机相关专业的学生,还是对其他领域编程感兴趣的学生,这些资源都能为你提供宝贵的学习和实践机会。通过学习和运行这些源码,你可以掌握各平台开发的基础知识,提升编程能力和项目实战经验。 使用场景及目标: 在学习阶段,你可以利用这些源码资源进行课程实践、课外项目或毕业设计。通过分析和运行源码,你将深入了解各平台开发的技术细节和最佳实践,逐步培养起自己的项目开发和问题解决能力。此外,在求职或创业过程中,具备跨平台开发能力的大学生将更具竞争力。 其他说明: 为了确保源码资源的可运行性和易用性,特别注意了以下几点:首先,每份源码都提供了详细的运行环境和依赖说明,确保用户能够轻松搭建起开发环境;其次,源码中的注释和文档都非常完善,方便用户快速上手和理解代码;最后,我会定期更新这些源码资源,以适应各平台技术的最新发展和市场需求。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

源14

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值