场景

CentOS7上搭建Hadoop集群(入门级):

https://blog.csdn.net/BADAO_LIUMANG_QIZHI/article/details/119335883

在上面搭建起来Hadoop的环境后,进行HBase的安装。

HBase

HBase是一个基于HDFS的面向列的分布式数据库,源于Google的

BigTable论文。HDFS基于流式数据访问,低时间延迟的数据访问并不

适合在HDFS上运行。所以,如果需要实时地随机访问超大规模数据集,使用HBase

是更好的选择。

HBase体系结构

HBase同样是采用Master/Slaves的主从服务器结构,它由一个HMaster服务器和多

个HRegionServer服务器构成,而所有服务器都是通过ZooKeeper协调并处理各服务器

运行期间可能遇到的错误。HMaster负责管理所有的HRegionServer,各HRegionServer

负责存储许多HRegion,每一个HRegion是对HBase逻辑表的分块。

HRegion

HBase使用表(Table)存储数据集,表由行和列组成,这与关系型数据库类似。

但是在HBase中,当表的大小超过设定值时,HBase会自动将表划分为不同的区域

(Region),每个区域称为一个HRegion,它是HBase集群上分布式存储和负载均衡

的最小单位,在这一点上,表和HRegion类似于HDFS中文件与文件块的概念。一个

HRegion中保存一个表中一段连续的数据,通过表名和主键范围(开始主键~结束主键)

来区分每一个HRegion。最开始,一个表只有一个HRegion,随着HRegion逐渐变大,

直到超出设定的闽值大小,便会在某行的边界把表分成两个大小基本相同的HRegion,

称为HRegion分裂。

HRegionServer

HRegionServer负责响应用户I/O请求,向HDFS中读写数据,一台机器上只运行

一个HRegionServera HRegionServer包含两部分:HLog部分和HRegion部分。

HLog用于存储数据日志,实质是HDFS的Sequence File。到达HRegion的写操作

首先被追加到日志中,然后才被加入内存中的MemStoreo HLog文件主要用于故障恢复。

例如某台HRegionServer发生故障,那么它所维护的HRegion会被重新分配到新的机器

上,新的HRegionServer在加载HRegion的时候可以通过HLog对数据进行恢复。

HRegion由多个HRegion组成,每个HRegion对应表中的一个分块,并且每一个

HRegion只会被一个HRegionServer管理。

HMaster

每台HRegionServer都会和HMaster服务器通信。HMaster的主要任务就是告诉每

个HRegionServer它要维护哪些HRegion 。

在HBase中可以启动多个HMaster,通过ZooKeeper的Master选举机制来保证系

统中总有一个Master在运行。HMaster的具体包括以下功能。

1、管理用户对表的增、删、改、查操作。

2、管理HRegionServer的负载均衡,调整HRegion分布。

3、在HRegion分裂后,负责新HRegion的分配。

4、在HRegionServer停机后,负责失效HRegionServer上的HRegion迁移。

ZooKeeper

ZooKeeper存储的是HBase中的一ROOT表和.META.表的位置,这是HBase中两

张特殊的表,称为根数据表(-ROOT-)和元数据表(.META. )。.META表记录普通用

户表的HRegion标识符信息,每个HRegion的标识符为:表名+开始主键十唯一ID。

随着用户表的HRegion的分裂,.META表的信息也会增加,并且还可能会被分割为几

个HRegion,此时可以用一个-ROOT-表来保存META的HRegion信息,而-ROOT-表

是不能被分割的,也就是-ROOT表只有一个HRegion。那么客户端(Client)在访问

用户数据前需要先访问ZooKeeper,然后访问一ROOT表,接着访问.META.表,最后

才能找到用户数据所在的位置进行访问。

此外ZooKeeper还负责监控各个机器的状态,之前各机器需要在ZooKeeper中注册一

个实例。当某台HRegionServer发生故障时,通知HMaster进行HRegion迁移;若HMaster

发生故障,ZooKeeper负责恢复HMaster,并且保证同时有且只有一台HMaster运行。

特点

HBase是一个基于列模式的映射数据库,它只能表示简单的键一值的映射关

系。与关系型数据库相比,它具有如下特点。

1、数据类型:

HBase只有简单的字符串类型,它只保存字符串.而关系型数据库有着丰富的类型选择和存储方式。

2、数据操作:

HBase只有简单的插入、查询、删除、清空等操作,表和表之间是

分离的,没有复杂的表和表之间的关系,所以不能也没有必要实现表和表之间

的关联操作。而关系型数据库有多种连接操作。

3、存储模式:

