HBase 分布式环境搭建
一、前期环境
- 安装概览
| IP | Host Name | Software | Node |
| 192.168.23.128 | ae01 | JDK 1.7, Zookeeper-3.4.5 | HMaster |
| 192.168.23.129 | ae02 | JDK 1.7, Zookeeper-3.4.5 | HRegionServer |
| 192.168.23.130 | ae03 | JDK 1.7, Zookeeper-3.4.5 | HRegionServer |
- 若使用虚拟机安装,可以安装samba, smbfs方便对于文件的控制。
- 系统环境: ubuntu-12.04.2-server-amd64
- 安装目录: /usr/local/ae
- JDK 安装目录: export JAVA_HOME=/usr/local/ae/jdk1.7.0_51
- Zookeeper 安装目录 export ZOOKEEPER_HOME=/usr/local/ae/zookeeper-3.4.5
- HBase版本: hbase-0.94.8
二、配置服务器间SSH无密码登录
参考 http://www.cnblogs.com/tannerBG/p/4271831.html
三、安装HBase
- 修改host文件,添加3台服务器的host
user@ae01:/usr/local/ae$ sudo vim /etc/hosts
127.0.0.1 localhost
192.168.23.128 ae01
192.168.23.129 ae02
192.168.23.129 ae03
- 解压HBase
将hbase-0.94.8.tar.gz 复制到 /usr/local/ae,解压user@ae01:/usr/local/ae$ sudo tar -zxvf hbase-0.94.8.tar.gz
- 配置HBase
修改$HBASE_HOME/conf/hbase-env.sh 添加JAVA_HOME 并配置单独Zookeeper
export JAVA_HOME=/usr/local/ae/jdk1.7.0_51
export HBASE_MANAGES_ZK=false一个分布式运行的Hbase依赖一个zookeeper集群。所有的节点和客户端都必须能够访问zookeeper。默认的情况下Hbase会管理一个zookeep集群。这个集群会随着Hbase的启动而启动。当然,你也可以自己管理一个zookeeper集群,但需要配置Hbase。你需要修改
conf/hbase-env.sh里面的HBASE_MANAGES_ZK来切换。这个值默认是true的,作用是让Hbase启动的时候同时也启动zookeeper.修改$HBASE_HOME/conf/hbase-site.xml 加入以下文件到<configuration>节点
<property>
<name>hbase.rootdir</name>
<value>hdfs://ae01:9000/hbase</value>
<description>The directory shared byRegionServers.</description>
</property> <property>
<name>hbase.cluster.distributed</name>
<value>true</value>
<description>The mode the clusterwill be in. Possible values are
false: standalone and pseudo-distributedsetups with managed Zookeeper
true: fully-distributed with unmanagedZookeeper Quorum (see hbase-env.sh)
</description>
</property> <property>
<name>hbase.zookeeper.property.clientPort</name>
<value>2181</value>
<description>Property fromZooKeeper's config zoo.cfg.
The port at which the clients willconnect.
</description>
</property> <property>
<name>hbase.zookeeper.quorum</name>
<value>ae01,ae02,ae03</value>
<description>Comma separated listof servers in the ZooKeeper Quorum.
For example,"host1.mydomain.com,host2.mydomain.com,host3.mydomain.com".
By default this is set to localhost forlocal and pseudo-distributed modes
of operation. For a fully-distributedsetup, this should be set to a full
list of ZooKeeper quorum servers. IfHBASE_MANAGES_ZK is set in hbase-env.sh
this is the list of servers which we willstart/stop ZooKeeper on.
</description>
</property> <property>
<name>hbase.zookeeper.property.dataDir</name>
<value>/usr/local/ae/zookeeper-3.4.5/conf</value>
<description>Property fromZooKeeper's config zoo.cfg.
The directory where the snapshot isstored.
</description>
</property>hbase.rootdir: 为region server的共享目录,用来持久化Hbase。URL需要是'完全正确'的,还要包含文件系统的schema。例如,要表示hdfs中的'/hbase'目录,namenode 运行在ae01的9000端口。则需要设置为hdfs://ae01:9000/hbase。默认情况下Hbase是写到/tmp的。不改这个配置,数据会在重启的时候丢失。默认: file:///tmp/hbase-${user.name}/hbase
hbase.zookeeper.property.clientPort:ZooKeeper的zoo.conf中的配置。 客户端连接的端口 默认:2181hbase.cluster.distributed: HBase的运行模式。false是单机模式,true是分布式模式。若为false,HBase和Zookeeper会运行在同一个JVM里面。默认: false
hbase.zookeeper.quorum: Zookeeper集群的地址列表,用逗号分割。例如:"ae01,ae02,ae03".默认是localhost,是给伪分布式用的。要修改才能在完全分布式的情况下使用。如果在hbase-env.sh设置了HBASE_MANAGES_ZK,这些ZooKeeper节点就会和HBase一起启动。默认: localhost
hbase.zookeeper.property.dataDir:ZooKeeper的zoo.conf中的配置路径。配置$HBASE_HOME/conf/regionservers
ae02
ae03这个文件把RegionServer的节点列了下来。在这个例子里面我们让ae02, ae03都运行RegionServer,除了第一个节点ae01,它要运行HBase Master 和HDFS NameNode
四、启动HBase
- 启动Zookeeper 集群
user@ae01:/usr/local/ae/zookeeper-3.4.5/bin$ sudo zkServer.sh start
user@ae02:/usr/local/ae/zookeeper-3.4.5/bin$ sudo zkServer.sh start
user@ae03:/usr/local/ae/zookeeper-3.4.5/bin$ sudo zkServer.sh start - 启动HBase
user@ae01:/usr/local/ae$ start-hbase.sh
starting master, logging to /usr/local/ae/hbase-0.94./logs/hbase-user-master-ae01.out
ae02: starting regionserver, logging to /usr/local/ae/hbase-0.94./bin/../logs/hbase-user-regionserver-ae02.out
ae03: starting regionserver, logging to /usr/local/ae/hbase-0.94./bin/../logs/hbase-user-regionserver-ae03.out
user@ae01:/usr/local/ae$ - 验证HBase
ae01user@ae01:/usr/local/ae$ jps
JobTracker
SecondaryNameNode
HMaster
TaskTracker
NameNode
QuorumPeerMain
Jps
DataNode
user@ae01:/usr/local/ae$ae02,ae03
user@ae02:/usr/local/ae$ jps
HRegionServer
TaskTracker
QuorumPeerMain
DataNode
Jps
user@ae02:/usr/local/ae$user@ae03:/usr/local/ae$ jps
DataNode
QuorumPeerMain
HRegionServer
TaskTracker
Jps
user@ae03:/usr/local/ae$
四、文档参考
- http://abloz.com/hbase/book.html#important_configurations
HBase 分布式环境搭建的更多相关文章
- Hadoop-04-HBase全然分布式环境搭建
Hbase分布式具体安装步骤 Hadoop全然分布式环境已经搭建完毕(參见01_Hadoop全然分布式环境搭建). 注意:Hbase和Hadoop的版本号必须相应! 不然会出现各种问题! 这里选用的是 ...
- 攻城狮在路上(陆)-- hadoop分布式环境搭建(HA模式)
一.环境说明: 操作系统:Centos6.5 Linux node1 2.6.32-431.el6.x86_64 #1 SMP Fri Nov 22 03:15:09 UTC 2013 x86_64 ...
- Hadoop学习笔记(3)——分布式环境搭建
Hadoop学习笔记(3) ——分布式环境搭建 前面,我们已经在单机上把Hadoop运行起来了,但我们知道Hadoop支持分布式的,而它的优点就是在分布上突出的,所以我们得搭个环境模拟一下. 在这里, ...
- Hadoop-2.4.1完全分布式环境搭建
Hadoop-2.4.1完全分布式环境搭建 Hadoop-2.4.1完全分布式环境搭建 一.配置步骤如下: 主机环境搭建,这里是使用了5台虚拟机,在ubuntu 13系统上进行搭建hadoop ...
- Hadoop2.7.3+Spark2.1.0 完全分布式环境 搭建全过程
一.修改hosts文件 在主节点,就是第一台主机的命令行下; vim /etc/hosts 我的是三台云主机: 在原文件的基础上加上; ip1 master worker0 namenode ip2 ...
- Hadoop学习笔记1:伪分布式环境搭建
在搭建Hadoop环境之前,请先阅读如下博文,把搭建Hadoop环境之前的准备工作做好,博文如下: 1.CentOS 6.7下安装JDK , 地址: http://blog.csdn.net/yule ...
- 【转】Hadoop HDFS分布式环境搭建
原文地址 http://blog.sina.com.cn/s/blog_7060fb5a0101cson.html Hadoop HDFS分布式环境搭建 最近选择给大家介绍Hadoop HDFS系统 ...
- Hadoop2.5.0伪分布式环境搭建
本章主要介绍下在Linux系统下的Hadoop2.5.0伪分布式环境搭建步骤.首先要搭建Hadoop伪分布式环境,需要完成一些前置依赖工作,包括创建用户.安装JDK.关闭防火墙等. 一.创建hadoo ...
- 【Hadoop】伪分布式环境搭建、验证
Hadoop伪分布式环境搭建: 自动部署脚本: #!/bin/bash set -eux export APP_PATH=/opt/applications export APP_NAME=Ares ...
随机推荐
- Google earth
装了Google earth之后,需要联网,才能放缩看不同精细程度的场景,除非你之前看过,在你自己的缓存中有存储. Google earth有自己的server,我们交互化的时候,server传数据给 ...
- python 获取控制台输入
python想从控制台获取输入的的函数有两个一个是raw_input,一个是input. 这两个函数的区别是input获取的时候会精确到类型,假设输入的是1,那么获取的就是int型的变量,如果想输入字 ...
- java获取短uuid
public static String[] chars = new String[] { "a", "b", "c", "d&q ...
- C++联合
原文地址:http://ideage.javaeye.com/blog/210614 联合(union)在C/C++里面见得并不多,但是在一些对内存要求特别严格的地方,联合又是频繁出现,那么究竟什么是 ...
- Swift - 让程序挂起后,能在后台继续运行任务
1,程序的挂起和退出 由于iOS设备资源有限.当用户点击了home键,或者另一个应用程序启动了.那么原先那个程序便进入后台被挂起,不是退出,只是停止执行代码,同时它的内存被锁定.当应用程序恢复时,它会 ...
- IIS网站发布若干问题
1.Win7 64位 IIS未能加载文件或程序集"System.Data.SQLite"或它的某一个依赖项 未能加载文件或程序集"System.Data.SQLite ...
- 七牛:关于图片 EXIF 信息中旋转参数 Orientation 的理解
EXIF(Exchangeable Image File)是 “可交换图像文件” 的缩写,当中包含了专门为数码相机的照片而定制的元数据,可以记录数码照片的拍摄参数.缩略图及其他属性信息,简单来说,Ex ...
- Delphi基本数据类型---枚举、子界、集合、数组
参考:http://blog.csdn.net/qustdong/article/details/9230743 参考:http://www.cnblogs.com/xumenger/p/440222 ...
- Eclipse 快捷键 转换为Netbeans 快捷键
一直使用netbeans IDE开发,习惯了netbeans的快捷键,最近要开发个app就选择了H5. 接着使用了HBuilder (基于Eclipse开发) 总体来讲这个IDE还可以,不管是代码提示 ...
- Liunx-https-java.lang.NoClassDefFoundError: javax/crypto/SunJCE_b
错误信息: java.lang.NoClassDefFoundError: javax/crypto/SunJCE_b at javax.crypto.KeyGenerator.a(DashoA13* ...