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 ...
随机推荐
- Socket实现-Socket I/O
Socket层的核心是两个函数:sosend()和soreceive().这两个函数负责处理所有Socket层和协议层之间的I/O操作. select()系统调用的作用是监控文件描述符的状态.一般用于 ...
- Mongodb 参数说明及常见错误处理
在 CentOS7 上安装 MongoDB 1 通过 SecureCRT 连接至 CentOS7 服务器: 2 进入到 /usr/local/ 目录:cd /usr/local 3 在当前目录下 ...
- Java泛型概念
1. 概述在引入范型之前,Java类型分为原始类型.复杂类型,其中复杂类型分为数组和类.引入范型后,一个复杂类型就可以在细分成更多的类型.例如原先的类型List,现在在细分成List<Objec ...
- css自定义动画在微信中无法执行的原因
这是我去年年底遇到的一个问题, 在这个过程中我发现了一个比较有趣的问题. 我们在做抽奖的时候,微信分享到朋友圈的页面里,安卓机器无法执行页面中的自定义动画(元宝的位移,进入按钮的放大缩小等等).这让我 ...
- Android可更换布局的换肤方案
换肤,顾名思义,就是对应用中的视觉元素进行更新,呈现新的显示效果.一般来说,换肤的时候只是更新UI上使用的资源,如颜色,图片,字体等等.本文介绍一种笔者自己使用的基于布局的Android换肤方案,不仅 ...
- Android系统--输入系统(十四)Dispatcher线程情景分析_dispatch前处理
Android系统--输入系统(十四)Dispatcher线程情景分析_dispatch前处理 1. 回顾 我们知道Android输入系统是Reader线程通过驱动程序得到上报的输入事件,还要经过处理 ...
- Windows Redis默认配置文件,Redis配置不生效解决方案
Windows Redis默认配置文件,Redis配置不生效解决方案, Windows Redis自启动配置不生效解决方案,Windows Redis增加自动启动服务 >>>> ...
- 利用HTML5判断用户是否正在浏览页面技巧
现在,HTML5里页面可见性接口就提供给了程序员一个方法,让他们使用visibilitychange页面事件来判断当前页面可见性的状态,并针对性的执行某些任务.同时还有新的document.hidde ...
- SVN常见问题
one or more files are in a conflicted state.(一个或多个文件处于矛盾状态)意思是这个文件已经被其他人修改过了. 然后我点击ok按钮后,找到冲突的文件再次up ...
- (转)Java里的堆(heap)栈(stack)和方法区(method)(精华帖,多读读)
[color=red][/color]<一> 基础数据类型直接在栈空间分配, 方法的形式参数,直接在栈空间分配,当方法调用完成后从栈空间回收. 引用数据类型,需要用new来创建,既在栈 ...