Zookeeper + Hadoop + Hbase部署备忘
网上类似的文章很多,本文只是记录下来备忘.本文分四大步骤:
准备工作、安装zookeeper、安装hadoop、安装hbase,下面分别详细介绍:
一 准备工作
1. 下载 zookeeper、hadoop、hbase三个压缩包并放入/home/servers目录并解压
2. 安装JDK (略)
3. 统一集群计算机名
本次用于测试一共5台,分别命名为release-master,slave1,slave2,slave3,slave4(可使用hostname slave1类似的命令临时修改)
4. 统一hosts
在以上5台服务器的hosts里都加上以下内容:
192.168.1.101 release-master
192.168.1.102 slave1
192.168.1.103 slave2
192.168.1.104 slave3
192.168.1.105 slave4
注意,如果hosts里有类似下面这样对本机进行配置的,一定要注释掉,否则RegionServer容易出错
192.168.1.101 pc-
5. 设置release-master(主服务器)到所有salve服务器的ssh免登录(略)
二. 安装zookeeper (参考http://www.blogjava.net/hello-yun/archive/2012/05/03/377250.html)
ZooKeeper分布式模式安装(ZooKeeper集群)也比较容易,这里说明一下基本要点。
首先要明确的是,ZooKeeper集群是一个独立的分布式协调服务集群,“独立”的含义就是说,如果想使用ZooKeeper实现分布式应用的协 调与管理,简化协调与管理,任何分布式应用都可以使用,这就要归功于Zookeeper的数据模型(Data Model)和层次命名空间(Hierarchical Namespace)结构,详细可以参考http://zookeeper.apache.org/doc/trunk/zookeeperOver.html。在设计你的分布式应用协调服务时,首要的就是考虑如何组织层次命名空间。
下面说明分布式模式的安装配置,过程如下所示:
第一步:主机名称到IP地址映射配置
ZooKeeper集群中具有两个关键的角色:Leader和Follower。集群中所有的结点作为一个整体对分布式应用提供服务,集群中每个结 点之间都互相连接,所以,在配置的ZooKeeper集群的时候,每一个结点的host到IP地址的映射都要配置上集群中其它结点的映射信息。
例如,我的ZooKeeper集群中每个结点的配置,以slave-01为例,/etc/hosts内容如下所示:
192.168.1.101 release-master
192.168.1.102 slave1
192.168.1.103 slave2
192.168.1.104 slave3
192.168.1.105 slave4
ZooKeeper采用一种称为Leader election的选举算法。在整个集群运行过程中,只有一个Leader,其他的都是Follower,如果ZooKeeper集群在运行过程中 Leader出了问题,系统会采用该算法重新选出一个Leader。因此,各个结点之间要能够保证互相连接,必须配置上述映射。
ZooKeeper集群启动的时候,会首先选出一个Leader,在Leader election过程中,某一个满足选举算的结点就能成为Leader。整个集群的架构可以参考http://zookeeper.apache.org/doc/trunk/zookeeperOver.html#sc_designGoals。
第二步:修改ZooKeeper配置文件和环境变量
在主服务器(release-master)上,解压缩zookeeper-3.3.4.tar.gz,修改配置文件conf/zoo.cfg,内容如下所示:
tickTime=
dataDir=/home/data/zkdata
clientPort=
initLimit=
syncLimit=
server.=192.168.0.101::
server.=192.168.0.102::
server.=192.168.0.103::
server.=192.168.0.104::
server.=192.168.0.105::
上述配置内容说明,可以参考http://zookeeper.apache.org/doc/trunk/zookeeperStarted.html#sc_RunningReplicatedZooKeeper。创建配置所需目录:
mkdir -p /home/data/zkdata
修改环境变量/etc/profile,加入
export ZOOKEEPER_HOME=/home/servers/zookeeper-3.4.
export PATH=$JAVA_HOME/bin:$PATH:$ZOOKEEPER_HOME/bin:$ZOOKEEPER_HOME/conf
保存退出. 执行:
source /etc/profile
来刷新配置.
第三步:远程复制分发安装文件和配置
上面已经在一台机器slave-01上配置完成ZooKeeper,现在可以将该配置好的安装文件远程拷贝到集群中的各个结点对应的目录下:
scp -r /home/servers/zookeeper-3.4./ root@slave1:/home/servers
第四步:设置myid
在我们配置的dataDir指定的目录下面,创建一个myid文件,里面内容为一个数字,用来标识当前主机,conf/zoo.cfg文件中配置的server.X中X为什么数字,则myid文件中就输入这个数字,例如:
echo "" > /home/data/zkdata/myid
按照上述进行配置即可。
第五步:启动ZooKeeper集群
在ZooKeeper集群的每个结点上,执行启动ZooKeeper服务的脚本,如下所示:
cd /home/servers/zookeeper-3.4.6/
bin/zkServer.sh start
如果启动报类似异常:QuorumCnxManager@384] - Cannot open channel to 2 at election address slave-02/192.168.0.178:3888 是可以忽略的,因为该服务启动时会尝试连接所有节点,而其他节点尚未启动。通过后面部分可以看到,集群在选出一个Leader后,最后稳定 了。其他结点可能也出现类似问题,属于正常。
第六步:安装验证
可以通过ZooKeeper的脚本来查看启动状态,包括集群中各个结点的角色(或是Leader,或是Follower)
三 安装hadoop
第一步 解压缩
把安装包hadoop-2.5.1.tar.gz传到/home/servers/,并解压缩: tar xvf hadoop-2.5.1.tar.gz
第二步 设置系统变量
修改环境变量/etc/profile,加入
export HADOOP_HOME=/home/servers/hadoop-2.5.1
export PATH=$JAVA_HOME/bin:$PATH:$ZOOKEEPER_HOME/bin:$ZOOKEEPER_HOME/conf:$HADOOP_HOME/bin
第三步 修改Hadoop配置文件, 来到/home/servers/hadoop-2.5.1/etc/hadoop/目录下
1. 更改core-site.xml
<configuration>
<property>
<name>hadoop.tmp.dir</name>
<value>/home/data/hadoop-tmp</value> <!-- hadoop文件存放目录-->
</property>
<property>
<name>fs.defaultFS</name>
<value>hdfs://release-master</value> <!-- hadoop 主服务器的主机名 -->
</property>
<configuration>
<property>
<name>dfs.replication</name>
<value>1</value>
</property>
</configuration>
</configuration>
2. 更改hadoop-env.sh
# 指定jdk路径
export JAVA_HOME=/home/servers/jdk1..0_25
3. 更改httpfs-site.xml
<configuration>
<property>
<name>dfs.permissions.enabled</name>
<value>false</value>
</property>
</configuration>
4. 更改slaves,加入如下内容:
#增加从服务器hostname
slave1
slave2
slave3
slave4
5. 创建hadoop数据存储目录
mkdir -p /home/data/hadoop-tmp
至此,hadoop部署完毕! 启动hadoop,使用sbin目录下的start-all.sh来启动,关闭的话则是stop-all.sh
四 安装hbase
第一步 解压缩
把安装包 hbase-0.96.2-hadoop2.tar.gz传到/home/servers/,并解压缩: tar xvf hbase-0.96.2-hadoop2.tar.gz
第二步 设置系统变量
修改环境变量/etc/profile,加入
export HBASE_HOME=/home/servers/hbase-0.96.2-hadoop2
export PATH=$JAVA_HOME/bin:$PATH:$ZOOKEEPER_HOME/bin:$ZOOKEEPER_HOME/conf:$HADOOP_HOME/bin:$HBASE_HOME/bin
第三步 修改Hbase配置文件, 来到/home/servers/hbase-0.96.2-hadoop2/conf/目录下
1. 更改 hbase-env.sh
# The java implementation to use. Java 1.6 required.
export JAVA_HOME=/home/servers/jdk1..0_25/
Tell HBase whether it should manage it's own instance of Zookeeper or not.
export HBASE_MANAGES_ZK=false
2. 更改 hbase-site.xml
<configuration>
<property>
<name>hbase.tmp.dir</name>
<value>/home/data/hbase-tmp</value> <!--存放目录 -->
</property>
<property>
<name>zookeeper.session.timeout</name>
<value>3600000</value>
</property>
<property>
<name>hbase.zookeeper.property.tickTime</name>
<value>180000</value>
</property>
<property>
<name>hbase.rootdir</name>
<value>hdfs://release-master/hbase</value> <!-- 主机hostname--> </property>
<property>
<name>hbase.cluster.distributed</name>
<value>true</value>
</property>
<property>
<name>hbase.zookeeper.quorum</name>
<value>release-master,slave1,slave2,slave3,slave4</value>
</property>
<!--禁止magor compaction-->
<property>
<name>hbase.hregion.majorcompaction</name>
<value>0</value>
</property>
<!--禁止split-->
<property>
<name>hbase.hregion.max.filesize</name>
<value>536870912000</value>
</property>
<!---->
<property>
<name>hbase.hstore.blockingStoreFiles</name>
<value>2100000000</value>
</property>
<property>
<name>hbase.regionserver.handler.count</name>
<value>100</value>
</property>
</configuration>uration></value> </property></configuration>value> </property></configuration>
3.更改 regionservers,添加slave列表
#增加从服务器hostname
slave1
slave2
slave3
slave4
4.创建hbase数据存储目录
mkdir -p /home/data/hbase-tmp
5. 将整个hbase安装目录都拷贝到所有slave服务器
五. 将环境配置同步
将本机修改完毕的/etc/profile同步到集群其他服务器,最终修改后的/etc/profile如下:
export HADOOP_HOME=/home/servers/hadoop-2.5.
export HBASE_HOME=/home/servers/hbase-0.96.-hadoop2
export ZOOKEEPER_HOME=/home/servers/zookeeper-3.4.
export JAVA_HOME=/home/servers/jdk1..0_25
export JAVA_BIN=/home/servers/jdk1..0_25/bin
export PATH=$JAVA_HOME/bin:$PATH:$ZOOKEEPER_HOME/bin:$ZOOKEEPER_HOME/conf:$HADOOP_HOME/bin:$HBASE_HOME/bin
export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
export JAVA_OPTS="-Djava.library.path=/usr/local/lib -server -Xms1024m -Xmx2048m -XX:MaxPermSize=256m -Djava.awt.headless=true -Dsu
n.net.client.defaultReadTimeout= -Djmagick.systemclassloader=no -Dnetworkaddress.cache.ttl= -Dsun.net.inetaddr.ttl="
export JAVA_HOME JAVA_BIN PATH CLASSPATH JAVA_OPTS ZOOKEEPER_HOME
注意同步完成后,去各个服务器刷新下配置:source /etc/profile
六 启动集群 顺序不能错
1. 启动zk
zk安装目录/bin/zkServer.sh start
2. 启动hadoop
hadoop安装目录/sbin/start-all.sh
3. 启动hbase
hbase安装目录/start-base.sh
4. 启动后,master上进程和slave进程列表
#master 进程
NameNode #hadoop master进程
QuorumPeerMain /home/servers/zookeeper-3.4./bin/../conf/zoo.cfg #zk 进程
ResourceManager #hadoop 进程
SecondaryNameNode #hadoop 进程
HMaster start # hbase master进程
# slave 进程
DataNode #hadoop slave 进程
QuorumPeerMain /home/servers/zookeeper-3.4./bin/../conf/zoo.cfg #zk 进程
HRegionServer start #hbase slave进程
Zookeeper + Hadoop + Hbase部署备忘的更多相关文章
- zookeeper,hadoop安装部署其实与防火墙无关
网上查看了很多人关于hadoop,zookeeper的文章,大多都把关闭防火墙作为首要前提,个人觉得这大可不必. 首先你需要知道你部署的是什么东西,它需要哪些端口即可.把相关端口打开就可以了啊.然后把 ...
- 在Centos7下搭建大数据环境,即Zookeeper+Hadoop+HBase
1. 所需软件下载链接(建议直接复制链接到迅雷下载更快): ①hadoop-2.7.6.tar.gz: wget http://mirrors.tuna.tsinghua.edu.cn/apache/ ...
- hbase 使用备忘
hbase是基于hadoop的,所以hbase服务器必须启动hadoop,这点很重要. 当然hbase其实只用到了dadoop的一个组件 1. 启动hadoop-dfs 在主上执行如下命令,可以把主和 ...
- hbase命令备忘
http://www.cnblogs.com/linjiqin/archive/2013/03/08/2949339.html HBase 为用户提供了一个非常方便的使用方式, 我们称之为“HBase ...
- KEEPALIVED 双机自动切换部署备忘
1.配置文件的名字不要型错了.开始我将配置文件写成keeplive.conf,运行后也不报错,但无法看到VIP.日志里也看不到任何有价值信息.直到后来反复检查才发现可能配置文件名有问题,修正为keep ...
- Hadoop&Hbase 双机热备--Pacemaker&DRBD部署
相关文章 DRBD的介绍请参考http://blog.csdn.net/rzhzhz/article/details/7103772 DRBD的部署请参考http://blog.csdn.ne ...
- Hadoop + HBase (自带zookeeper 也可单独加) 集群部署
Hadoop+HBase搭建云存储总结 PDF http://www.linuxidc.com/Linux/2013-05/83844.htm HBase 结点之间时间不一致造成regionserve ...
- [推荐]Hadoop+HBase+Zookeeper集群的配置
[推荐]Hadoop+HBase+Zookeeper集群的配置 Hadoop+HBase+Zookeeper集群的配置 http://wenku.baidu.com/view/991258e881c ...
- Hadoop+Spark+Hbase部署整合篇
之前的几篇博客中记录的Hadoop.Spark和Hbase部署过程虽然看起来是没多大问题,但是之后在上面跑任务的时候出现了各种各样的配置问题.庆幸有将问题记录下来,可以整理出这篇部署整合篇. 确保集群 ...
随机推荐
- OpenGL4-绘制旋转的立方体
代码下载 #include "CELLWinApp.hpp"#include <gl/GLU.h>#include <assert.h>#include & ...
- ASP.NET WEB API 初探
本文初步介绍如何简单创建一个ASP.NET Web Api 程序. Web Api 顾名思义就是一个Api接口,客户端可调用此接口进行业务操作.此类应用与 ASP.NET web服务(即使用扩展名. ...
- 老老实实学WCF[第一篇] Hell wcf
老老实实学WCF 第一篇 Hello WCF WCF(Windows Communication Foundation)是微软公司推出的面向服务技术的集大成者,涵盖继承了其之前发布的所有的分布式应用 ...
- FAILURE: Build failed with an exception. Crunching Cruncher screen.png failed
自己测试ionic的模板项目cutePuppyPics时,按照https://github.com/driftyco/ionic/blob/2.0/CHANGELOG.md#angular-updat ...
- javascript笔记——正则表达式学习笔记
indexof 查找 substring 获取字符串 [) charAt 获取某个字符 split 分割字符串,获得数组 \s:空格 \S:非空格 \d:数字 \D:非数字 \w:字符 \W:非字符 ...
- JavaScript、jQuery、HTML5、Node.js实例大全-读书笔记1
技术很多,例子很多,只好慢慢学,慢慢实践!!现在学的这本书是[JavaScript实战----JavaScript.jQuery.HTML5.Node.js实例大全] 第 3 章 用 JavaScri ...
- Bootstrap学习笔记(三) 网格系统
4-1实现原理 网格系统的实现原理非常简单,仅仅是通过定义容器大小,平分12份(也有平分成24份或32份,但12份是最常见的),再调整内外边距,最后结合媒体查询,就制作出了强大的响应式网格系统.Boo ...
- lex&yacc 9
the "line 15: error: syntax error" cant stop, if i test the statement "i<=0" ...
- 添加打印机的时候怎样说windows没法连接到打印机毛病为0x00000002
把PrinterExtensionsandNotifications这个服务启动1下试试 PrintSpooler服务停止然后再启用试试
- NativeExcel 读取文件
class function T_EShopDataBill.ImportData(const AFileName: String; AList: T_EShopDataModelList; var ...