分布式Hbase-0.98.4在Hadoop-2.2.0集群上的部署
fesh个人实践,欢迎经验交流!本文Blog地址:http://www.cnblogs.com/fesh/p/3898991.html
Hbase 是Apache Hadoop的数据库,能够对大数据提供随机、实时的读写访问功能,具有开源、分布式、可扩展及面向列存储的特点。由于Hbase架构是基于其他文件存储系统的,因此在分布式模式下安装Hadoop是必须的。本文参考官方文档,安装部署一个完全分布式的Hbase集群。@_@
一、基本环境
操作系统:Ubuntu14.04 Server-x64
JDK版本:jdk1.8.0_11
Hadoop:hadoop-2.2.0
Zookeeper:zookeeper-3.4.6
Hbase :hbase-0.98.4-hadoop2 (stable)(版本与Hadoop、Zookeeper相对应)
计算机台数:3
| 主机名 | IP地址 | JDK_x64 | Hadoop-2.2.0集群 | Zookeeper-3.4.6集群 | Hbase-0.98.4集群 |
| master | 192.168.145.1 | 1.8.0_11 | NameNode,DataNode | QuorumPeerMain | HMaser,HRegionServer |
| slave1 | 192.168.145.2 | 1.8.0_11 | DataNode | QuorumPeerMain | HMaster(backup-masters),HRegionServer |
| slave2 | 192.168.145.3 | 1.8.0_11 | DataNode | QuorumPeerMain | HRegionServer |
二、预安装配置
安装JDK
安装SSH及设置SSH免密码登录,设置master可以免密码登陆slave1和slave2
配置主机-IP地址映射 /etc/hosts 及 /etc/hostname
搭建ZooKeeper集群,请参见《分布式Apache ZooKeeper-3.4.6集群安装》
搭建Hadoop集群,可以参考《Ubuntu12.04-x64编译Hadoop2.2.0和安装Hadoop2.2.0集群》
三、Master节点配置信息
1、$HBASE_HOME/conf/hbase-env.sh
配置Hbase运行环境,包括Java安装路径及其他环境变量
JAVA_HOME :JAVA安装目录
HADOOP_CONF_DIR :HADOOP配置目录
HBASE_HEAPSIZE :设置堆内存为4G而不是默认的1G
HBASE_MANAGES_ZK :Tell HBase whether it should manage its own instance of Zookeeper or not.
To point HBase at an existing ZooKeeper cluster, one that is not managed by HBase, set HBASE_MANAGES_ZK in conf/hbase-env.sh to false
export JAVA_HOME=/usr/lib/jvm/jdk1.8.0_11
export HADOOP_CONF_DIR=/home/fesh/hadoop-2.2.0/etc/hadoop
export HBASE_HEAPSIZE=
export HBASE_MANAGES_ZK=false
2、$HBASE_HOME/conf/hbase-site.xml
hbase.rootdir :Hbase数据存储目录(HDFS中目录)
hbase.cluster.distributed :指定Hbase是否运行在分布式模式
hbase.zookeeper.property.dataDir :Zookeeper写数据目录(与ZooKeeper集群上配置相一致)
hbase.zookeeper.quorun :指定Hbase在每个节点上开启和管理一个Zookeeper instance,即指定ZooKeeper集群位置
hbase.master :指定Hbase的master的位置
<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/fesh/data/zookeeper</value>
</property>
<property>
<name>hbase.master</name>
<value>hdfs://master:60000</value>
</property>
</configuration>
3、$HBASE_HOME/conf/regionservers
regionservers文件列出了所有运行Hbase RegionServer CHRegion Server的机器。此文件的配置和Hadoop的slaves文件十分类似,每一行指定一台机器。当Hbase的时候,会将此文件中列出的所有机器启动;同样,当Hbase关闭的时候,也会同时自动读取文件并将所有机器关闭。
删除localhost,添加
master
slave1
slave2
4、$HBASE_HOME/conf/backup-masters
新建此文件,用于设置备份Master (a backup master),这里设置为slave1节点
slave1
四、分发文件
分发到slave1:
scp -r hbase-0.98.-hadoop2 slave1:~/
分发到slave2:
scp -r hbase-0.98.-hadoop2 slave2:~/
五、其他配置(每个节点上都需要配置)
1、设置ulimit 和 nproc
HBase是数据库,会在同一时间使用很多的文件句柄。大多数linux系统使用的默认值1024是不能满足的,会导致FAQ: Why do I see "java.io.IOException...(Too many open files)" in my logs?异常。所以你需要修改你的最大文件句柄限制。可以设置到10k. 你还需要修改 hbase 用户的 nproc,如果过低会造成OutOfMemoryError异常。
/etc/security/limits.conf Ubuntu上的ulimit设置,操作系统用户fesh(用户名)打开文件(nofile)的soft and hard limits数目设置为32768, 用户fesh的processes数目设置为32000
fesh - nofile
fesh - nproc
另外,在 /etc/pam.d/common-session 加上这一行,否则在 /etc/security/limits.conf上的配置不会生效
session required pam_limits.so
还有注销再登录,这些配置才能生效!
2、配置dfs.datanode.max.xcievers
一个 Hadoop HDFS Datanode 有一个同时处理文件的上限. 这个参数叫 xcievers (Hadoop的作者把这个单词拼错了). 在你加载之前,先确认下你有没有配置这个文件conf/hdfs-site.xml里面的xceivers参数,至少要有4096:
配置文件$HADOOP_HOME/etc/hadoop/hdfs-site.xml,添加
<property>
<name>dfs.datanode.max.xcievers</name>
<value></value>
</property>
如果没有这一项配置,你可能会遇到奇怪的失败。你会在Datanode的日志中看到xcievers exceeded,但是运行起来会报 missing blocks错误。
对于HDFS修改配置要记得重启.
3、配置系统环境变量
/etc/profile ,添加
#Set HBASE_HOME ENVIRONMENT
export HBASE_HOME=/home/fesh/hbase-0.98.4-hadoop2
export PATH=$PATH:$HBASE_HOME
六、集群启动及查看
1、启动
Hbase的启动顺序为: HDFS -> ZooKeeper -> Hbase
master节点:
在$HADOOP_HOME目录下启动Hadoop集群
sbin/start-all.sh
每个节点:
在$ZOOKEEPER_HOME目录下启动ZooKeeper集群
bin/zkServer.sh start
master节点:
在$HBASE_HOME目录下启动Hbase集群
bin/start-hbase.sh
2、命令查看
master节点:


