Hbase安装前配置
配置hbase-env.sh
1.先配置环境变量
https://www.yuque.com/docs/share/5b3b469a-1f0e-4c41-8283-e30001102c5b?# 《HBase配置环境变量》
修改 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
- 查看regionServer
停止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
HBase集群的启动和停止操作
https://www.yuque.com/docs/share/96c64eef-17a7-4506-8f55-7444b01d58db?# 《HBase集群的启动和停止操作》
集群时间同步问题
如果你集群中的机器时间差太多的话是不行的.
执行下面命令同步时间
sudo ntpdate -u ntp4.aliyun.com
HBase端口号说明
端口说明: 16000是master进程的RPC端口!
16010是master进程的http端口!
16020是RegionServer进程的RPC端口!
16030是RegionServer进程的http端口!