一、部署前置环境

先部署分布式的高可用版的Hadoop,即ZooKeeper+Hadoop。

https://www.cnblogs.com/live41/p/15483192.html

* 部署的服务器名和目录的规划跟链接中的设定一样。即

c1:192.168.100.105
c2:192.168.100.110
c3:192.168.100.115
c4:192.168.100.120

ZooKeeper、Hadoop、HBase的文件夹都放在/home/目录下。

* 虽然HBase内置了ZooKeeper,但一般是关闭内置版,使用独立部署版(因为还有其它进程需要用到ZooKeeper,以免维护2套)。

二、下载HBase和配置环境变量

* 以下步骤每台机都要执行

1.下载

http://hbase.apache.org/downloads.html

下载bin文件,例如hbase-2.4.6-bin.tar

2.上传到服务器并解压

(1) 上面已提及,HBase文件夹放在home目录,就是/home/hbase

tar -xvf hbase-2.4.6-bin.tar

(2) 重命名(洁癖+强迫症)

mv hbase-2.4.6 hbase

3.配置环境变量

vim ~/.bashrc

在里面加入以下内容:

export PATH=$PATH:/usr/local/hbase/bin

更新环境变量

source ~/.bashrc

三、配置HBase

* 先在c1机执行操作,再用scp把配置文件同步到其它机。

1.配置hbase-env.sh

vim /home/hbase/conf/hbase-env.sh

添加或反注释后添加以下内容:

export JAVA_HOME=/usr/bin/java1.8.0
export HBASE_CLASSPATH=/home/hbase/conf
export HBASE_MANAGES_ZK=false

2.配置hbase-site.xml

<configuration>
<property>
<name>hbase.rootdir</name>
<value>hdfs://ns6/hbase</value> <!--该属性对应的是hdfs-site.xml的dfs.nameservices属性-->
</property>
<property>
<name>hbase.cluster.distributed</name>
<value>true</value>
</property>
<property>
<name>hbase.zookeeper.quorum</name>
<value>c1:2181,c2:2181,c3:2181,c4:2181</value>
<!--如果配置为<value>c1,c2,c3,c4</value>,则需要配置hbase.zookeeper.property.clientPort属性-->
</property>
<property>
<name>hbase.master</name>
<value>60000</value> <!--HBase HA 方式下只需配置端口-->
</property>
<!-- <property>
<name>hbase.zookeeper.property.clientPort</name>
<value>2181</value>
</property> -->
</configuration>

3.配置regionservers

vim regionservers

添加以下内容,如果原来有localhost,先删除。

c1
c2
c3
c4

这里是对应hosts文件的配置,前面已经提及过。

4.复制配置文件到其它节点

scp /home/hbase/conf/*.* c2:/home/hbase/conf
scp /home/hbase/conf/*.* c3:/home/hbase/conf
scp /home/hbase/conf/*.* c4:/home/hbase/conf

四、启动HBase

1.在主节点机

start-hbase.sh

2.在备用节点机

需要手动启动,否则ZooKeeper只会启动1个。当然,也可以选择不启动。

hbase-daemon.sh start master

附录:hbase-site.xml参数说明

  • hbase.rootdir

这个目录是 RegionServer 的共享目录,用来持久化 HBase。特别注意的是 hbase.rootdir 里面的 HDFS 地址是要跟 Hadoop 的 core-site.xml 里面的 fs.defaultFS 的 HDFS 的 IP 地址或者域名、端口必须一致。(HA环境下,dfs.nameservices  是由zookeeper来决定的)

  • hbase.cluster.distributed

HBase 的运行模式。为 false 表示单机模式,为 true 表示分布式模式。若为 false,HBase 和 ZooKeeper 会运行在同一个 JVM 中

  • hbase.master

如果只设置单个 Hmaster,那么 hbase.master 属性参数需要设置为 master:60000 (主机名:60000)

如果要设置多个 Hmaster,那么我们只需要提供端口 60000,因为选择真正的 master 的事情会有 zookeeper 去处理

  • hbase.tmp.dir

本地文件系统的临时文件夹。可以修改到一个更为持久的目录上。(/tmp会在重启时清除)

  • hbase.zookeeper.quorum

对于 ZooKeeper 的配置。至少要在 hbase.zookeeper.quorum 参数中列出全部的 ZooKeeper 的主机,用逗号隔开。该属性值的默认值为 localhost,这个值显然不能用于分布式应用中。

  • hbase.zookeeper.property.dataDir

这个参数用户设置 ZooKeeper 快照的存储位置,默认值为 /tmp,显然在重启的时候会清空。因为笔者的 ZooKeeper 是独立安装的,所以这里路径是指向了 $ZOOKEEPER_HOME/conf/zoo.cfg 中 dataDir 所设定的位置。

  • hbase.zookeeper.property.clientPort

表示客户端连接 ZooKeeper 的端口。

  • zookeeper.session.timeout

ZooKeeper 会话超时。Hbase 把这个值传递改 zk 集群,向它推荐一个会话的最大超时时间

  • hbase.regionserver.restart.on.zk.expire

当 regionserver 遇到 ZooKeeper session expired , regionserver 将选择 restart 而不是 abort。

最新文章

  1. ASP.NET WEB API必知必会:特性路由
  2. Linux操作系统下搭建LAMP环境
  3. Java 垃圾收集机制
  4. JavaScript制作时钟特效
  5. ffmpeg-20160718-git-bin.7z
  6. .net经验积累
  7. codeforces B.Fence 解题报告
  8. chromium的Backtrace记录
  9. Nhibernate
  10. 理解java reference
  11. javascript对象继承的实现
  12. Git 分支-利用分支进行开发的工作流程
  13. javascript语言基础
  14. Django 2.0 学习(01):Django初识与安装
  15. Python内置函数(28)——hash
  16. Vue-项目打包上线
  17. less语法
  18. kafka工作原理介绍
  19. 手动分析linux是否中毒的几个考虑点
  20. c++ 11和java 8都支持lambda表达式

热门文章

  1. 自定义cs程序安装界面
  2. Elasticsearch的基本使用
  3. 概述 .NET 6 ThreadPool 实现
  4. 引人遐想,用 Python 获取你想要的 “某个人” 摄像头照片
  5. 【tp6】解决Driver [Think] not supported.
  6. Docker系类(25)- 发布镜像到DockerHub
  7. Linux系列(19) - 常用压缩命令(2)
  8. Python测试框架对比----unittest, pytest, nose, robot framework对比
  9. jmeter跑脚本的注意事项
  10. $\text {FWT}$学习笔记