搭建Hbase集群(2) zookeeper和hbase的安装

来源:互联网 发布:mac的复制黏贴快捷键 编辑:程序博客网 时间:2024/05/27 14:14

现在发现在博客上写技术文档的麻烦之处了。以前看很多人的文档觉得讲得不清楚,没用,现在发现长长的几十页文档要是搬过来,还必须得压缩。

因为是已经写完的文档,所以直接贴了。有问题多沟通。


安装配置zookeeper

zookeeper作为消息中间件,安装和配置都是比较简单。

$wget -chttp://mirror.bjtu.edu.cn/apache/zookeeper/zookeeper-3.4.5/zookeeper-3.4.5.tar.gz


$scp zookeeper-3.4.5.tar.gzhadoop@node2:/hadoop/

$scp zookeeper-3.4.5.tar.gzhadoop@node3:/hadoop/

$scp zookeeper-3.4.5.tar.gzhadoop@node4:/hadoop/

$cd /hadoop/

$tar zxvf zookeeper-3.4.5.tar.gz

$mkdir -p /hadoop/zookeeper


将conf目录下的zoo-example.cfg文件重命名为zoo.cfg ,修改其中的内容如下(未改动的内容省略):

dataDir=/hadoop/zookeeper

server.1=node2:2888:3888

server.2=node3:2888:3888

server.3=node4:2888:3888


dataDir默认在/tmp下,系统重启会导致数据丢失。后面的三行在文件的末尾,每行描述一个节点。然后将配置好的Zookeeper分发到server.1/2/3上的/hadoop/zookeeprt-3.4.5/conf下,并在每一个节点的dataDir,即/hadoop/zookeeper下创建一个myid文件,其中包含一个该节点对应的数字,即server.1/2/3中'.'后面的数字,该数字应该在1-255之间

$touch /hadoop/zookeeper/myid

1

2

3


在server.1/2/3上分别启动Zookeeper:

$ /hadoop/zookeeper-3.4.5/bin/zkServer.shstart

 

关闭Zookeeper

需要在各个的节点分别操作:

$ /hadoop/zookeeper-3.4.5/bin/zkServer.shstop


Hbase安装配置

$cd /hadoop/

$wget -chttp://archive.apache.org/dist/hbase/hbase-0.95.1/hbase-0.95.1-hadoop1-bin.tar.gz

$scp hbase-0.95.1-hadoop1-bin.tar.gzhadoop@node2:/hadoop/

$scp hbase-0.95.1-hadoop1-bin.tar.gzhadoop@node3:/hadoop/

$scp hbase-0.95.1-hadoop1-bin.tar.gzhadoop@node4:/hadoop/

$tar zxvf hbase-0.95.1-hadoop1-bin.tar.gz

 

$cd /hadoop/hbase-0.95.1-hadoop1/conf

$vi hbase-env.sh

同hadoop-env.sh,该文件设定了hbase的环境,修改的部分如下:


export JAVA_HOME=/opt/jdk1.6.0_32

exportHBASE_CLASSPATH=/hadoop/hadoop-1.0.4/conf

export HBASE_HEAPSIZE=512 (根据实际要求调整 默认1024)

export HBASE_MANAGES_ZK=false

 

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

HBASE_HEAPSIZE单位为MB,可以根据需要和实际剩余内存设置,默认为1000。HBASE_MANAGES_ZK=false指示HBase使用已有的Zookeeper而不是自带的。

 

$mkdir -p /hadoop/hbase_tmp

配置hbase

$vi hbase-site.xml

配置如下:

<configuration> <property>   <name>hbase.rootdir</name>   <value>hdfs://node1:9000/hbase</value> </property> <property>   <name>hbase.cluster.distributed</name>   <value>true</value> </property> <property>   <name>hbase.zookeeper.quorum</name>   <value>node2,node3,node4</value> </property> <property>   <name>hbase.tmp.dir</name>   <value>/hadoop/hbase_tmp</value> </property></configuration>

第一项指定了hbase所使用的文件系统为HDFS,根目录为hdfs://node1:9000/hbase,该目录应该由HBase自动创建,只需要指定到正确的HDFS NameNode上即可。第二项指定HBase的工作模式为分布式的,第三项指定HBase将元数据存放路径为/hadoop/hbase,需要在node1(Master)上创建该目录


$vi regionservers

此文件指定了HBase的RegionServers,相当于hadoop配置文件中的slaves。本文将node2/3/4作为RegionServer,所以文件内容为:

node2

node3

node4


HBase配置完成,将其分发到所有的Master和RegionServer节点上的相同目录下,如/hadoop/hbase-0.95.1-hadoop1/conf,并把刚才的zoo.cfg拷贝到每个节点的HBASE_CLASSPATH下,使得HBase可以找到Zookeeper的配置。


$cp /hadoop/zookeeper-3.4.5/conf/zoo.cfg/hadoop/hbase-0.95.1-hadoop1/conf/

$cd /hadoop/hbase-0.95.1-hadoop1/conf/

$scp hbase-env.sh hbase-site.xmlregionservers zoo.cfg hadoop@node2:/hadoop/hbase-0.95.1-hadoop1/conf/

$scp hbase-env.sh hbase-site.xmlregionservers zoo.cfg hadoop@node3:/hadoop/hbase-0.95.1-hadoop1/conf/

$scp hbase-env.sh hbase-site.xmlregionservers zoo.cfg hadoop@node4:/hadoop/hbase-0.95.1-hadoop1/conf/

 

Hbase集群启动

首先在

NameNode(node1)上将HDFS启动:

$ /hadoop/hadoop-1.0.4/bin/start-dfs.sh


然后在Zookeeper ensemble的每一个节点上分别启动Zookeeper:

$ /hadoop/zookeeper-3.4.5/bin/zkServer.shstart

 

在Master(node1)上启动HBase:

$/hadoop/hbase-0.95.1-hadoop1/bin/start-hbase.sh

 

用浏览器访问:

http://node1:60010

可以看到HBase的运行信息,如果Attributes->Load average中有数字,Tables中有-ROOT-和.META.两张表,并且RegionServer中的信息也都正常,则HBase正常启动了。

 

关闭hbase

关闭的顺序和启动的顺序相反,先关闭HBase:

$/hadoop/hbase-0.95.1-hadoop1/bin/stop-hbase.sh


然后关闭Zookeeper和HDFS

@node2/node3/node4

$ /hadoop/zookeeper-3.4.5/bin/zkServer.sh stop


@node1

$/hadoop/hbase-0.95.1-hadoop1/bin/stop-hbase.sh


Hadoop版本匹配

在安装hbase时要求与hadoop的版本相关联,那么如何找出合适的hbase版本呢,其实有一个简单但是有点费事的做法,就是可以下载hbase后解压查看lib目录中的hadoop-core-x.x.x.jar文件的版本号,就可以找到合适的hadoop版本号了。


0 0
原创粉丝点击