Hbase集群安装与常见问题解决

本文涉及的产品
服务治理 MSE Sentinel/OpenSergo,Agent数量 不受限
云原生网关 MSE Higress,422元/月
注册配置 MSE Nacos/ZooKeeper,118元/月
简介: Hbase集群安装与常见问题解决

首先说明,要使用hbase是需要先安装hadoop和zookeeper的(也可以使用自带的但是不建议),参考[zookeeper集群安装]

[hadoop集群安装]

我用的是三台机器,mini1,mini2,mini3

Hbase的安装流程

1、将hbase上传到hadoop集群,我这里上传的是hbase-0.99.2-bin.tar.gz。然后解压并且重命名为hbase,为了方便管理我讲hbase移动到了apps目录下。(上传、解压、重命名)

[root@mini1 ~]# tar –zxvf  hbase-0.99.2-bin.tar.gz
[root@mini1 ~]# mv hbase-0.99.2 hbase
[root@mini1 ~]# mv hbase apps
[root@mini1 ~]# cd apps/
[root@mini1 apps]# ll
总用量 20
drwxr-xr-x.  8 root   root   4096 10月 19 15:15 apache-flume-1.6.0-bin
drwxrwxr-x. 10 hadoop hadoop 4096 9月  30 22:04 hadoop-2.6.4
drwxr-xr-x.  7 root   root   4096 10月 30 00:20 hbase
drwxr-xr-x.  8 root   root   4096 10月 17 12:38 hive
drwxr-xr-x. 10 root   root   4096 10月 29 23:21 zookeeper-3.4.6

2、修改环境变量

在编辑模式下,最后面添加

[root@mini1 apps]# vi /etc/profile
...
export HBASE_HOME=/root/apps/hbase
export PATH=$PATH:$HBASE_HOME/bin
[root@mini1 apps]#source /etc/profile

在机器mini2,mini3上也执行2操作修改环境变量

3、修改配置文件

修改的是 hbase-env.sh,hbase-site.xml, regionservers

我们现在文本编辑器里面修改再上传覆盖就好了

hbase-env.sh添加内容如下

第一行指定jdk位置

第二行指定额外的classpath元素

第三行是关于jvm的可以不需要

第四行,true表示使用hbase自带的zookeeper,false表示使用自己的zookeeper(推荐,至少趁此学一下zookeeper,相信学了hbase后面的storm跟spark也会去学,后面很多都要使用zookeeper,一劳永逸的事)。

export JAVA_HOME=/heima32/jdk1.7.0_55/
export JAVA_CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
export HBASE_OPTS="-XX:+UseConcMarkSweepGC"
export HBASE_MANAGES_ZK=false

hbase-site.xml内容如下

<configuration>
<property>
<name>hbase.master</name>
<value>mini1:60000</value>
<description>指定hbase的主节点与端口号</description>
</property>
<property>
<name>hbase.master.maxclockskew</name> 
<value>180000</value>
<description>时间同步允许的时间差</description>
</property>
<property>
<name>hbase.rootdir</name>
<value>hdfs://mini1:9000/hbase</value>
<description>hbase共享目录,持久化hbase数据,这个需要看你hadoop的核心文件里面配置的是不是mini1:9000不是的话得改成自己的hadoop里面写的</description>
</property>
<property>
<name>hbase.cluster.distributed</name> 
<value>true</value>
<description>是否是分布式的,当然</description>
</property>
<property>
<name>hbase.zookeeper.quorum</name>
<value>mini1,mini2,mini3</value>
<description>指定zookeeper,我的zookeeper集群就是在这三台机器的</description>
</property>
<property>
<name>hbase.zookeeper.property.dataDir</name>
<value>/root/hbase/tmp/zookeeper</value>
<description>zookeeper配置信息快照的位置,目录会自己创建的</description>
</property>
</configuration>

regionservers里面添加从节点机器名

mini2
mini3

然后将三个文件上传到hbase的conf目录下

4、将按照配置好的hbase上传到其他机器

这里是mini1配置好了,发送到mini2和mini3机器

[root@mini1 ~]# scp -r /root/apps/hbase mini2:/root/apps
[root@mini1 ~]# scp -r /root/apps/hbase mini3:/root/apps

5、启动hbase

进入到mini1的hbase的bin目录下启动

启动完了使用jsp命令查看是否启动起来了