HBase是基于列存储的,每个列族都由几个文件保存,不同列族的

文件是分离的。而关系型数据库是基于表格结构和行模式存储的。

4、数据维护:

HBase的更新操作实际上是插入了新的数据,它的旧版本依然会保留,

而关系型数据库是替换修改。

5、可伸缩性:

HBase这类分布式数据库就是为了这个目的而开发出来的,所以它

能够轻松地增加或减少硬件数量,并且对错误的兼容性也比较高。而关系型数

据库通常需要增加中间层才能实现类似的功能。

注:

博客:
https://blog.csdn.net/badao_liumang_qizhi
关注公众号
霸道的程序猿
获取编程相关电子书、教程推送与免费下载。

实现

1、首先下载HBase的安装包

https://mirrors.tuna.tsinghua.edu.cn/apache/hbase/

这里选择2.4.5版本下的bin.tar.gz的文件下载

下载成功之后将其上传并解压到master服务器上


目录文件说明:

bin: 包含了所有可执行命令与脚本

conf:配置文件目录

hbase-webapps:存储Web应用的目录,这些应用主要用于查看HBase的运行状态。

默认访问地址http://master:16010,其中master是HBase Mater服务器地址。

lib:jar文件目录,包括第三方依赖与Hadoop相关jar文件,其中Hadoop相关jar文件最好能与实际运行的Hadoop版本一致。

logs:日志文件

2、分布模式的HBase会运行在多个节点上,通常是将HBase的HMaster运行在HDFS的NameNode上,而

将HRegionServer运行在HDFS的DataNode上。

进入到conf目录,修改配置文件

修改hbase-site.xml

<configuration><property><name>hbase.cluster.distributed</name><value>true</value></property><property><name>hbase.rootdir</name><value>hdfs://master:9000/hbase</value></property><property><name>hbase.master</name><value>master:600000</value></property><property><name>hbase.zookeeper.quorum</name><value>master,slave1,slave2</value></property>
</configuration>

说明:

hbase.cluster.distributed 配置HBase为完全分布式

hbase.master 配置HMaster的地址

hbase.zookeeper.quorum 配置Zookeeper集群中所有服务器的位置

hbase.rootdir 配置HRegionServer的数据库存储目录

3、修改hbase-env.sh

此文件是来配置全局HBase集群系统的特性,每一台机器都可以通过该文件来了解全局HBse的

某些特性。在文件末尾需要增加以下环境变量

export JAVA_HOME=/usr/local/java/jdk1.8.0_162
export HADOOP_HOME=/hadoop/hadoop-2.8.0
export HBASE_HOME=/hbase/hbase-2.4.5
export HBASE_MANAGES_ZK=true

说明:

前3个环境变量分别代表Java.、Hadoop、HBase的安装目录。分布式的HBase集

群需要ZooKeeper实例的运行,最后一个环境变量HBASE MANAGES ZK表示HBase

是否使用内置的ZooKeeper实例,默认为true。当在hbase-site.xml文件中配置了hbase.

zookeeper.quorum属性后,系统会使用该属性指定的ZooKeeper集群服务器列表。在启动

HBase时,HBase将把ZooKeeper作为自身的一部分运行,其对应进程为“HQuorumPeer" ,

关闭HBase时其内置ZooKeeper实例也一起关闭。如果HBASE MANAGES ZK为

false,表示不会使用内置ZooKeeper实例,也就是内置ZooKeeper不会随HBase启动,而

需要用户在指定机器上独立安装配置ZooKeeper实例,同样使用hbase.zookeeper.quorum

属性指定这些机器,并且在启动HBase之前必须手动启动这些机器的ZooKeeper。

这里使用HBase内置ZooKeeper实例。

4、修改regionservers文件

该文件列出T所有HRegionServer节点,配置方式与Hadoop的slaves文件类似,

每一行指定一台机器。当HBase启动、关闭时会把此文件中列出的所有机器同时启动、

关闭。

5、同Hadoop的分布式安装类似,还需要将HBase所在目录/hbase分别复制到slave1、slave2

scp -r /hbase slave1:/
scp -r /hbase slave2:/

6、启动HBase

进入到master节点的hbase的bin目录下

./start-hbase.sh

7、在slave1和2节点上输入jps查看增加了两个java进程,HQuorumPeer 为ZooKeeper进程和HMaster为HBase进程。

8、在启动HBase后,通过命令

./hbase shell

进入到HBase Shell

然后使用命令

status

可以看到HBase的运行状态

标识共有两个HRegionServer正在正常运行

还可以通过HMaster节点的16010端口查看HBase的运行状态

