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

这篇是接着上一篇hadoop集群搭建进行的。在hadoop-1.2.1基础之上安装zookeeper-3.4.5和hbase-0.94.20。

上一篇: VMWare9下基于Ubuntu12.10搭建Hadoop-1.2.1集群

安装zookeeper和hbase

1.        环境说明

使用VMWare创建5台Ubuntu虚拟机,环境具体信息例如以下:

虚拟机

操作系统

JDK

Hadoop

Zookeeper

Hbase

VMWare Workstation 9

ubuntu-12.10-server-amd64

jdk-7u51-linux-x64

hadoop-1.2.1

zookeeper-3.4.5

hbase-0.94.20

主机名

IP地址

虚拟机名

节点内容

master

192.168.1.30

Ubuntu64-Master

namenode, Jobtracker, zookeeper

secondary

192.168.1.39

Ubuntu64-Secondary

secondarynamenode, zookeeper, hmaster

slaver1

192.168.1.31

Ubuntu64-slaver1

datanode, tasktracker, zookeeper, regionserver

slaver2

192.168.1.32

Ubuntu64-slaver2

datanode, tasktracker, zookeeper, regionserver

slaver3

192.168.1.33

Ubuntu64-slaver3

datanode, tasktracker, zookeeper, regionserver

虚拟机搭建hadoop集群能够參考文档:VMWare9下基于Ubuntu12.10搭建Hadoop-1.2.1集群

hbase自带zookeeper,还是想把zookeeper独立出来,方便进行控制。由于个。所以奇数个集群更佳,部署节点越多可靠性越高,所以我们部署5个节点。

2.        安装配置Zookeeper

部署Zookeeper

解zookeeper-3.4.5.tar.gz包到/home/hadoop/zookeeper-3.4.5

tar -zxvf zookeeper-3.4.5.tar.gz -C /home/hadoop/

配置环境变量

把hadoop设置到全局环境变量中

sudo vim /etc/profile

在最以下加入例如以下内容

export ZOOKEEPER_HOME=/home/hadoop/zookeeper-3.4.5

export PATH=$PATH:$ZOOKEEPER_HOME/bin

刷新环境变量

source /etc/profile

/bin/zkEnv.sh

ZOO_LOG_DIR=/home/hadoop/zookeeper_home/log

if [ "x${ZOO_LOG4J_PROP}" = "x" ]

then

ZOO_LOG4J_PROP="INFO, CONSOLE, ROLLINGFILE"

fi

配置zookeeper日志的输出文件夹及日志输出通道,zookeeper默认仅仅输出console日志,启动zookeeper就会在屏幕上输出一大堆的控制台信息。非常不方便。

/conf/log4j.properties

# Define some default values that can be overridden by system properties

zookeeper.root.logger=INFO, CONSOLE, ROLLINGFILE

zookeeper.console.threshold=INFO

zookeeper.log.dir=/home/hadoop/zookeeper_home/log

zookeeper.log.file=zookeeper.log

zookeeper.log.threshold=DEBUG

zookeeper.tracelog.dir=/home/hadoop/zookeeper_home/logs

zookeeper.tracelog.file=zookeeper_trace.log

这里也同步调整一下。

/conf/zoo.cfg

zoo.cfg文件默认是没有的,把zoo_sample.cfg文件复制一份为zoo.cfg。然后改动对应配置项。

cp zoo_sample.cfg zoo.cfg

vim zoo.cfg

改动为例如以下配置内容

# The number of milliseconds of each tick

tickTime=2000

# The number of ticks that the initial

# synchronization phase can take

initLimit=10

# The number of ticks that can pass between

# sending a request and getting an acknowledgement

syncLimit=5

# the directory where the snapshot is stored.

dataDir=/home/hadoop/zookeeper_home/data

dataLogDir=/home/hadoop/zookeeper_home/logs

# the port at which the clients will connect

clientPort=2181

server.0=master:2888:3888

server.1=slaver1:2888:3888

server.2=slaver2:2888:3888

server.3=slaver3:2888:3888

server.9=secondary:2888:3888

配置数据路径和日志路径,这些路径须要自己手工创建。

tickTime配置项为心跳时间(毫秒)

initLimit配置项为zookeeper的leader接受follower初始化连接的最长心跳时间数(换算为时间initLimit*tickTime)。当leader在最长心跳时间数之内没有收到follower的回馈信息,则表示follower连接失败。

syncLimit配置项为zookeeper的leader和follower之间发送消息和请求应答的最长心跳时间数(换算为时间syncLimit*tickTime)

clientPort配置项为客户端连接port