[root@mini1 bin]# ./start-hbase.sh 
starting master, logging to /root/apps/hbase/logs/hbase-root-master-mini1.out
mini2: starting regionserver, logging to /root/apps/hbase/bin/../logs/hbase-root-regionserver-mini2.out
mini3: starting regionserver, logging to /root/apps/hbase/bin/../logs/hbase-root-regionserver-mini3.out
[root@mini1 bin]# jps
1593 ResourceManager
7133 HMaster
4550 QuorumPeerMain
2831 NameNode
7310 Jps

注:启动起来的前提需要启动hadoop和zookeeper,最后启动的话,那么mini1机器上会多出HMaster进程,mini2和mini3上多出了HRegionServer。

常见问题解决

这些问题都是我遇到的

下面的是自己的hosts文件,三台机器一样

[root@mini1 bin]# cat /etc/hosts
127.0.0.1   localhost localhost.localdomain localhost4 localhost4.localdomain4
::1         localhost localhost.localdomain localhost6 localhost6.localdomain6 localhost.jinbm
192.168.25.127 mini1
192.168.25.129 mini2
192.168.25.130 mini3

1、如果启动不起来,查看日志出现下面的异常

Cause:
org.apache.hadoop.hbase.ClockOutOfSyncException: org.apache.hadoop.hbase.ClockOutOfSyncException: 
Server mini2,16020,1508608510960 has been rejected; Reported time is too far out of sync with master.  
Time difference of 428987358ms > max allowed of 180000ms

出现这个问题是当时我mini2这台机器和mini1的时间差太多了记得是4天,明显大于配置文件中写的时间同步允许的时间差也就是180000ms。

同步时间即可

ntpdate没有的话安装就好了

每台机器都像下面这样执行

[root@mini1 bin]# ntpdate
-bash: ntpdate: command not found
[root@mini1 bin]# yum install ntp
...
[root@mini1 bin]# ntpdate
30 Oct 06:21:25 ntpdate[10542]: no servers can be used, exiting
[root@mini1 bin]# ntpdate -u ntp.api.bz
29 Oct 22:22:37 ntpdate[10543]: step time server 115.28.122.198 offset -28798.299112 sec
[root@mini1 bin]# date
2017年 10月 29日 星期日 22:22:44 CST

在使用ntpdate同步时间时出现以下错误:

ntpdate[46700]: no server suitable for synchronization found

没有找到好的解决方案,只能换另外一个工具来完成时间同步。

这里使用的Centos6.5,yum源使用的是阿里云的镜像。

yum install -y rdate

安装完毕后,使用下述命令即可。

rdate -s  time-b.nist.gov

然后启动出现的问题如下

[root@mini1 bin]# ./start-hbase.sh 
starting master, logging to /root/apps/hbase/logs/hbase-root-master-mini1.out
root@mini3's password: root@mini2's password: 
mini3: starting regionserver, logging to /root/apps/hbase/bin/../logs/hbase-root-regionserver-mini3.out

这个时候我们只能输一个密码,所以有一个肯定是启动不了的。

解决办法:设置mini1在mini2和mini3上免密登录。

免密登录,先生存秘钥,在mini2和mini3上授权认证通过。
[root@mini1 ~]# ssh-keygen -t rsa
Generating public/private rsa key pair.
Enter file in which to save the key (/root/.ssh/id_rsa): 
Enter passphrase (empty for no passphrase): 
Enter same passphrase again: 
Your identification has been saved in /root/.ssh/id_rsa.
Your public key has been saved in /root/.ssh/id_rsa.pub.
The key fingerprint is:
52:1e:06:fa:7e:01:3d:a6:1d:bd:cb:19:08:86:cc:ca root@mini1
The key's randomart image is:
+--[ RSA 2048]----+
|      .          |
|   o o o .       |
|    = + O .      |
| . . o X = .     |
|  E   + S o      |
|     . . o +     |
|      . . +      |
|       .         |
|                 |
+-----------------+
[root@mini1 ~]# cd .ssh/
[root@mini1 .ssh]# ll
总用量 12
-rw-------. 1 root root 1675 10月 30 00:31 id_rsa
-rw-r--r--. 1 root root  392 10月 30 00:31 id_rsa.pub
-rw-r--r--. 1 root root 2359 10月 13 04:33 known_hosts
[root@mini1 .ssh]# ssh-copy-id mini2
root@mini2's password: 
Now try logging into the machine, with "ssh 'mini2'", and check in:
  .ssh/authorized_keys
