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行,给下面的代码注释掉.

  1. # export HBASE_MASTER_OPTS="$HBASE_MASTER_OPTS -XX:PermSize=128m -XX:MaxPermSize=128m"
  2. # 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行

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

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

  1. 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”

  1. <?xml version="1.0"?>
  2. <?xml-stylesheet type="text/xsl" href="configuration.xsl"?>
  3. <configuration>
  4. <!-- 每个regionServer的共享目录,用来持久化Hbase,默认情况下在/tmp/hbase下面
  5. HBase是基于HDFS来存储数据的,下面是设置存放到HDFS的目录的地址的
  6. ip是NameNode的地址
  7. -->
  8. <property>
  9. <name>hbase.rootdir</name>
  10. <value>hdfs://zjj101:9000/HBase</value>
  11. </property>
  12. <!-- hbase集群模式,false表示hbase的单机,true表示是分布式模式 -->
  13. <property>
  14. <name>hbase.cluster.distributed</name>
  15. <value>true</value>
  16. </property>
  17. <!-- HBase注册到的Zookeeper地址,如果是集群的话,多个地址就用逗号隔开 -->
  18. <property>
  19. <name>hbase.zookeeper.quorum</name>
  20. <value>zjj101:2181</value>
  21. </property>
  22. <!-- 因为没用HBase的Zookeeper,你用的是自己的Zookeeper,
  23. 所以这里需要指定Zookeeper存数据的目录的地方
  24. 这个地址是程序员自己自定义的.
  25. -->
  26. <property>
  27. <name>hbase.zookeeper.property.dataDir</name>
  28. <value>/root/soft/data/ZKData</value>
  29. </property>
  30. </configuration>

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

可以用同步分发脚本.

单机启动HBase

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

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

  • 一台机器启动master主节点
  1. [root@zjj101 bin]# sh hbase-daemon.sh start master # 启动命令
  2. starting master, logging to /root/soft/hbase-1.3.1/bin/../logs/hbase-root-master-zjj101.out
  3. [root@zjj101 bin]# jps
  4. 21955 Application
  5. 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的功能.

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

查看是否启动

jps方式

xcall 是集群执行命令脚本

  1. [root@zjj101 bin]# xcall jps
  2. 要执行的命令是jps
  3. ---------------------zjj101-----------------
  4. 21955 Application
  5. 120086 HMaster # Master进程已经启动完了
  6. 120790 HRegionServer # RegionServer进程已经启动完了
  7. 121158 Jps
  8. 11272 DataNode
  9. 14824 RunJar
  10. 87785 Kafka
  11. 98232 jar
  12. 11134 NameNode
  13. ---------------------zjj102-----------------
  14. 12130 Kafka
  15. 13048 NodeManager
  16. 19978 Application
  17. 13358 ResourceManager # RegionServer进程已经启动完了
  18. 111935 HRegionServer
  19. 12751 DataNode
  20. ---------------------zjj103-----------------
  21. 112661 Jps
  22. 13045 DataNode
  23. 112358 HRegionServer # RegionServer进程已经启动完了
  24. 10669 SecondaryNameNode
  25. 12862 NodeManager
  26. 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

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

停止 regionserver

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

  1. [root@zjj101 bin]# xcall "/root/soft/hbase-1.3.1/bin/hbase-daemon.sh" stop regionserver
  2. 要执行的命令是/root/soft/hbase-1.3.1/bin/hbase-daemon.sh stop regionserver
  3. ---------------------zjj101-----------------
  4. stopping regionserver..
  5. ---------------------zjj102-----------------
  6. stopping regionserver..........
  7. ---------------------zjj103-----------------
  8. stopping regionserver.
  9. [root@zjj101 bin]#

集群启动方式

修改配置文件

群启动原理

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

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

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

regionservers文件内容

  1. zjj101
  2. zjj102
  3. zjj103

HBase集群的启动和停止操作

https://www.yuque.com/docs/share/96c64eef-17a7-4506-8f55-7444b01d58db?# 《HBase集群的启动和停止操作》

集群时间同步问题

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

执行下面命令同步时间

  1. sudo ntpdate -u ntp4.aliyun.com

HBase端口号说明

  1. 端口说明: 16000master进程的RPC端口!
  2. 16010master进程的http端口!
  3. 16020RegionServer进程的RPC端口!
  4. 16030RegionServer进程的http端口!