habse 安装与代码调试

hbase安装

官方文档

Apache HBase® Reference Guidehttps://hbase.apache.org/book.html#quickstart

安装模式

独立HBase

一个独立的实例拥有所有HBase守护进程-Master、RegionServers和ZooKeeper -在一个JVM中运行,并持久化到本地文件系统。(可快速入门部署,体验 hbase shell ,但是不能够通过程序链接到hbase,因为 ZooKeeper  在 jvm 上运行,外部程序无法访问虚拟机内的 zk 端口)

 JDK版本要求 

HBase运行在Java虚拟机上,因此所有HBase部署都需要JVM,并且在每个节点上设置 JAVA_HOME

Apache HBase® Reference Guidehttps://hbase.apache.org/book.html#java

开始使用HBase

步骤:下载、配置并在独立模式下启动HBase

1. 从Apache下载镜像列表中选择一个下载站点。点击建议的顶部链接。这将带您到HBase版本的镜像。单击名为stable的文件夹,然后将以. tar.gz结尾的二进制文件下载到本地文件系统。暂时不要下载以 src.tar.gz 结尾的文件。

2. 当前稳定版本链接 https://dlcdn.apache.org/hbase/2.5.11/hbase-2.5.11-bin.tar.gz

3. 解压缩下载的文件到新创建的目录。

tar xzvf hbase-2.5.11-bin.tar.gz -C /usr/local/hbase

并进入到解压目录下 

cd /usr/local/hbase/hbase-2.5.11-bin

4. 您必须在启动 HBase 之前设置 JAVA_HOME 环境变量。为了使这更容易,HBase允许您在 conf/hbase-env.sh 文件中设置它。您必须找到Java在计算机上的安装位置,找到它的一种方法是使用 whereis java 命令。找到位置后,编辑 conf/hbase-env.sh 文件并取消注释以

#export JAVA_HOME= 开头的行,然后将其设置为Java安装路径。

export JAVA_HOME=/usr/jdk64/jdk1.8.0_112

5. bin/start-hbase.sh 脚本是作为启动HBase的一种方便方法提供的。发出命令,如果一切正常,标准输出中会记录一条消息,表明HBase启动成功。您可以使用 jps 命令来验证是否有一个名为 HMaster 的进程正在运行。在独立模式下,HBase运行这个JVM中的所有守护进程,即HMaster,单个HRegionServer和ZooKeeper守护进程。转到 http://localhost:16010 查看HBase Web UI。

步骤:首次使用HBase

 1. 连接到HBase。 

使用hbase shell命令连接到正在运行的HBase实例,该命令位于HBase安装的bin/目录中。

./bin/hbase shell
hbase(main):001:0>

 2. 显示 HBase 帮助文本。

键入help并按Enter键,以显示HBase Shell 的一些基本用法信息,以及几个示例命令。请注意,表名、行、列都必须用引号引起来。 

3. 创建表格。

使用create命令创建一个新表。必须指定表名和ColumnFamily名称。

hbase(main):001:0> create 'test', 'cf'
0 row(s) in 0.4170 seconds

=> Hbase::Table - test

4. 列出有关表的信息

使用list命令确认表存在

hbase(main):002:0> list 'test'
TABLE
test
1 row(s) in 0.0180 seconds

=> ["test"]

现在使用describe命令查看详细信息,包括配置默认值

hbase(main):003:0> describe 'test'
Table test is ENABLED
test
COLUMN FAMILIES DESCRIPTION
{NAME => 'cf', VERSIONS => '1', EVICT_BLOCKS_ON_CLOSE => 'false', NEW_VERSION_BEHAVIOR => 'false', KEEP_DELETED_CELLS => 'FALSE', CACHE_DATA_ON_WRITE =>
'false', DATA_BLOCK_ENCODING => 'NONE', TTL => 'FOREVER', MIN_VERSIONS => '0', REPLICATION_SCOPE => '0', BLOOMFILTER => 'ROW', CACHE_INDEX_ON_WRITE => 'f
alse', IN_MEMORY => 'false', CACHE_BLOOMS_ON_WRITE => 'false', PREFETCH_BLOCKS_ON_OPEN => 'false', COMPRESSION => 'NONE', BLOCKCACHE => 'true', BLOCKSIZE
 => '65536'}