server.0=master:2888:3888配置项为master上zookeeper节点的连接信息。0表示server编号。master为server的主机名或ip地址,2888为leader与follower的通讯port号。3888为leader宕机后又一次选举leader的通讯port号。

/zookeeper_home/data/myid

myid文件是zookeeper节点的标识号(參考/conf/zoo.cfg配置,master上面配置为0)。在自己配置的zookeeper的data文件夹下创建myid文件。然后改动标识号(不同zookeeper节点myid的值不同样)。

cd /zookeeper_home/data

vim myid

以master为例改动内容为

0

分发Zookeeper副本

通过scp命令分发安装配置好的zookeeper。文件夹分发须要加-r參数

scp -r /home/hadoop/zookeeper-3.4.5 hadoop@slaver1: /home/hadoop/

分发myid副本

通过scp命令分发zookeeper的myid文件,然后依据server调整节点myid值

scp -r /home/hadoop/zookeeper_home hadoop@slaver1: /home/hadoop/

3.        安装配置Hbase

部署Hbase

hbase的hmaster部署在secondaryserver上,以secondaryserver为例,解hbase-0.94.20.tar.gz包到/home/hadoop/hbase-0.94.20

tar -zxvf hbase-0.94.20.tar.gz -C /home/hadoop/

配置环境变量

把hadoop设置到全局环境变量中

sudo vim /etc/profile

在最以下加入例如以下内容

export HBASE_HOME=/home/hadoop/hbase-0.94.20

export PATH=$PATH:$HBASE_HOME/bin

刷新环境变量

source /etc/profile

/conf/hbase-env.sh

# The java implementation to use.  Java 1.6 required.

export JAVA_HOME=/usr/lib/jdk1.7.0_51/

# Extra Java CLASSPATH elements.  Optional.配置为hadoop的conf文件夹

export HBASE_CLASSPATH=/home/hadoop-1.2.1/conf

# Where log files are stored.  $HBASE_HOME/logs by default.

export HBASE_LOG_DIR=/home/hadoop/hbase_home/log

# Tell HBase whether it should manage it's own instance of Zookeeper or not.

export HBASE_MANAGES_ZK=false

JAVA_HOME配置hbase的jdk文件夹。

HBASE_CLASSPATH变量配置的为hadoop的conf文件夹。hbase用来查找hadoop的hdfs配置信息;

HBASE_LOG_DIR为日志的输出文件夹。

HBASE_MANAGES_ZK 配置为false,那么hbase在启动的时候就不会启动自带的zookeeper,不会应用自带zookeeper进行协调管理,配置为true则会应用自带zookeeper。

自行手工创建日志输出文件夹。

/conf/log4j.properties

hbase.security.logger=INFO, console, DRFA

/conf/hbase-site.xml

<configuration>

<property>

<name>hbase.rootdir</name>

<value>hdfs://master:9000/hbase</value>

<description>HDFS中存储hbase数据的文件夹,注意主机名和port号要与hadoop的core-site.xml中fs.default.name的相应</description>

</property>

<property>

<name>hbase.cluster.distributed</name>

<value>true</value>

<description>hbase採用集群分布式</description>

</property>

<property>

<name>hbase.zookeeper.quorum</name>

<value>master,secondary,slaver1,slaver2,slaver3</value>

<description>协调hbase的zookeeper节点主机。奇数个</description>

</property>

<property>

<name>hbase.zookeeper.property.dataDir</name>

<value>/home/hadoop/zookeeper_home/data</value>

<description>zookeeper集群data文件夹Property from ZooKeeper's config zoo.cfg. The directory where the snapshot is stored.</description>

</property>

<property>

<name>zookeeper.session.timeout</name>

<value>60000</value>

<description></description>

</property>

<property>

<name>hbase.zookeeper.property.clientPort</name>

<value>2181</value>

<description>HBASE_MANAGES_ZK=false时该port号要与zoo.cfg中配置clientPort属性的port号一致</description>

</property>

<property>

<name>hbase.master</name>

<value>secondary</value>

<description>hbase的主控节点,用secondary这台server</description>

</property>

<property>

<name>hbase.master.info.port</name>

<value>60010</value>

<description></description>

</property>

<property>

<name>hbase.master.port</name>

<value>60000</value>

<description></description>

</property>

<property>

<name>hbase.regionserver.lease.period</name>

<value>60000</value>

<description></description>

</property>

<property>

<name>hbase.rpc.timeout</name>

<value>60000</value>

<description></description>

</property>

<property>

<name>hbase.tmp.dir</name>

<value>/home/hadoop/hbase_home/tmp</value>

<description>Temporary directory on the local filesystem.</description>

</property>

</configuration>

