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集群安装部署的更多相关文章

  1. HBase 1.2.6 完全分布式集群安装部署详细过程

    Apache HBase 是一个高可靠性.高性能.面向列.可伸缩的分布式存储系统,是NoSQL数据库,基于Google Bigtable思想的开源实现,可在廉价的PC Server上搭建大规模结构化存 ...

  2. hbase单机环境的搭建和完全分布式Hbase集群安装配置

    HBase 是一个开源的非关系(NoSQL)的可伸缩性分布式数据库.它是面向列的,并适合于存储超大型松散数据.HBase适合于实时,随机对Big数据进行读写操作的业务环境. @hbase单机环境的搭建 ...

  3. Hbase集群安装Version1.1.5

    Hbase集群安装,基于版本1.1.5, 使用hbase-1.1.5.tar.gz安装包. 1.安装说明 使用外部Zookeeper集群而非Hbase自带zookeeper, 使用Hadoop文件系统 ...

  4. flink部署操作-flink standalone集群安装部署

    flink集群安装部署 standalone集群模式 必须依赖 必须的软件 JAVA_HOME配置 flink安装 配置flink 启动flink 添加Jobmanager/taskmanager 实 ...

  5. 1.Hadoop集群安装部署

    Hadoop集群安装部署 1.介绍 (1)架构模型 (2)使用工具 VMWARE cenos7 Xshell Xftp jdk-8u91-linux-x64.rpm hadoop-2.7.3.tar. ...

  6. 2 Hadoop集群安装部署准备

    2 Hadoop集群安装部署准备 集群安装前需要考虑的几点硬件选型--CPU.内存.磁盘.网卡等--什么配置?需要多少? 网络规划--1 GB? 10 GB?--网络拓扑? 操作系统选型及基础环境-- ...

  7. K8S集群安装部署

    K8S集群安装部署   参考地址:https://www.cnblogs.com/xkops/p/6169034.html 1. 确保系统已经安装epel-release源 # yum -y inst ...

  8. 【分布式】Zookeeper伪集群安装部署

    zookeeper:伪集群安装部署 只有一台linux主机,但却想要模拟搭建一套zookeeper集群的环境.可以使用伪集群模式来搭建.伪集群模式本质上就是在一个linux操作系统里面启动多个zook ...

  9. 第06讲:Flink 集群安装部署和 HA 配置

    Flink系列文章 第01讲:Flink 的应用场景和架构模型 第02讲:Flink 入门程序 WordCount 和 SQL 实现 第03讲:Flink 的编程模型与其他框架比较 第04讲:Flin ...

随机推荐

  1. php imagemagick 处理 图片剪切、压缩、合并、插入文本、背景色透明

    php有一款插件叫做imagemagick,功能很强大,提供了图片的很多操作,图片剪切.压缩.合并.插入文本.背景色透明等.并且有api方法调用和命令行操作两种方式,如果只是简单处理的话建议api方法 ...

  2. JS实现为控件添加倒计时功能

    一.概述 在有些报表需求中,需要为控件添加倒计时功能,限制到某一个时间点后能进行一项操作或不能进行某项操作,比如查询,导出功能等等,又需要人性化地显示还有多少时间,即倒计时功能,比如下图中我们限制这个 ...

  3. Cent-Linux腾讯课堂学习笔记

    RedHat yum系统下 防火墙 关闭防火墙方法 systemctl stop firewalld 检测防火墙状态 systemctl status firewalld 设置防火墙禁用开机启动 sy ...

  4. Jsp注册页面身份证验证

    <!--身份证验证 --><script type="text/javascript">function isCardNo(Idcardnumber) { ...

  5. MySQL 启动参数说明及性能优化建议

    [mysqld] port = 3306 serverid = 1 socket = /tmp/mysql.sock skip-name-resolve #禁止MySQL对外部连接进行DNS解析,使用 ...

  6. cocos2dx 图片压缩工具 推荐

    随着版本的第二次迭代,包体越来越大;随之而来的也就是下载量会有所影响;毕竟每增大一点包体大小,下载的玩家就会损失一小批; 但是我们的图片都经过美术压缩打包,依然包体不小; 最后发现是因为把图片都打包成 ...

  7. Invert a binary tree 翻转一棵二叉树

    Invert a binary tree 翻转一棵二叉树 假设有如下一棵二叉树: 4  / \   2    7  / \   / \ 1  3 6  9翻转后: 4     /    \    7 ...

  8. spark-2.2.0安装和部署——Spark集群学习日记

    前言 在安装后hadoop之后,接下来需要安装的就是Spark. scala-2.11.7下载与安装 具体步骤参见上一篇博文 Spark下载 为了方便,我直接是进入到了/usr/local文件夹下面进 ...

  9. jenkins IOS- ad-hoc 打包

    背景 客户无大企业证书,只有开发者证书,如果进行开发分发测试只能采用两种方式 testfight ad-hoc打包 上testfight存在一定的审核时间,排除掉,最后选择打ad-hoc的包 解决 查 ...

  10. 实例甜点 Unreal Engine 4迷你教程(1)之如何用C++将纹理绘制在UserWidget的Image小部件上

    完成本迷你教程之前,请前往完成以下迷你教程: 无前置教程待完成. 本教程适合的人群: 初学者,具有开发经验两周: 本示例的目的:为了在代码中实现UMG中的这个功能: 说明:这是一些列迷你教程的首篇,所 ...