http://192.168.148.128:16010/

最后通过命令exit退出HBase Shell

HBase在CentOS上分布集群安装相关推荐

  1. 一脸懵逼学习基于CentOs的Hadoop集群安装与配置(三台机器跑集群)

    1:Hadoop分布式计算平台是由Apache软件基金会开发的一个开源分布式计算平台.以Hadoop分布式文件系统(HDFS)和MapReduce(Google MapReduce的开源实现)为核心的 ...

  2. Hbase完全分布式高可用集群安装配置

    1.准备安装软件 OS:centos7 Hadoop:hadoop-2.7.3 HBase:hbase-1.2.6 JDK:jdk-8u121-linux-x64 集群机器: 主机 IP地址 系统 软 ...

  3. RocketMQ(四)—— 单机与集群安装

    文章目录 单机安装 前置工作 硬件需求: 软件需求: 安装: 1. 下载安装包 2. 下载的包上传至Linux 3. 解压 4. 修改初始内存 5.启动 6. 发送.接收消息测试 发送消息 接收消息 ...

  4. 二、HBase集群安装与基础架构

    一.集群安装: 1.需要先搭建Hadoop集群,之后再搭建HBase集群. 0.选择安装的主机 s100 ~ s103 1.jdk 略 2.hadoop 略 3.tar tar -zxvf ~/dow ...

  5. HBase 1.2.6 完全分布式集群安装部署详细过程

    2019独角兽企业重金招聘Python工程师标准>>> Apache HBase 是一个高可靠性.高性能.面向列.可伸缩的分布式存储系统,是NoSQL数据库,基于Google Big ...

  6. CentOS下Storm 1.0.0集群安装详解

    本文环境如下: 操作系统:CentOS 6 32位 ZooKeeper版本:3.4.8 Storm版本:1.0.0 JDK版本:1.8.0_77 32位 python版本:2.6.6 集群情况:一个主 ...

  7. 安装部署(七) HBase集群安装部署与测试

    HBase集群安装部署与测试 Hadoop 2.7.2  Spark 2.0.0 Kafka 0.10.0.0 HBase 1.2.2 Zookeeper 3.4.8 参考: http://www.t ...

  8. 2021年大数据HBase(二):HBase集群安装操作

    全网最详细的大数据HBase文章系列,强烈建议收藏加关注! 新文章都已经列出历史文章目录,帮助大家回顾前面的知识重点. 目录 系列历史文章 前言 HBase集群安装操作 一.上传解压HBase安装包 ...

  9. mysql集群安装(centos)

    永不放弃,一切皆有可能!!! 只为成功找方法,不为失败找借口! mysql集群安装(centos) mysql cluster : 1. 基于NDB Cluster 的分布式数据库系统 2. mysq ...

最新文章

  1. 【收藏】Java多线程/并发编程大合集
  2. OpenCV 脸部跟踪(1)
  3. Android.mk文件官方使用说明
  4. cnnvd爬取漏洞信息
  5. 企业微信SDK接口api调用代码
  6. SPSS异方差检验的实现
  7. 为什么百度快照没有样式
  8. tf.maximum
  9. rasp 系统_RASP相关的技术实现和产品介绍
  10. windows通知栏中显示 微信等应用软件 的通知
  11. 硬笔书法“案”字怎样书写正确?“最美中国字”来教你!
  12. 点云obb盒显示 python
  13. 一份小白前端可视化学习指南——附思维导图
  14. ocv特性_锂离子电池的三大特性分析
  15. 汽车电子狗的原理 【闲杂篇】
  16. Java课程设计-画图工具
  17. 试论社会学专业定×××方法课程教学现状及改革途径
  18. Android实现图片浏览功能(图片器原理实现)
  19. 物流基础知识(十六)
  20. 不会水的人,如何自学游泳

热门文章

  1. 插入排序、选择排序、快速排序以及归并排序(附Python代码)
  2. 哈尔滨工业大学-数据库系统(基本知识与关系模型2)
  3. android componentname activity,ComponentName的使用
  4. Linux环境下安装OpenOffice 4.1.8
  5. Hadoop的基本概念和简单使用
  6. redis介绍以及使用 ppt_光纤收发器的工作原理以及使用方法介绍
  7. gns3中两个路由器分别连接主机然后分析ip数据转发报文arp协议_TCP/IP协议知识总结...
  8. mysql打印语句_最全总结 | 聊聊 Python 数据处理全家桶(Mysql 篇)
  9. 命令构建gradle项目_【Android 修炼手册】Gradle 篇 -- Gradle 源码分析
  10. mysql 关联更新_MySQL 规范