Hadoop集群之 ZooKeeper和Hbase环境搭建

前面讲解了Hadoop完全分布式的搭建,本章主要讲解一下在Hadoop完全分布式已经搭建成功的情况下搭建ZooKeeper和Hbase环境

所有软件下载百度云 密码:uup8

讲在开头:对于笔者的完全分布式环境请见该文:Hadoop完全分布式安装

1.ZooKeeper和Hbase的简答介绍:

  1. ZooKeeper是一个分布式的,开放源码的分布式应用程序协调服务,是Google的Chubby一个开源的实现,是Hadoop和Hbase的重要组件。它是一个为分布式应用提供一致性服务的软件,提供的功能包括:配置维护、域名服务、分布式同步、组服务等。ZooKeeper的目标就是封装好复杂易出错的关键服务,将简单易用的接口和性能高效、功能稳定的系统提供给用户。
  2. HBase是一个分布式的、面向列的开源数据库,该技术来源于 Fay Chang 所撰写的Google论文“Bigtable:一个结构化数据的分布式存储系统”。就像Bigtable利用了Google文件系统(File System)所提供的分布式数据存储一样,HBase在Hadoop之上提供了类似于Bigtable的能力。HBase是Apache的Hadoop项目的子项目。HBase不同于一般的关系数据库,它是一个适合于非结构化数据存储的数据库。
  3. 两者联系:Hbase的运行依赖ZooKeeper。Hbase自身带有一个默认的ZooKeeper,本文讲解的是自己搭建ZooKeeper环境。

2.ZooKeeper环境搭建:

2.1软件下载:

我使用的是zookeeper-3.4.5.tar.gz。下载改文件后,将文件解压到/usr/local目录下:

sudo mv zookeeper-3.4.5.tar.gz /usr/local
tar -xvzf  zookeeper-3.4.5.tar.gz

2.2配置

进入zookeeper-3.4.5/conf/目录:,拷贝zoo_sample.cfg生成一个新文件zoo.cfg(zk默认读取的文件)。然后修改zoo.cfg中dataDir目录地址,增加访问地址和端口

cd zookeeper-3.4.6/conf/
cp zoo_sample.cfg zoo.cfg
vim zoo.cfg
###修改如下
dataDir=/usr/local/zookeeper-3.4.6/data    ----修改此目录,可以任意
##添加如下内容
server.1=192.168.1.127:2887:3887
server.2=192.168.1.1128:2888:3888
server.3=192.168.1.129:2889:3889

进入zookeeper-3.4.5目录,创建刚才配置中增加的data目录, 然后进入data目录,创建myid文件,输入服务器编号,比如在192.168.1.127上,myid文件就存储数字1,192.168.1.128上就存储数字2,192.168.1.129上就存储数字3.

mkdir data
cd data
vim myid
1

2.3拷贝数据到其他服务器

1.复制zookeeper-3.4.5目录到其他从服务器

scp -r zookeeper-3.4.5 hadoop@192.168.1.128:~
scp -r zookeeper-3.4.5 hadoop@192.168.1.129:~
##注意在从服务器将zookeeper-3.4.5移动到/usr/local  不要这部也是没事的,只是为了保证集群环境一致
mv zookeeper-3.4.5 /usr/local

2.复制完成,登录到其他服务器,修改zookeeper-3.4.5/data/myid 文件的内容,slave1服务器就改成2,slave2服务器就改成3

2.4启动验证:

在从master,slave1,slave2依次执行zkServer.sh start 来启动 zookeeper,所有服务器启动完成后,就可以通过zkServer.sh status来查看服务器状态。没有报错说明都正常了。输入jps可以看到服务器中多了一个QuorumPeerMain服务。

cd /zookeeper-3.4.6
sh bin/zkServer.sh start
jps
输出:
 QuorumPeerMain
###状态查询
sh bin/zkServer.sh status
leader---表示master
Mode: follower 表示是跟从

到这里zk环境搭建完毕

3.Hbase环境搭建

HBase集群需要依赖于一个Zookeeper ensemble。HBase集群中的所有节点以及要访问HBase的客户端都需要能够访问到该Zookeeper ensemble。HBase自带了Zookeeper,但为了方便其他应用程序使用Zookeeper,最好使用单独安装的Zookeeper ensemble。