hbase.master配置项是hbase的hmaster服务所在的主机,本例中配置在secondary主机上。

/conf/regionservers

slaver1

slaver2

slaver3

配置全部regionserver所在的服务器主机名或ip地址

替换hadoop-core的jar包

hbase的lib文件夹中自带hadoop-core-${version}.jar包,可能与实际系统中的hadoop版本号不一致,所以要从hadoop中把jar包拷贝过来,拷贝之前先删除旧版本号的jar包。

rm /home/hadoop/hbase-0.94.20/lib/hadoop-core-1.0.4.jar

cp /home/hadoop/hadoop-1.2.1/hadoop-core-1.2.1.jar /home/hadoop/hbase-0.94.20/lib/

分发Hbase副本

通过scp命令分发安装配置好的hbasehbase没有部署到masterserver上,所以不须要拷贝到master上

scp -r /home/hadoop/hbase-0.94.20 hadoop@slaver1: /home/hadoop/

分发环境变量

/etc/profile为root用户全部,所以scp要加sudo,并且须要传输到slaver1的root用户下。

sudo scp /etc/profile root@slaver1:/etc/profile

4.        启动Zookeeper。Hbase測试

zookeeper和hbase都部署完成,能够启动进行測试。

hadoop、zookeeper、hbase必须依照一定顺序进行启动和停止。

启动hadoop à 启动zookeeper à 启动hbase à 停止hbase à 停止zookeeper à 停止hadoop

启动zookeeper

zookeeper没有主机,须要每一个节点单独启动,所有启动完成,zookeeper会依据选举策略,选出一个leader出来,其余节点为follower。

zookeeper服务命令例如以下

命令

作用

zkServer.sh start

启动zookeeper服务

zkServer.sh status

查看zookeeper服务状态,能看到该节点是leader还是follower

zkServer.sh stop

停止zookeeper服务

zkServer.sh restart

重新启动zookeeper服务

zookeeper服务启动之后,日志中会出现一些连接失败警告,这是正常的,由于其他节点服务还未启动,所有启动之后,正常日志中就不会出现这些信息。

启动hbase

hbase集群仅仅须要在hmaster节点上启动和关闭就可以,其他regionserver会被自己主动启动,本例中把hmaster部署在secondaryserver上,所以仅仅须要在secondaryserver上启动hbase,在启动hbase之前须要查看hadoop和zookeeper是否正常启动。

hbase服务命令例如以下

命令

作用

start-hbase.sh

启动hbase集群服务,包含hmaster,regionservers

stop-hbase.sh

关闭hbase集群服务,包含hmaster,regionservers

hbase-daemons.sh start/stop regionserver/zookeeper/master-backup

启动或停止全部的regionserver或(内置)zookeeper或backup-master

hbase-daemon.sh start/stop master/regionserver/zookeeper

启动或停止单个master或regionserver或(内置)zookeeper

启动hbase集群,然后查看zookeeper和hbase的日志,看是否出现异常情况。

hbase有个shellclient,通过shell命令能够操作hbase,有ddl和dml等等。

进入shell

hbase shell

创建一个test表。列族有'info','score','user'三个

create 'test', 'info','score','user'

查看创建的表

list

用shell创建表的时候,zookeeper的日志中发现一个info级别的error,日志信息例如以下。

hbase(main):006:0* create 'test', 'info','score','user'

2014-06-11 18:44:28,343 - INFO  [ProcessThread:-1:PrepRequestProcessor@407] - Got user-level KeeperException when processing sessionid:0x1467fef37790002 type:delete cxid:0x6f zxid:0xfffffffffffffffe

txntype:unknown reqpath:n/a Error Path:/hbase/table/test Error:KeeperErrorCode = NoNode for /hbase/table92/test

这个error不影响hbase的应用,查看了一下hdfs中的文件夹。发现/hbase以下就直接是test表的文件,没有table92的文件夹。一直都搞不懂,尝试把hbase的hdfs存储路径调整为hdfs://master:9000/hbase/table92,依旧会有这个日志。test表会存储到table92以下。从网上搜索也没有什么结果。索性不去耗费时间了,有了解的朋友能够指点下。