slave1节点:


slave2节点:


3、UI查看
60010端口查看Master
60030端口查看RegionServer
master节点


这里slave1和slave2没有可视化界面,所以不使用UI查看。
七、停止
停止顺序:Hbase 》 ZooKeeper 》 Hadoop



参考:
1、http://hbase.apache.org/book/book.html
2、http://hbase.apache.org/book/quickstart.html
分布式Hbase-0.98.4在Hadoop-2.2.0集群上的部署的更多相关文章
- Hadoop HA高可用集群搭建(Hadoop+Zookeeper+HBase)
声明:作者原创,转载注明出处. 作者:帅气陈吃苹果 一.服务器环境 主机名 IP 用户名 密码 安装目录 master188 192.168.29.188 hadoop hadoop /home/ha ...
- Apache Hadoop集群离线安装部署(三)——Hbase安装
Apache Hadoop集群离线安装部署(一)——Hadoop(HDFS.YARN.MR)安装:http://www.cnblogs.com/pojishou/p/6366542.html Apac ...
- 一脸懵逼学习Hadoop分布式集群HA模式部署(七台机器跑集群)
1)集群规划:主机名 IP 安装的软件 运行的进程master 192.168.199.130 jdk.hadoop ...
- 在Hadoop集群上的HBase配置
之前,我们已经在hadoop集群上配置了Hive,今天我们来配置下Hbase. 一.准备工作 1.ZooKeeper下载地址:http://archive.apache.org/dist/zookee ...
- 用python + hadoop streaming 编写分布式程序(二) -- 在集群上运行与监控
写在前面 相关随笔: Hadoop-1.0.4集群搭建笔记 用python + hadoop streaming 编写分布式程序(一) -- 原理介绍,样例程序与本地调试 用python + hado ...
- Apache Hadoop集群离线安装部署(二)——Spark-2.1.0 on Yarn安装
Apache Hadoop集群离线安装部署(一)——Hadoop(HDFS.YARN.MR)安装:http://www.cnblogs.com/pojishou/p/6366542.html Apac ...
- hbase集群安装与部署
1.相关环境 centos7 hadoop2.6.5 zookeeper3.4.9 jdk1.8 hbase1.2.4 本篇文章仅涉及hbase集群的搭建,关于hadoop与zookeeper的相关部 ...
- HBase集群的安装部署
HBase的安装是是建立在hadoop和zookeeper集群之上的 安装的步骤跟伪分布式差不多,只是修改了一些配置文件 解压缩.重命名.设置环境变量 把hbase-0.94.2-security.t ...
- hadoop本地运行与集群运行
开发环境: windows10+伪分布式(虚拟机组成的集群)+IDEA(不需要装插件) 介绍: 本地开发,本地debug,不需要启动集群,不需要在集群启动hdfs yarn 需要准备什么: 1/配置w ...
随机推荐
- Python-Jenkins 查询job是否存在
def check_jobs_from_jenkins(job_names): if isinstance(job_names, str): job_names = [job_names] job_d ...
- boost -- scoped_lock V.S. mutex lock/unlock —— why scoped_lock is recommanded?
why scoped_lock is recommanded? 其实,这和RAII idiom变流行是一样的原因:因为你可以确保任何情况下离开执行范围都会解锁mutex. 注意,这不仅仅是说你可能忘记 ...
- MSP430设置串口波特率的方法
给定一个BRCLK时钟源,波特率用来决定需要分频的因子N: N = fBRCLK/Baudrate 分频因子N通常是非整数值,因此至少一个分频器和一个调制阶段用来尽可能的接 ...
- Maven学习3-使用Maven构建项目
转自:http://www.cnblogs.com/xdp-gacl/p/4240930.html maven作为一个高度自动化构建工具,本身提供了构建项目的功能,下面就来体验一下使用maven构建项 ...
- 【freemaker】之自定义指令通用select模版
测试代码 @Test public void test08(){ List<Group> groups=Arrays.asList(new Group(1,"山口组") ...
- 关闭和开启oracle
1.使用sqlplus 启动和关闭数据库. 答:使用sqlplus以sysdba的身份登录数据库 因为我的数据库是启动状态,所以我就先演示数据库的关闭 数据库的关闭使用语句shutdown immed ...
- SQL Server复制需要有实际的服务器名称才能连接到服务器
服务器上安装的WIN2008 R2,然后没有在意机器名,安装了SQL2008 R2数据库之后,配置AD域的时候修改了机器名. 然后,开始配置数据库镜像同步的时候,先试了下数据库复制发布,结果提示“SQ ...
- bzoj2006 noi2010 超级钢琴 主席树 + 优先队列
Time Limit: 20 Sec Memory Limit: 552 MBSubmit: 2435 Solved: 1195 Description 小 Z是一个小有名气的钢琴家,最近C博士送 ...
- 什么是BOM头,及PHP解决办法
类似WINDOWS自带的记事本等软件,在保存一个以UTF-8编码的文件时,会在文件开始的地方插入三个不可见的字符(0xEF 0xBB 0xBF,即BOM).它是一串隐藏的字符,用于让记事本等编辑器识别 ...
- python_day3
一.set的基本操作 >>> s1=set("abc123abc") >>> s1 #把字符串转化为set,去重 set([']) >&g ...