HBase安装配置
一、HBase概述:
HBase是一个开源的非关系型分布式数据库(NoSQL),它参考了谷歌的BigTable建模,实现的编程语言为 Java。它是Apache软件基金会的Hadoop项目的一部分,运行于HDFS文件系统之上,为 Hadoop 提供类似于BigTable 规模的服务,可以存储海量稀疏的数据,并具备一定的容错性、高可靠性及伸缩性。主要应用场景是实时随机读写超大规模的数据。
HBase在列上实现了BigTable论文提到的压缩算法、内存操作和布隆过滤器。HBase的表能够作为MapReduce任务的输入和输出,可以通过Java API来存取数据,也可以通过REST、Avro或者Thrift的API来访问。
HBase不能取代RDBMS,因为二者的应用场景不同。HBase为了解决海量数据的扩展性,支持简单的增加节点来实现线性扩展,从而在集群上管理海量的非结构化或半结构化的稀疏数据。HBase仅能通过主键(raw key)或主键的range检索数据,支持单行事务。

上图描述Hadoop EcoSystem中的各层系统。其中,HBase位于结构化存储层,Hadoop HDFS为HBase提供了高可靠性的底层存储支持,Hadoop MapReduce为HBase提供了高性能的计算能力,Zookeeper为HBase提供了稳定服务和failover机制。
此外,Pig和Hive还为HBase提供了高层语言支持,使得在HBase上进行数据统计处理变的非常简单。 Sqoop则为HBase提供了方便的RDBMS数据导入功能,使得传统数据库数据向HBase中迁移变的非常方便。
二、安装之前 - 检查必要条件
2.1 Java (需要安装1.6.x及其以上版本)
在终端输入 java -version
来查看你机子上的 Java 版本;

2.2 Hadoop
Hadoop的具体安装可以参见我们以前的课程:Hadoop部署及管理。需要注意的是伪分布模式下,HBase 的版本需要和 Hadoop版本 匹配
,不然很可能容易出错。你可以在HBase的lib目录下看到对应的Hadoop的Jar文件版本。
在这里,我们使用了Hadoop V2.4.1版本以及HBase V0.98.11版本。
Hadoop 2.4.1 目录位置在实验楼环境中的 /opt/hadoop-2.4.1
。
2.3 SSH
SSH的安装,在Hadoop部署及管理中也涵盖了这部分内容。SSH用来管理远程Hadoop和HBase守护进程。
本实验环境下,为了大家的方便,我们已经为大家准备好了这些必要条件,你只需要专注于HBase的安装配置即可。
三、安装进行时 - 安装和配置HBase
确认上面的条件我们都准备好了之后,就可以开始安装HBase了。实验开始前,你应该切换到 hadoop 用户:
$ su hadoop
HBase的安装通常分为3种模式:
3.1 单机模式 安装
3.1.1 下载和解压
单机模式的安装非常简单,几乎不用对安装文件做什么修改就可以使用。单机模式下,HBase并不使用HDFS,因此将安装文件解压后就几乎可以直接运行。输入命令下载HBase:
$ sudo wget http://labfile.oss.aliyuncs.com/hbase-0.98.11-hadoop2-bin.tar.gz
hbase 其他下载源参考 : https://mirrors.tuna.tsinghua.edu.cn/apache/hbase/stable/hbase-1.4.9-bin.tar.gz
hbase 其他下载源参考 : https://mirrors.tuna.tsinghua.edu.cn/apache/hbase/stable/hbase-1.4.9-bin.tar.gz
再将其压缩包解压:
$ sudo tar zxvf hbase-0.98.11-hadoop2-bin.tar.gz
由于解压出来的文件名可能很长,建议修改为较短文件名,例如:
$ sudo mv hbase-0.98.11-hadoop2 /opt/hbase
$ sudo chmod 777 /opt/hbase #授予权限
3.1.2 配置 hbase-site.xml
在运行之前,我们需要对HBase进行相关配置。建议大家修改 ${HBase-Dir}/conf/hbase-site.xml 文件,因为即使你修改了hbase-default.xml文件,也会被hbase-site.xml中的配置所覆盖。也就是说,最终是以 hbase-site.xml 中的配置为准的。我们做如下修改:
<configuration>
<property>
<name>hbase.rootdir</name>
<value>file:///tmp/hbase-${user.name}/hbase</value>
</property>
</configuration>
注意:修改 ${user.name}
为你自己的 hadoop 用户名
3.2 伪分布模式安装
伪分布模式是一个运行在单台机器上的分布式模式。此模式下,HBase所有的守护进程将运行在同一个节点之上,而且需要依赖HDFS,因此在此之前必须保证HDFS已经成功运行,请参考我们前面的课程:Hadoop伪分布模式配置部署。确认无误后,我们就可以开始配置HBase的参数了。
(1)配置 hbase-site.xml 文件
<configuration>
<property>
<name>hbase.rootdir</name>
<value>hdfs://localhost:9000/hbase</value>
</property>
<property>
<name>hbase.cluster.distributed</name>
<value>true</value>
</property>
</configuration>
hbase.rootdir:该参数制定了HReion服务器的位置,即数据存放的位置。主要端口号要和Hadoop相应配置一致。
hbase.cluster.distributed:HBase的运行模式。false是单机模式,true是分布式模式。若为false, HBase和Zookeeper会运行在同一个JVM里面。默认为false.
(2)设置环境变量
另外,我们需要设置一些环境变量。修改HBase下的conf目录中的hbase-env.sh文件(你的jdk路径可能不一样):
export JAVA_HOME=/usr/local/jdk1.7.0_67
export HBASE_MANAGES_ZK=true
export HBASE_MANAGES_ZK=true
此配置信息,表示设置由hbase自己管理zookeeper,不需要单独的zookeeper, 本文搭建的 Hbase 用的是自带的 zookeeper,故设置为true.
最后修改添加PATH, 则输入:
$ sudo vim /etc/profile
来修改 /etc/profile 文件:
# set hbase path
export HBASE_HOME=/opt/hbase
export PATH=$PATH:/opt/hbase/bin
3.3 完全分布模式安装
由于完全分布模式需要多台机器,在这里我们就不给出演示了。
四、安装之后 - 运行和停止 HBase
正如上面我们提到的,HBase安装分为3个模式,因此HBase的运行自然也分为同样的3个模式。
4.1 单机模式运行
(1)启动
单机模式下不需要HDFS,因此不需要事先启动Hadoop,直接启动HBase即可。终端下输入命令:./start-hbase.sh