此外,Zookeeper ensemble一般配置为奇数个节点,并且Hadoop集群、Zookeeper ensemble、

HBase集群是三个互相独立的集群,并不需要部署在相同的物理节点上,他们之间是通过网

络通信的。

3.1软件下载

我下载的是hbase-0.94.16.tar.gz,hbase的版本需要与hadoop对应,查看是否对应只需要看hbase-0.94.1/lib/hadoop-core后面的版本号是否与hadoop的版本对应,如果不对应,可以将hadoop下hadoop-core文件复制过来,但是不能保证不会有问题

解压到/usr/local下

3.2配置

1.配置hbase-env.sh

该文件在{HBASE_HOME}/conf目录下。

vim conf/hbase-env.sh
export JAVA_HOME=/usr/java/jdk

export HBASE_CLASSPATH=/usr/local/hadoop/conf

export HBASE_MANAGES_ZK=false

其中,HBASE_CLASSPATH指向存放有Hadoop配置文件的目录,这样HBase可以找到HDFS的配置信息,由于本文Hadoop和HBase部署在相同的物理节点,所以就指向了Hadoop安

装路径下的conf目录。HBASE_MANAGES_ZK=false指示HBase使用已有的Zookeeper而不是自带的。

2.配置hbase-site.xml

<configuration>

 <property>
   <name>hbase.rootdir</name>
   <value>hdfs://192.168.1.127:9000/hbase</value>
   <description>The directory shared by region servers.</description>
 </property>

 <property>
   <name>hbase.hregion.max.filesize</name>
   <value>1073741824</value>
   <description>
   Maximum HStoreFile size. If any one of a column families‘ HStoreFiles has
   grown to exceed this value, the hosting HRegion is split in two.
   Default: 256M.
   </description>
 </property>

 <property>
   <name>hbase.hregion.memstore.flush.size</name>
   <value>1073741824</value>
   <description>
   Memstore will be flushed to disk if size of the memstore
   exceeds this number of bytes.  Value is checked by a thread that runs
   every hbase.server.thread.wakefrequency.
   </description>
 </property>

 <property>
   <name>hbase.cluster.distributed</name>
   <value>true</value>
   <description>The mode the cluster will be in. Possible values are
     false: standalone and pseudo-distributed setups with managed Zookeeper
     true: fully-distributed with unmanaged Zookeeper Quorum (see hbase-env.sh)
   </description>
 </property>

 <property>
     <name>hbase.zookeeper.property.clientPort</name>
     <value>2181</value>
     <description>Property from ZooKeeper‘s config zoo.cfg.
     The port at which the clients will connect.
     </description>
 </property>

 <property>
   <name>zookeeper.session.timeout</name>
   <value>120000</value>
 </property>

 <property>
   <name>hbase.zookeeper.property.tickTime</name>
   <value>6000</value>
 </property>
   <property>
     <name>hbase.zookeeper.quorum</name>
     <value>master,slave1,slave2</value>
     <description>Comma separated list of servers in the ZooKeeper Quorum.
     For example, "host1.mydomain.com,host2.mydomain.com,host3.mydomain.com".
     By default this is set to localhost for local and pseudo-distributed modes of operation. For a fully-distributed setup, this should be set to a full list of ZooKeeper quorum servers. If HBASE_MANAGES_ZK is set in hbase-env.sh this is the list of servers which we will start/stop ZooKeeper on.
     </description>
</property>

<property>
       <name>hbase.tmp.dir</name>
       <value>/usr/local/hbase/tmp</value>
</property>

</configuration>

参数介绍:

1,hbase.rootdir:hbase所使用的文件系统为HDFS,根目录为hdfs://192.168.1.127:9000/hbase,该目录应该由HBase自动创建,只需要指定到正确的HDFS NameNode上即可。

2,hbase.hregion.max.filesize:设置HStoreFile的大小,当 大于这个数时,就会split 成两个文件

3,hbase.hregion.memstore.flush.size:设置memstore的大小,当大于这个值时,写入磁盘

4,hbase.cluster.distributed:指定hbase为分布式模式

5,hbase.zookeeper.property.clientPort:指定zk的连接端口