1 row(s)
Took 0.9998 seconds

5. 将数据放入表中。

要将数据放入表中,请使用put命令。

hbase(main):003:0> put 'test', 'row1', 'cf:a', 'value1'
0 row(s) in 0.0850 seconds

hbase(main):004:0> put 'test', 'row2', 'cf:b', 'value2'
0 row(s) in 0.0110 seconds

hbase(main):005:0> put 'test', 'row3', 'cf:c', 'value3'
0 row(s) in 0.0100 seconds

在这里,我们插入三个值,一次一个。第一个插入位于row1,列cf:a,值为value1。HBase中的列由一个列族前缀(在本例中为cf)、一个冒号和一个列限定符后缀(在本例中为a)组成。

6. 一次扫描表中的所有数据。

从HBase获取数据的方法之一是扫描。使用scan命令扫描表中的数据。您可以限制扫描,但目前已获取所有数据。

hbase(main):006:0> scan 'test'
ROW                                      COLUMN+CELL
 row1                                    column=cf:a, timestamp=1421762485768, value=value1
 row2                                    column=cf:b, timestamp=1421762491785, value=value2
 row3                                    column=cf:c, timestamp=1421762496210, value=value3
3 row(s) in 0.0230 seconds

7. 获取单行数据。

要一次获取一行数据,请使用get命令。

hbase(main):007:0> get 'test', 'row1'
COLUMN                                   CELL
 cf:a                                    timestamp=1421762485768, value=value1
1 row(s) in 0.0350 seconds

8. 禁用表。

如果您想删除一个表或更改其设置,以及在其他一些情况下,您需要先禁用该表,使用disable命令。您可以使用enable命令重新启用它。

hbase(main):008:0> disable 'test'
0 row(s) in 1.1820 seconds

hbase(main):009:0> enable 'test'
0 row(s) in 0.1770 seconds

9. 要删除表,请使用drop命令。

hbase(main):011:0> drop 'test'
0 row(s) in 0.1370 seconds

 10. 退出 HBase Shell。

要退出HBase Shell并断开与集群的连接,请使用 quit 命令。HBase仍在后台运行。 

quit
程序:停止HBase

提供 bin/start-hbase.sh 脚本以方便地启动所有HBase守护进程的方式相同,bin/stop-hbase.sh 剧本阻止了他们。 

./bin/stop-hbase.sh
stopping hbase....................

 发出命令后,进程可能需要几分钟才能关闭。使用jps确保HMaster和HRegionServer进程已关闭。

局部测试的伪分布

伪分布式模式意味着HBase仍然完全在单个主机上运行,但每个HBase守护进程(HMaster,HRegionServer和ZooKeeper)作为单独的进程运行:在独立模式下,所有守护进程都在一个JVM进程/实例中运行。(测试练手推荐)

1. 如果HBase正在运行,请停止它。

如果你刚刚完成快速入门,而HBase仍在运行,请停止它。

2. 配置HBase。

编辑 hbase-site.xml 配置。首先,添加以下属性,该属性指示HBase以分布式模式运行,每个守护进程一个JVM实例。即代表使用独立的 zookeeper

<property>
  <name>hbase.cluster.distributed</name>
  <value>true</value>
</property>
  <!-- 指定外部ZooKeeper集群的主机列表 -->
  <property>
    <name>hbase.zookeeper.quorum</name>
    <value>host-ip</value>
  </property>

  <!-- 设置外部ZooKeeper的客户端端口(默认2181) -->
  <property>
    <name>hbase.zookeeper.property.clientPort</name>
    <value>2181</value>
  </property>
  • hbase.cluster.distributed
    必须设为 true,否则HBase将以单机模式运行,无法连接任何ZooKeeper。

  • hbase.zookeeper.quorum
    填写外部ZooKeeper集群的主机名或IP地址,多个地址用逗号分隔。

  • hbase.zookeeper.property.clientPort
    确保与外部ZooKeeper的服务端口一致(默认2181)。

3. 设置虚拟机 host

 修改主机名为 hbase

vim /etc/hostname

 改主机名原因: 因为hbase启动时会找zookeepers配置的master里面配置的hostname,默认为localhost,这个时修改不了的,导致IDEA访问的 localhost:16000时错误地址,所以我们改hostname 为 hbase ,然后在 win 修改 hosts 将其映射到虚拟机IP ,这样zookeeper寻找的master 地址就变为 hbase 了,IDEA访问的就是虚拟机IP加端口了,就不是原来的localhost:16000