to make sure we haven't added extra keys that you weren't expecting.
[root@mini1 .ssh]# ssh-copy-id mini3
root@mini3's password: 
Now try logging into the machine, with "ssh 'mini3'", and check in:
  .ssh/authorized_keys
to make sure we haven't added extra keys that you weren't expecting.
测试免密登录
[root@mini1 .ssh]# ssh mini2
Last login: Mon Oct 30 00:25:33 2017 from mini1
[root@mini2 ~]#

再次启动OK

[root@mini1 bin]# ./start-hbase.sh 
starting master, logging to /root/apps/hbase/logs/hbase-root-master-mini1.out
mini2: starting regionserver, logging to /root/apps/hbase/bin/../logs/hbase-root-regionserver-mini2.out
mini3: starting regionserver, logging to /root/apps/hbase/bin/../logs/hbase-root-regionserver-mini3.out


测试HRegionServer上下线


单独启动HRegionServer节点:


启动集群中所有的regionserver

./hbase-daemons.sh start regionserver

启动某个regionserver

./hbase-daemon.sh start regionserver

相关实践学习
lindorm多模间数据无缝流转
展现了Lindorm多模融合能力——用kafka API写入,无缝流转在各引擎内进行数据存储和计算的实验。
云数据库HBase版使用教程
&nbsp; 相关的阿里云产品:云数据库 HBase 版 面向大数据领域的一站式NoSQL服务,100%兼容开源HBase并深度扩展,支持海量数据下的实时存储、高并发吞吐、轻SQL分析、全文检索、时序时空查询等能力,是风控、推荐、广告、物联网、车联网、Feeds流、数据大屏等场景首选数据库,是为淘宝、支付宝、菜鸟等众多阿里核心业务提供关键支撑的数据库。 了解产品详情:&nbsp;https://cn.aliyun.com/product/hbase &nbsp; ------------------------------------------------------------------------- 阿里云数据库体验:数据库上云实战 开发者云会免费提供一台带自建MySQL的源数据库&nbsp;ECS 实例和一台目标数据库&nbsp;RDS实例。跟着指引,您可以一步步实现将ECS自建数据库迁移到目标数据库RDS。 点击下方链接,领取免费ECS&amp;RDS资源,30分钟完成数据库上云实战!https://developer.aliyun.com/adc/scenario/51eefbd1894e42f6bb9acacadd3f9121?spm=a2c6h.13788135.J_3257954370.9.4ba85f24utseFl
目录
相关文章
|
10月前
|
分布式计算 Hadoop Shell
93 hbase安装
93 hbase安装
69 0
|
11月前
|
存储 Oracle 关系型数据库
HBase集群环境搭建与测试(上)
HBase集群环境搭建与测试
218 0
|
12月前
|
大数据 分布式数据库 Docker
基于Docker搭建大数据集群(七)Hbase部署
基于Docker搭建大数据集群(七)Hbase部署
|
1月前
|
Prometheus 监控 Cloud Native
在 HBase 集群中,Prometheus 通常监控哪些类型的性能指标?
在 HBase 集群中,Prometheus 通常监控哪些类型的性能指标?
|
30天前
|
Prometheus 监控 Cloud Native
在 HBase 集群中,Prometheus 通常监控哪些类型的性能指标?
在 HBase 集群中,Prometheus 通常监控哪些类型的性能指标?
|
4月前
|
分布式计算 监控 Hadoop
Ganglia监控Hadoop与HBase集群
Ganglia监控Hadoop与HBase集群
|
4月前
|
分布式计算 Hadoop Java
Hbase集群搭建
Hbase集群搭建
|
4月前
|
存储 Java Linux
Linux安装HBase的详细教程及常用方法
Linux安装HBase的详细教程及常用方法
436 1
|
分布式计算 Hadoop Shell
Hbase集群搭建
Hbase集群搭建
199 0
|
4月前
|
SQL 分布式计算 Hadoop
Hadoop学习笔记(HDP)-Part.16 安装HBase
01 关于HDP 02 核心组件原理 03 资源规划 04 基础环境配置 05 Yum源配置 06 安装OracleJDK 07 安装MySQL 08 部署Ambari集群 09 安装OpenLDAP 10 创建集群 11 安装Kerberos 12 安装HDFS 13 安装Ranger 14 安装YARN+MR 15 安装HIVE 16 安装HBase 17 安装Spark2 18 安装Flink 19 安装Kafka 20 安装Flume
113 1
Hadoop学习笔记(HDP)-Part.16 安装HBase