6,zookeeper.session.timeout:RegionServer与Zookeeper间的连接超时时间。当超时时间到后,ReigonServer会被Zookeeper从RS集群清单中移除,HMaster收到移除通知后,会对这台server负责的regions重新balance,让其他存活的RegionServer接管.

7,hbase.zookeeper.property.tickTime:

8,hbase.zookeeper.quorum:默认值是 localhost,列出zookeepr的master,slave1,slave2

9,hbase.tmp.dir:指定HBase将元数据存放路径

3.配置regionservers 相当于hadoop的slave

vim conf/regionservers
192.168.1.127
192.168.1.128

3.3拷贝数据到其他服务器

1.复制hbase目录到其他从服务器

scp -r hbase hadoop@192.168.1.128:~
scp -r hbase hadoop@192.168.1.129:~
##注意在从服务器将hbase移动到/usr/local  不要这部也是没事的,只是为了保证集群环境一致
mv hbase /usr/local

3.4启动验证:

注意需要先启动Hadoop

##启动Hadoop
start-all.sh
##启动Hbase
cd hbase
bin/start-hbase.sh
jps
输出:HRegionServer 

通过浏览器查看:在浏览器中输入 : http://192.168.1.127:60010/

##停止

bin/stop-hbase.sh

3.5hbase简答测试:


bin/hbase shell

HBase Shell; enter ‘help<RETURN>‘ for list of supported commands.

Type "exit<RETURN>" to leave the HBase Shell

Version 0.94.12, r1524863, Fri Sep 20 04:44:41 UTC 2013

hbase(main):001:0>

##创建一个名为 small的表,这个表只有一个 column family 为 cf。可以列出所有的表来检查创建情况,然后插入些值。

hbase(main):003:0> create ‘small‘, ‘cf‘
0 row(s) in 1.2200 seconds
hbase(main):003:0> list
small
1 row(s) in 0.0550 seconds
hbase(main):004:0> put ‘small‘, ‘row1‘, ‘cf:a‘, ‘value1‘
0 row(s) in 0.0560 seconds
hbase(main):005:0> put ‘small‘, ‘row2‘, ‘cf:b‘, ‘value2‘
0 row(s) in 0.0370 seconds
hbase(main):006:0> put ‘small‘, ‘row3‘, ‘cf:c‘, ‘value3‘
0 row(s) in 0.0450 seconds

##检查插入情况.Scan这个表

hbase(main):005:0> scan ‘small‘

Get一行,操作如下

hbase(main):008:0> get ‘small‘, ‘row1‘

disable 再 drop 这张表,可以清除你刚刚的操作

hbase(main):012:0> disable ‘small‘
0 row(s) in 1.0930 seconds
hbase(main):013:0> drop ‘small‘
0 row(s) in 0.0770 seconds

##导出与导入

bin/hbase org.apache.hadoop.hbase.mapreduce.Driver export small small

导出的表,在hadoop文件系统的当前用户目录下,small文件夹中。例如,导出后在hadoop文件系统中的目录结构:

bin/hadoop dfs -ls

Found 1 items

drwxr-xr-x   - hadoop supergroup         /small

本章介绍到这里

来自伊豚(wpeace.cn)

时间: 2024-10-28 20:59:26

Hadoop集群之 ZooKeeper和Hbase环境搭建的相关文章

流式大数据计算实践(2)----Hadoop集群和Zookeeper

一.前言 1.上一文搭建好了Hadoop单机模式,这一文继续搭建Hadoop集群 二.搭建Hadoop集群 1.根据上文的流程得到两台单机模式的机器,并保证两台单机模式正常启动,记得第二台机器core-site.xml内的fs.defaultFS参数值要改成本机的来启动,启动完毕后再改回来 2.清空数据,首先把运行单机模式后生成的数据全部清理掉 rm -rf /work/hadoop/nn/current rm -rf /work/hadoop/dn/current hdfs namenode

hadoop集群下zookeeper的安装配置

1.保证hadoop集群没有问题,可以看下我另一个文章 https://www.cnblogs.com/zhangjiahao/p/10992171.html 2.下载上传zookeeper安装包 官网地址:http://mirror.bit.edu.cn/apache/zookeeper/ 3.解压  tar -zxvf zookeeper-3.4.4.tar.gz 4.进入到conf目录并且拷贝zoo_samle.cfg为zoo.cfg cd zookeeper.2.4.5/conf cp 

