微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

HBase集群的安装和启动停止

Hbase安装前配置

配置hbase-env.sh

1.先配置环境变量
https://blog.csdn.net/qq_41489540/article/details/110004812

修改 hbase-env.sh

如果用jdk8的话给下面两行代码注释掉,因为jdk8没有永久代了.jdk8叫元空间,下面配置是对永久代的配置.,没有用处,所以就注释掉.

一般在/root/soft/hbase-1.3.1/conf/hbase-env.sh 的 46 47行,给下面的代码注释掉.

# export HBASE_MASTER_OPTS="$HBASE_MASTER_OPTS -XX:PermSize=128m -XX:MaxPermSize=128m"
# export HBASE_REGIONSERVER_OPTS="$HBASE_REGIONSERVER_OPTS -XX:PermSize=128m -XX:MaxPermSize=128m"

HBase认用自带的zookeeper,但是一般都是用我们自己安装的Zookeeper ,这个在"/root/soft/hbase-1.3.1/conf/hbase-env.sh" 文件的128行

export HBASE_MANAGES_ZK=false # 改成false,不用HBase自己的zookeeper

配置一下JAVA_HOME , 这个配置一般在"/root/soft/hbase-1.3.1/conf/hbase-env.sh" 的 26 27行的样子

 export JAVA_HOME=/usr/java/jdk1.8.0_201-amd64

读取配置文件顺序

HBase在启动的时候会先读取一个hbase-default.xml文件,然后再读取hbase-site.xml配置文件,你在hbase-site.xml配置的属性会覆盖同名的hbase-default.xml文件里面的属性.

修改hbase-site.xml配置一些参数

路径: “/root/soft/hbase-1.3.1/conf/hbase-site.xml”

<?xml version="1.0"?>
<?xml-stylesheet type="text/xsl" href="configuration.xsl"?>
<configuration>
       <!-- 每个regionServer的共享目录,用来持久化Hbase,认情况下在/tmp/hbase下面 
		HBase是基于HDFS来存储数据的,下面是设置存放到HDFS的目录的地址的
		ip是NameNode的地址
		-->  
	<property>     
		<name>hbase.rootdir</name>     
		<value>hdfs://zjj101:9000/HBase</value>   
	</property>
    <!-- hbase集群模式,false表示hbase的单机,true表示是分布式模式 -->  
	<property>   
		<name>hbase.cluster.distributed</name>
		<value>true</value>
	</property>
 	<!-- HBase注册到的Zookeeper地址,如果是集群的话,多个地址就用逗号隔开 -->
	<property>    
		<name>hbase.zookeeper.quorum</name>
	     <value>zjj101:2181</value>
	</property>
		<!-- 因为没用HBase的Zookeeper,你用的是自己的Zookeeper,
 			所以这里需要指定Zookeeper存数据的目录的地方
			这个地址是程序员自己自定义的.
			-->
	<property>   
		<name>hbase.zookeeper.property.dataDir</name>
	     <value>/root/soft/data/ZKData</value>
	</property>

</configuration>

配置完了就给配置好的HBase分发到别的集群节点上

可以用同步分发脚本.

单机启动HBase

启动HBase之前需要确保HDFS 和Zookeeper是正常的

尽量先启动master节点,再启动regionserver

  • 一台机器启动master主节点
[root@zjj101 bin]# sh hbase-daemon.sh start master  # 启动命令
starting master, logging to /root/soft/hbase-1.3.1/bin/../logs/hbase-root-master-zjj101.out
[root@zjj101 bin]# jps
21955 Application
120086 HMaster  # 说明已经启动了master节点

  • 多台机器用单机启动方式启动启动regionserver

    xcall “/root/soft/hbase-1.3.1/bin/hbase-daemon.sh” start regionserver

    xcall是我用集群执行命令脚本,也可以每台机器都执行一遍"/root/soft/hbase-1.3.1/bin/hbase-daemon.sh" start regionserver 命令达到启动regionserver的功能.

[root@zjj101 bin]#  xcall "/root/soft/hbase-1.3.1/bin/hbase-daemon.sh" start regionserver
要执行的命令是/root/soft/hbase-1.3.1/bin/hbase-daemon.sh start regionserver
---------------------zjj101-----------------
starting regionserver, logging to /root/soft/hbase-1.3.1/bin/../logs/hbase-root-regionserver-zjj101.out
---------------------zjj102-----------------
starting regionserver, logging to /root/soft/hbase-1.3.1/bin/../logs/hbase-root-regionserver-zjj102.out
---------------------zjj103-----------------
starting regionserver, logging to /root/soft/hbase-1.3.1/bin/../logs/hbase-root-regionserver-zjj103.out

查看是否启动

jps方式

xcall 是集群执行命令脚本

[root@zjj101 bin]# xcall jps
要执行的命令是jps
---------------------zjj101-----------------
21955 Application
120086 HMaster  # Master进程已经启动完了
120790 HRegionServer  # RegionServer进程已经启动完了
121158 Jps
11272 Datanode
14824 RunJar
87785 Kafka
98232 jar
11134 NameNode
---------------------zjj102-----------------
12130 Kafka
13048 NodeManager
19978 Application
13358 ResourceManager # RegionServer进程已经启动完了
111935 HRegionServer
12751 Datanode
---------------------zjj103-----------------
112661 Jps
13045 Datanode
112358 HRegionServer # RegionServer进程已经启动完了
10669 SecondaryNameNode
12862 NodeManager
12127 Kafka