注意:路径要正确,应为:$HBASE_HOME/bin 目录,否则会找不到 start-hbase.sh 这个文件,就会出现错误
(2)查看进程
我们可以通过 jps
来查看当前 HBase 的进程:

(3)停止 HBase 服务
输入 ./stop-hbase.sh

4.2 伪分布模式运行
(1)启动和查看进程
前面我们提到过,伪分布模式下,必须先确保 HDFS 已经启动。因此,我们先启动 HDFS,输入命令: ./start-all.sh

使用 jps
查看目前 Hadoop 的进程:

HDFS 成功启动之后,我们再启动 HBase,这里和单机模式下启动 HBase 的方法一样,输入命令: ./start-hbase.sh
:

此时再使用 jps
查看,可以看到多了HBase的相关进程:

(2)进入 HBase Shell
通过HBase Shell用户可以方便地创建、删除以及修改表,还可以向表中添加数据、列出表中的相关相信等。

输入 help
来查看其所支持的命令,可以根据自己的需要选择。

输入
exit
退出shell
(3)停止 HBase
根据依赖关系,我们需要先关闭HBase, ./stop-hbase.sh
:

通过 jps
可以看到,HBase相关的进程没有了:

再关闭HDFS, ./stop-all.sh
.

最后,再通过 jps
发现 HDFS 的进程也没有了:

实例配置:
[root@hadoop000 conf] # cat hbase-site.xml <configuration> <property> <name>hbase.rootdir< /name > <value>hdfs: //hadoop000 :8020 /hbase < /value > // 这个端口必须与hadoop core-site.xml 配置文件下 端口匹配 < /property > <property> <name>hbase.master.info.port< /name > <value>60010< /value > < /property > <property> <name>hbase.cluster.distributed< /name > <value> true < /value > < /property > < /configuration > |
[root@hadoop000 conf] # cat hbase-env.sh ***** export JAVA_HOME= /home/JDK/jdk1 .8.0_181 export HBASE_MANAGES_ZK= true ***** |
[root@hadoop000 conf] # cat regionservers hadoop000 |
成功启动后 验证
[root@hadoop000 hadoop]# jps
15760 ResourceManager
19235 Jps
15461 DataNode
18426 HQuorumPeer
15851 NodeManager
15340 NameNode
18493 HMaster
18621 HRegionServer
15614 SecondaryNameNode
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· AI与.NET技术实操系列:基于图像分类模型对图像进行分类
· go语言实现终端里的倒计时
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 25岁的心里话
· 闲置电脑爆改个人服务器(超详细) #公网映射 #Vmware虚拟网络编辑器
· 零经验选手,Compose 一天开发一款小游戏!
· 因为Apifox不支持离线,我果断选择了Apipost!
· 通过 API 将Deepseek响应流式内容输出到前端
2018-05-17 公网通过代理访问阿里云vpc redis
2018-05-17 Redis 数据恢复方法,redis-port 工具将自建 redis 的 rdb文件同步到云数据库
2018-05-17 docker 报错:x509: certificate has expired or is not yet valid