VMWare9下基于Ubuntu12.10搭建Hadoop-1.2.1集群—整合Zookeeper和Hbase的更多相关文章

  1. VMWare9下基于Ubuntu12.10搭建Hadoop-1.2.1集群

    VMWare9下基于Ubuntu12.10搭建Hadoop-1.2.1集群 下一篇:VMWare9下基于Ubuntu12.10搭建Hadoop-1.2.1集群-整合Zookeeper和Hbase 近期 ...

  2. [Docker][Hadoop]基于Docker1.12.3 搭建Hadoop 2.7.2 集群以及简单分析

    一 Hadoop简介 Hadoop 2.7.2 Doc refer to http://hadoop.apache.org/docs/r2.7.2/ HDFS (The following is a ...

  3. hadoop备战:一台x86计算机搭建hadoop的全分布式集群

    主要的软硬件配置: x86台式机,window7  64位系统 vb虚拟机(x86的台式机至少是4G内存,才干开3台虚机) centos6.4操作系统 hadoop-1.1.2.tar.gz jdk- ...

  4. 3.环境搭建-Hadoop(CDH)集群搭建

    目录 目录 实验环境 安装 Hadoop 配置文件 在另外两台虚拟机上搭建hadoop 启动hdfs集群 启动yarn集群 本文主要是在上节CentOS集群基础上搭建Hadoop集群. 实验环境 Ha ...

  5. CentOS 环境下基于 Nginx uwsgi 搭建 Django 站点

    因为我的个人网站 restran.net 已经启用,博客园的内容已经不再更新.请访问我的个人网站获取这篇文章的最新内容,CentOS 环境下基于 Nginx uwsgi 搭建 Django 站点 以下 ...

  6. Ubuntu 12.04下Hadoop 2.2.0 集群搭建(原创)

    现在大家可以跟我一起来实现Ubuntu 12.04下Hadoop 2.2.0 集群搭建,在这里我使用了两台服务器,一台作为master即namenode主机,另一台作为slave即datanode主机 ...

  7. (转)基于keepalived搭建MySQL的高可用集群

    基于keepalived搭建MySQL的高可用集群  原文:http://www.cnblogs.com/ivictor/p/5522383.html MySQL的高可用方案一般有如下几种: keep ...

  8. Hadoop HA高可用集群搭建(Hadoop+Zookeeper+HBase)

    声明:作者原创,转载注明出处. 作者:帅气陈吃苹果 一.服务器环境 主机名 IP 用户名 密码 安装目录 master188 192.168.29.188 hadoop hadoop /home/ha ...

  9. Hadoop HA 高可用集群搭建

    一.首先配置集群信息 vi /etc/hosts 二.安装zookeeper 1.解压至/usr/hadoop/下 .tar.gz -C /usr/hadoop/ 2.进入/usr/hadoop/zo ...

随机推荐

  1. h5编写帧动画

    var requestAnimationFrame = window.requestAnimationFrame || window.webkitRequestAnimationFrame; var ...

  2. Syslinux编译环境配置简要步骤

    由于毕业设计要做一个加密U盘的LINUX,需要修改一sysylinux引导程序,在网上很少有关于syslinux编译环境配置的文章,在此简要总结一下,发出来共享. 需要的软件: 1.  vmware ...

  3. ERROR 1133 (42000): Can't find any matching row in the user table

    环境:操作系统:Redhat 7.5 x86-64 数据库版本MySQL 5.7.25 现象:ERROR 1133 (42000): Can't find any matching row in th ...

  4. 笔试算法题(50):简介 - 广度优先 & 深度优先 & 最小生成树算法

    广度优先搜索&深度优先搜索(Breadth First Search & Depth First Search) BFS优缺点: 同一层的所有节点都会加入队列,所以耗用大量空间: 仅能 ...

  5. 安装php扩展(以swoole)为例

    一.下载swoole到/usr/local/src目录下,操作 git clone https://gitee.com/swoole/swoole.git; 二.cd swoole,phpize(如果 ...

  6. Linux命令学习(4):gzip压缩与解压

    版权声明:本文为博主原创文章,未经允许不得转载 引子 gzip是Linux系统中最常用也是高效的压缩压缩命令.早期Linux系统中主要使用compress命令压缩,得到后缀为“.Z”的压缩文件,但是后 ...

  7. 配置Mysql审计

    mysql-audit.json:Mysql审计日志 插件下载地址: https://bintray.com/mcafee/mysql-audit-plugin/release/1.1.4-725#f ...

  8. 选项B中:int b[][3]={0,1,2,3}

    选项B中:int b[][3]={0,1,2,3};等价于 int b[][3]={0,1,2,3,0,0};    int b[][3]={0,1,2,3,4};         cout<& ...

  9. //……关于TCP三次握手与四次挥手

    TCP的概述 TCP把连接作为最基本的对象,每一条TCP连接都有两个端点,这种断点我们叫作套接字(socket),它的定义为端口号拼接到IP地址即构成了套接字,例如,若IP地址为192.3.4.16 ...

  10. jmap Unable to open socket file解决

    pid:Unable to open socket file: target process not responding or HotSport VM not loadedThe -F option ...