修改主机映射

vim /etc/hosts

# 示例
192.168.137.130 hbase

修改后重启虚拟机 

修改 win 的 host 文件,C:\WINDOWS\system32\drivers\etc\hosts  添加映射

# hbase
192.168.137.130 hbase

 4. 开放端口

zookeeper 端口 2181

hbase webui 端口 16010

hbase client 通信端口 16000、16020

常见报错

Connection refused: no further information: localhost/127.0.0.1:16000

 修改虚拟机 hostname, hosts 修改 win hosts 文件,具体见上文

把linux的 /etc/hosts 里的 ip 映射 ,比如 192.168.80.128 linuxname 和 win 的 hosts文件一致即可

 org.apache.hadoop.hbase.PleaseHoldException: Master is initializing 

原因:Master正在初始化

解决:HDFS 中和 Zookeeper 中的 HBase 没有删除,所以这里需要将其进行删除

注意:删除Zookeeper中的 /hbase 目录,需要保证zookeeper已经开启,否则无法连接上。

方案:1. 删除zookeeper中的所有的/hbase目录

# 切换到安装 zookeeper的bin目录下,执行 ./zkCli.sh 命令
[XXhadoop102 bin]$ ./zkCli.sh
 
# 输入 ls / 命令行查看所有的内容
[zk: localhost:2181(CONNECTED) 0] ls /
[hbase, kafka, servers, spark, zookeeper]
 
# 使用 rmr /hbase 或者 deleteall /hbase 删除zookeeper中的所有 hbase的目录
[zk: localhost:2181(CONNECTED) 3] deleteall /hbase
Node does not exist: /hbase
 
# 此时,可以看到Zookeeper中已经没有HBase了
[zk: localhost:2181(CONNECTED) 5] ls /
[kafka, servers, spark, zookeeper]

  2.删除HDFS下的所有HBase目录

# 词命令行运行是在Hadoop的根目录下
[XX@hadoop102 hadoop]$ hdfs dfs -du -rm -r /hbase

代码调试

stormlong/springboot-hbasehttps://gitee.com/stormlong/springboot-hbase

### HBase安装方法 HBase 是一个高可靠性、高性能、面向列的分布式数据库,适用于存储大规模非结构化或半结构化数据。以下是关于其安装的相关说明: #### 版本兼容性注意事项 在安装 HBase 前,需注意 Hadoop 和 HBase 的版本兼容性问题。由于 HBase 高度依赖于 Hadoop 提供的分布式文件系统 (HDFS) 和资源管理框架 YARN,因此选择合适的版本至关重要[^2]。例如,在某些场景下,当使用的 Hadoop 版本为 3.1.3 时,推荐选用 HBase 2.2.X 系列版本作为匹配选项[^3]。 #### Linux 下 CentOS7 安装教程概述 对于基于 CentOS7 的操作系统,可以按照如下流程完成 HBase安装: 1. **设置运行环境** 编辑系统的 `~/.bashrc` 文件或 `/etc/profile` 文件,添加以下内容以定义 HBase 运行所需的环境变量: ```bash export HBASE_HOME=/opt/soft/hbase120 export PATH=$PATH:$HBASE_HOME/bin ``` 执行命令使更改生效: ```bash source /etc/profile ``` 2. **启动服务** 使用内置脚本启动 HBase 服务: ```bash start-hbase.sh ``` 上述操作能够帮助快速搭建单机模式下的 HBase 实验环境[^4]。 #### 更多细节补充 除了基本的安装步骤外,还需要关注以下几个方面来确保顺利部署: - 正确配置 HBase 的核心参数文件(如 hbase-site.xml),以便连接到目标 HDFS 并指定 ZooKeeper 地址。 - 如果计划构建生产级别的集群,则需要进一步调整网络通信端口以及日志记录策略等内容。 通过以上介绍可以看出,遵循官方文档指导并结合实际需求合理规划软硬件资源配置将是成功实施的关键因素之一[^5]。 ```python # 示例 Python 脚本用于验证 HBase 是否可用 from happybase import Connection connection = Connection('localhost') tables = connection.tables() print(tables) ```
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值