访问web界面

启动成功后,可以通过“host:port”的方式来访问HBase管理页面,例如:http://zjj101:16010/

访问web界面: 访问master进程所在机器:16010

  • 查看Master

http://zjj101:16010/

  • 查看regionServer

http://zjj101:16030/rs-status

停止HBase

关闭进程就行了.

停止Master ,

在hbase-1.3.1/bin执行 sh hbase-daemon.sh stop master

[root@zjj101 bin]#   sh hbase-daemon.sh stop master
stopping master.
[root@zjj101 bin]#

停止 regionserver

在集群机器的hbase-1.3.1/bin目录下面执行 “/root/soft/hbase-1.3.1/bin/hbase-daemon.sh” stop regionserver 命令

[root@zjj101 bin]#  xcall "/root/soft/hbase-1.3.1/bin/hbase-daemon.sh" stop regionserver
要执行的命令是/root/soft/hbase-1.3.1/bin/hbase-daemon.sh stop regionserver
---------------------zjj101-----------------
stopping regionserver..
---------------------zjj102-----------------
stopping regionserver..........
---------------------zjj103-----------------
stopping regionserver.
[root@zjj101 bin]#

集群启动方式

修改配置文件

群启动原理

hbase-daemons.sh 先读取 hbase-1.3.1/conf/regionservers 文件下中所有的主机名.

注意:执行hbase-daemons.sh或start-hbase.sh或stop-hbase.sh的前提是先配置要执行这些命令所在的机器的conf/regionservers文件.

你在哪台机器使用群启动脚本你就在这台机器上配置

regionservers文件内容

zjj101
zjj102
zjj103

集群启动停止方式1[更方便]

启动

执行bin目录下的 sh start-hbase.sh ,你会发现在当前机器上启动了一个Master,在所有的机器上启动了RegionServer

[root@zjj101 bin]# sh start-hbase.sh
starting master, logging to /root/soft/hbase-1.3.1/bin/../logs/hbase-root-master-zjj101.out
zjj102: starting regionserver, logging to /root/soft/hbase-1.3.1/bin/../logs/hbase-root-regionserver-zjj102.out
zjj103: starting regionserver, logging to /root/soft/hbase-1.3.1/bin/../logs/hbase-root-regionserver-zjj103.out
zjj101: starting regionserver, logging to /root/soft/hbase-1.3.1/bin/../logs/hbase-root-regionserver-zjj101.out

对应的停止服务:

帮你把master 和regionserver都停止掉

[root@zjj101 bin]# sh stop-hbase.sh
stopping hbase.....................

集群启动停止方式2

  • 启动单个master

注意,如果使用 hbase-daemons.sh 启动Master的话,你会发现集群中多台机器都启动了Master,如果你只需要启动一个Master的话,就不用要hbase-daemons.sh , 用 hbase-daemon.sh

# 启动多个Master
[root@zjj101 bin]#  sh hbase-daemons.sh start master
zjj103: starting master, logging to /root/soft/hbase-1.3.1/bin/../logs/hbase-root-master-zjj103.out
zjj101: starting master, logging to /root/soft/hbase-1.3.1/bin/../logs/hbase-root-master-zjj101.out
zjj102: starting master, logging to /root/soft/hbase-1.3.1/bin/../logs/hbase-root-master-zjj102.out

# 停止多个Master
[root@zjj101 bin]# sh hbase-daemons.sh  stop master
zjj101: stopping master.
zjj103: stopping master.
zjj102: stopping master.
# 启动一个Master
[root@zjj101 bin]#  sh hbase-daemon.sh start master
starting master, logging to /root/soft/hbase-1.3.1/bin/../logs/hbase-root-master-zjj101.out
  • 启动多个regionserver
[root@zjj101 bin]#  sh hbase-daemons.sh start regionserver
zjj101: starting regionserver, logging to /root/soft/hbase-1.3.1/bin/../logs/hbase-root-regionserver-zjj101.out
zjj102: starting regionserver, logging to /root/soft/hbase-1.3.1/bin/../logs/hbase-root-regionserver-zjj102.out
zjj103: starting regionserver, logging to /root/soft/hbase-1.3.1/bin/../logs/hbase-root-regionserver-zjj103.out

  • 群停止脚本

帮你把master 和regionserver都停止掉

[root@zjj101 bin]# sh stop-hbase.sh
stopping hbase.....................
[root@zjj101 bin]#

集群时间同步问题

如果你集群中的机器时间差太多的话是不行的.

执行下面命令同步时间

sudo ntpdate -u ntp4.aliyun.com

HBase端口号说明

端口说明:  16000是master进程的RPC端口!
			16010是master进程的http端口!
			16020是RegionServer进程的RPC端口!
			16030是RegionServer进程的http端口!

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