安转hbase集群----安装Zookeeper和Hbase

1.zookeeper安装 把解压文件从桌面移到安装目录software 解压 显示文件 修改zoo.cfg文件 我的丛机就是主机 注意:如果有多台丛机应该这样配 创建datadir指定目录和创建myid文件 我是在一台机子上配的,主机就是丛机,如果要配置多台丛机,则使用以下命令 发送zookeeper给从节点 修改从节点myid中的值 启动每个节点的zookeeper服务 检查zookeeper是否安装成功 我的是一台机子,所以显示standalone 如果丛机不是本机,则显示follower

VMWare9下基于Ubuntu12.10搭建Hadoop-1.2.1集群—整合Zookeeper和Hbase

http://blog.csdn.net/asmcos/article/details/46676101 http://blog.csdn.net/asmcos/article/details/46676087 http://blog.csdn.net/asmcos/article/details/46676073 http://blog.csdn.net/asmcos/article/details/46676053 http://blog.csdn.net/asmcos/article/de

Hadoop集群(第12期)_HBase简介及安装

HBase简介 HBase是Apache Hadoop的数据库,能够对大型数据提供随机.实时的读写访问,是Google的BigTable的开源实现.HBase的目标是存储并处理大型的数据,更具体地说仅用普通的硬件配置,能够处理成千上万的行和列所组成的大型数据库.HBase是一个开源的.分布式的.多版本的.面向列的 存储模型.可以直接使用本地文件系统也可使用Hadoop的HDFS文件存储系统.为了提高数据的可靠性和系统的健壮性,并且发挥HBase处理大型数据 的能力,还是使用HDFS作为文件存储系

Hadoop集群(二) HDFS搭建

HDFS只是Hadoop最基本的一个服务,很多其他服务,都是基于HDFS展开的.所以部署一个HDFS集群,是很核心的一个动作,也是大数据平台的开始. 安装Hadoop集群,首先需要有Zookeeper才可以完成安装.如果没有Zookeeper,请先部署一套Zookeeper.另外,JDK以及物理主机的一些设置等.请参考: Hadoop集群(一) Zookeeper搭建 Hadoop集群(三) Hbase搭建 Hadoop集群(四) Hadoop升级 下面开始HDFS的安装 HDFS主机分配 1

Hadoop集群完全分布式模式环境部署和管理的5大工具

当你利用 Hadoop 进行大数据分析和处理时,首先你需要确保配置.部署和管理集群.这个即不容易也没有什么乐趣,但却受到了开发者们的钟爱.本文提供了5款工具帮助你实现. Apache Ambari Apache Ambari是对Hadoop进行监控.管理和生命周期管理的开源项目.它也是一个为Hortonworks数据平台选择管理组建的项目.Ambari向Hadoop MapReduce.HDFS. HBase.Pig, Hive.HCatalog以及Zookeeper提供服务. Apache M

Hadoop集群中Hbase的介绍、安装、使用

导读 HBase – Hadoop Database,是一个高可靠性.高性能.面向列.可伸缩的分布式存储系统,利用HBase技术可在廉价PC Server上搭建起大规模结构化存储集群. 一.Hbase简介 HBase是Google Bigtable的开源实现,类似Google Bigtable利用GFS作为其文件存储系统,HBase利用Hadoop HDFS作为其文件存储系统:Google运行MapReduce来处理Bigtable中的海量数据,HBase同样利用Hadoop MapReduce

大数据 -- Hadoop集群环境搭建

首先我们来认识一下HDFS, HDFS(Hadoop Distributed File System )Hadoop分布式文件系统.它其实是将一个大文件分成若干块保存在不同服务器的多个节点中.通过联网让用户感觉像是在本地一样查看文件,为了降低文件丢失造成的错误,它会为每个小文件复制多个副本(默认为三个),以此来实现多机器上的多用户分享文件和存储空间. Hadoop主要包含三个模块: HDFS模块:HDFS负责大数据的存储,通过将大文件分块后进行分布式存储方式,突破了服务器硬盘大小的限制,解决了单