HBase集群安装部署
0x01 软件环境
OS: CentOS-6.5-x86_64
JDK: jdk-8u111-linux-x64
Hadoop: hadoop-2.6.5
Zookeeper: zookeeper-3.4.6
Hbase: hbase-0.98.24
0x02 集群概况
| IP | hostname |
|---|---|
| 192.168.1.10 | master |
| 192.168.1.11 | slave1 |
| 192.168.1.12 | slave2 |
0x03 安装配置
3.1 安装
下载地址:http://www.apache.org/dyn/closer.cgi/hbase/
软件版本:hbase-0.98.24-hadoop2-bin.tar.gz
兼容列表:http://hbase.apache.org/book.html#hadoop
确保你下载的版本与你现存的Hadoop版本兼容兼容列表以及支持的JDK版本(HBase 1.0.x 已经不支持JDK 6了)。
$ tar -zxvf hbase-0.98.24-bin.tar.gz
$ mv hbase-0.98.24 /home/hadoop/cloud/
$ ln -s /home/hadoop/cloud/hbase-0.98.24 /home/hadoop/cloud/hbase
3.2 配置环境变量
# vim /etc/profile
//追加
export HBASE_HOME=/usr/cloud/hbase
export PATH=$PATH:$HBASE_HOME/bin
使配置环境生效
# source /etc/profile
# su hadoop
$ source /etc/profile
3.3 配置hbase-env.sh
$ vim hbase-env.sh
# The java implementation to use. Java 1.7+ required.
export JAVA_HOME=/home/hadoop/cloud/java
3.4 配置hbase-site.xml
$ vim conf/hbase-site.xml
<configuration>
<property>
<name>hbase.rootdir</name>
<value>hdfs://master:9000/hbase</value>
</property>
<property>
<name>hbase.cluster.distributed</name>
<value>true</value>
</property>
<property>
<name>hbase.zookeeper.quorum</name>
<value>master,slave1,slave2</value>
</property>
<property>
<name>hbase.zookeeper.property.dataDir</name>
<value>/home/hadoop/cloud/zookeeper/data</value>
</property>
</configuration>
- 第一个属性指定本机的
hbase的存储目录,必须与Hadoop集群的core-site.xml文件配置保持一致; - 第二个属性指定
hbase的运行模式,true代表全分布模式; - 第三个属性指定
Zookeeper管理的机器,一般为奇数个; - 第四个属性是数据存放的路径。这里我使用的默认的
HBase自带的Zookeeper。
使用独立的ZooKeeper时需要修改HBASE_MANAGES_ZK值为false,为不使用默认ZooKeeper实例。
3.5 配置regionservers
$ vim regionservers
slave1
slave2
regionservers文件列出了所有运行hbase的机器(即HRegionServer)。此文件的配置和Hadoop中的slaves文件十分相似,每行指定一台机器的主机名。当HBase启动的时候,会将此文件中列出的所有机器启动。关闭时亦如此。我们的配置意为在slave1, slave2上都将启动 RegionServer。
3.6 分发文件到所有slave节点
$ scp -r hbase-0.98.24 hadoop@slave1:/home/hadoop/cloud/
$ scp -r hbase-0.98.24 hadoop@slave2:/home/hadoop/cloud/
注意:在所有slave几点建立软链并配置环境变量。
0x04 修改ulimit限制
4.1 修改limits.conf
HBase 会在同一时间打开大量的文件句柄和进程,超过 Linux 的默认限制,导致可能会出现如下错误。
2010-04-06 03:04:37,542 INFO org.apache.hadoop.hdfs.DFSClient: Exception increateBlockOutputStream java.io.EOFException
2010-04-06 03:04:37,542 INFO org.apache.hadoop.hdfs.DFSClient: Abandoning block blk_-6935524980745310745_1391901
所以编辑/etc/security/limits.conf文件,添加以下两行,提高能打开的句柄数量和进程数量。注意将hadoop改成你运行 HBase 的用户名。
# vim /etc/security/limits.conf
hadoop - nofile 32768
hadoop - nproc 32000
4.2 配置common-session
还需要在 /etc/pam.d/common-session 加上这一行(可能文件不错在,需要自己创建)
# vim /etc/pam.d/common-session
session required pam_limits.so
否则在/etc/security/limits.conf上的配置不会生效。
最后还要注销(logout或者exit)后再登录,这些配置才能生效!使用ulimit -n -u命令查看最大文件和进程数量是否改变了。记得在每台安装 HBase 的机器上运行哦。
0x05 运行HBase
5.1 在master启动hbase
$ cd /usr/cloud/hbase/bin/
$ start-hbase.sh
5.2 验证HBase安装成功
jps查看进程
master节点
3024 SecondaryNameNode
3170 ResourceManager
4099 QuorumPeerMain
8040 Jps
2841 NameNode
3468 Master
7901 HMaster
slave节点
3264 QuorumPeerMain
1410 NodeManager
1333 DataNode
3754 HRegionServer
1596 Worker
3807 Jps
在 master 运行 jps 应该会有HMaster进程;在各个 slave 上运行jps应该会有HRegionServer进程。
在浏览器中输入 http://master:16010 可以看到 HBase Web UI 。
0x06 常见错误
6.1 停止hbase时,pid不存在
HBase停止节点报错pid不存在
修改配置文件hbase-env.sh
$ vim /usr/cloud/hbase/conf/hbase-env.sh
export HBASE_PID_DIR=/usr/cloud/hadoop/pids
export HBASE_MANAGES_ZK=false
但是上述方法并没有解决我的问题,后来我发现是我的zookeeper没有启动成功,HBASE_PID_DIR无需更改配置,只需要修改export HBASE_MANAGES_ZK=false,不使用默认的zookeeper即可。
6.2 shell命令行"退格键"删除不了
在HBase的shell命令行界面输入错误项按"退格键"删除,却怎么也删除不了:
SecureCRT:正确的做法是:Terminal \ Emulation \ Mapped Keys, 点 Map a key,按下 Backspace,Function 选择 Send String,右侧输入 \177 即 ASCII 码为 0x7F 的键码,就能直接用 Backspace 删除了。
6.3 multbind警告
hbase/lib 目录下还有个 slf4j-log4j12-XXX.jar,在机器有装hadoop时,由于classpath中会有hadoop中的这个jar包,会有冲突,直接删除掉。
$ cd ~/cloud/hbase/lib
$ rm -f slf4j-log4j12-*jar
0x07 参考链接
2017年1月23日, 星期一
update: 2017-10-18 22:19:17 星期三
修改部分错误,重新排版。
HBase集群安装部署的更多相关文章
- HBase 1.2.6 完全分布式集群安装部署详细过程
Apache HBase 是一个高可靠性.高性能.面向列.可伸缩的分布式存储系统,是NoSQL数据库,基于Google Bigtable思想的开源实现,可在廉价的PC Server上搭建大规模结构化存 ...
- hbase单机环境的搭建和完全分布式Hbase集群安装配置
HBase 是一个开源的非关系(NoSQL)的可伸缩性分布式数据库.它是面向列的,并适合于存储超大型松散数据.HBase适合于实时,随机对Big数据进行读写操作的业务环境. @hbase单机环境的搭建 ...
- Hbase集群安装Version1.1.5
Hbase集群安装,基于版本1.1.5, 使用hbase-1.1.5.tar.gz安装包. 1.安装说明 使用外部Zookeeper集群而非Hbase自带zookeeper, 使用Hadoop文件系统 ...
- flink部署操作-flink standalone集群安装部署
flink集群安装部署 standalone集群模式 必须依赖 必须的软件 JAVA_HOME配置 flink安装 配置flink 启动flink 添加Jobmanager/taskmanager 实 ...
- 1.Hadoop集群安装部署
Hadoop集群安装部署 1.介绍 (1)架构模型 (2)使用工具 VMWARE cenos7 Xshell Xftp jdk-8u91-linux-x64.rpm hadoop-2.7.3.tar. ...
- 2 Hadoop集群安装部署准备
2 Hadoop集群安装部署准备 集群安装前需要考虑的几点硬件选型--CPU.内存.磁盘.网卡等--什么配置?需要多少? 网络规划--1 GB? 10 GB?--网络拓扑? 操作系统选型及基础环境-- ...
- K8S集群安装部署
K8S集群安装部署 参考地址:https://www.cnblogs.com/xkops/p/6169034.html 1. 确保系统已经安装epel-release源 # yum -y inst ...
- 【分布式】Zookeeper伪集群安装部署
zookeeper:伪集群安装部署 只有一台linux主机,但却想要模拟搭建一套zookeeper集群的环境.可以使用伪集群模式来搭建.伪集群模式本质上就是在一个linux操作系统里面启动多个zook ...
- 第06讲:Flink 集群安装部署和 HA 配置
Flink系列文章 第01讲:Flink 的应用场景和架构模型 第02讲:Flink 入门程序 WordCount 和 SQL 实现 第03讲:Flink 的编程模型与其他框架比较 第04讲:Flin ...
随机推荐
- Your password does not satisfy the current policy requirements
创建用户,做测试想设置一个简单的密码.报错: 大概是MySQL5.7搞事情,默认安装了validate_password插件. mysql> SHOW VARIABLES LIKE 'valid ...
- Apache+Tomcat实现动静分离
完成Tomcat集群搭建后,我们只需修改两.三处即可实现动静分离. 1.将原来httpd.conf中JkMount的路由规则都放入conf/extra/httpd-urimap.conf中: /*=l ...
- Python-WXPY实现微信监控报警
概述: 本文主要分享一下博主在学习wxpy 的过程中开发的一个小程序.博主在最近有一个监控报警的需求需要完成,然后刚好在学习wxpy 这个东西,因此很巧妙的将工作和学习联系在一起. 博文中主要使用到的 ...
- 次小生成树学习+例题 poj 1679 The Unique MST
次小生成树学习: 顾名思义,次小生成树,就是将图的所有生成树排序后,权值第二小的生成树. 次小生成树的朴素求法是很好想的,即首先求出最小生成树,之后枚举最小生成树中的所有边,将当前枚举的边" ...
- CSS预编译与PostCSS以及Webpack构建CSS综合方案
CSS全称Cascading Style Sheets(层叠样式表),用来为HTML添加样式,本质上是一种标记类语言.CSS前期发展非常迅速,1994年哈肯·维姆·莱首次提出CSS,1996年12月W ...
- Domains域
一个域是一个criteria(度量标准)列表,每个criterion(标准尺度)是一个三元列表或者元组:field_name,operator,value. field_name(str) 当前模型的 ...
- 一步一步学Vue(四)
接上篇.上篇中给出了代码框架,没有具体实现,这一篇会对上篇定义的几个组件进行分别介绍和完善: 1.TodoContainer组件 TodoContainer组件,用来组织其它组件,这是react中推荐 ...
- 【翻译】React vs Angular: JavaScript的双向性
翻译原文链接:https://blog.prototypr.io/react-vs-angular-two-sides-of-javascript-b850de22b413 我的翻译小站:http:/ ...
- MyBatis+mysql 简单分页
注意:limit不能跟动态内容 <select id="fenYe" parameterType="int" resultType="com.x ...
- 管理 Machine - 每天5分钟玩转 Docker 容器技术(47)
用 docker-machine 创建 machine 的过程很简洁,非常适合多主机环境.除此之外,Docker Machine 也提供了一些子命令方便对 machine 进行管理.其中最常用的就是无 ...