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部署过程虽然看起来是没多大问题,但是之后在上面跑任务的时候出现了各种各样的配置问题.庆幸有将问题记录下来,可以整理出这篇部署整合篇. 确保集群 ...
随机推荐
- IOS TextField设置大全
//初始化textfield并设置位置及大小 //设置边框样式,只有设置了才会显示边框样式 text.borderStyle = UITextBorderStyleRoundedRect; ...
- 学习红帽企业版RHEL 6.4的两问
(1)看了一晚上的RHEL 6.4,到现在也没分清楚服务器版和桌面版.都说两个版本是一个文件,那装上之后怎么判断这到底用的是服务器版还是桌面版?还有人说在安装过程中会要求选择,用虚拟机安装根本没看到有 ...
- C++ 数组名作为函数参数 都是我的错
]) { cout<<sizeof(arr); } 这样一道题,我以为输出的是100呢……32位系统,结果是4 因为:数组名在函数体中被当成一个指针来使用 #include <ios ...
- 更新Android SDK 访问谷歌等无需代理方法
最近要做ANDROID,本来是想通过找镜像网址下载,发现公司网络屏蔽了,后来网络上搜索一圈,发现如下方法 1)更改HOST 2)使用代理 使用代理在公司的环境中属于违规操作,因此不能使用 只剩更改HO ...
- 一次GC问题定位
同事有段代码执行时间过长,需要进行优化, Hashmultimap<Int,Bean> map = ...; for (400w*96) { // 计算过程 Bean = doComput ...
- 按照自己的理解实现比特交换协议(alternating-bit protocol)
一开始的思路是想写两个程序的,发送端和接收端.但是后来想了下,因为是模拟的,所以不用这么麻烦,直接自己定制场景(比如说丢包阿,包出错阿,超时之类的). 基本上是根据上图所写的,一个函数发包,一个函数接 ...
- Linux文件目录结构说明
- Python的文件与文件夹操作
Python的文件与文件夹操作 Python OS模块 1.重命名:os.rename(old, new) 2.删除:os.remove(file) 3.列出目录下的文件 :os.listdir(pa ...
- Oracle SQL的硬解析、软解析、软软解析
Oracle中每条sql在执行前都要解析,解析分为硬解析.软解析.软软解析. Oracle会缓存DML语句,相同的DML语句会进行软解析.但不会缓存DDL语句,所以DDL每次都做硬解析.硬解析是一个很 ...
- MenuItem
private void 文件ToolStripMenuItem_Click(object sender, EventArgs e) { MessageBox.Show("打开测试" ...