gxh1968 发表于 2019-1-9 06:48:48

hadoop2.2.0集群基础上安装zookeeper3.4.5和hbase0.96(双机热备)

本文非详细指南,主要记录安装步骤及问题解决思路,重点在hadoop2.2.0集群已建立的基础上部署hbase0.96和zookeeper3.4.5


一、安装zookeeper3.4.5



1、解压
这里有5个zookeeper的节点,安装路径都为: /home/hadoop/zookeeper
2、配置zoo.cfg
5个节点的zoo.cfg配置相同,如下
$ vi zoo.cfg
tickTime=2000
initLimit=10
syncLimit=5
dataDir=/home/hadoop/zkdata
clientPort=2181
server.1=namenode1:2888:3888
server.2=namestandby:2888:3888
server.3=datanode1:2888:3888
server.4=datanode2:2888:3888
server.5=datanode3:2888:3888
  

  2、Zookeeper Log4j日记输出修改
  不习惯zookeeper的log日志输出到当前zookeeper.out的文件,这是一个控制台的重定向文件,想着让zk的操作日志输出到标准的log4j文件。

  首先修改了:
  conf/log4j.properties:
  # Define some default values that can be overridden by system properties
  zookeeper.root.logger=INFO, CONSOLE
  改成
  # Define some default values that can be overridden by system properties
  zookeeper.root.logger=INFO,ROLLINGFILE
  但是这样启动的时候,还是输出到zookeeper.out文件中。还要修改bin/zkEvn.sh文件,

  if [ "x${ZOO_LOG4J_PROP}" = "x" ]
  then
      ZOO_LOG4J_PROP="INFO,CONSOLE"
  fi
  

  改成
  if [ "x${ZOO_LOG4J_PROP}" = "x" ]
  then
      ZOO_LOG4J_PROP="INFO,ROLLINGFILE"
  fi
  这样再启动zkSever.sh start的时候 就会生成log4j.properties配置的中设定的zookeeper.log文件。


3、在5台zookeeper节点的 dataDir(即/home/hadoop/zkdata)下分别建立相应的myid文件,展示master1的细节如下:

$ pwd
/home/hadoop/zkdata
$ ls
myid
$ cat myid
1
其他节点分别是 2 3 4 5 。
4、在/etc/profile文件中设置PATH
修改profile文件:
sudo vi /etc/profile
export ZOOKEEPER_HOME=/home/hadoop/zookeeper
export PATH=$ZOOKEEPER_HOME/bin:$PATH

5、安装完毕
6、启动并测试zookeeper
6.1、在所有服务器中执行:zookeeper/bin/zkServer.sh start
6.2、输入jps命令查看进程:
namenode上显示为(本次为单机配置):
7724 DataNode
19769 HMaster
7485 NameNode
19361 QuorumPeerMain
7972 SecondaryNameNode
19988 HRegionServer

21691 Jps

其中,QuorumPeerMain是zookeeper进程,启动正常。(HMaster和HRegionServer为之后启动的hbase进程,其他为安装hadoop后启动的进程)
6.3、查看状态:zookeeper/bin/zkServer.sh status
JMX enabled by default
Using config: /home/hadoop/zookeeper/bin/../conf/zoo.cfg
Mode: follower

6.4、启动客户端脚本:zookeeper/bin/zkCli.sh -server namenode:2181
WatchedEvent state:SyncConnected type:None path:null

help
ZooKeeper -server host:port cmd args
      connect host:port
      get path
      ls path
      set path data
      rmr path
      delquota [-n|-b] path
      quit
      printwatches on|off
      create [-s] [-e] path data acl
      stat path
      close
      ls2 path
      history
      listquota path
      setAcl path acl
      getAcl path
      sync path
      redo cmdno
      addauth scheme auth
      delete path
      setquota -n|-b val path
ls /



6.5、停止zookeeper进程:zookeeper/bin/zkServer.sh stop


二、hadoop2.2.0下载、解压、配置(请参阅hadoop2.2.0安装配置及HA配置)
  

三、hbase0.96的安装


1、下载解压
2、本文案例部署了namenode(1台Hmaster)、datanode1、datanode2、datanode3(3台HRegionServer),安装路径如下:
/home/hadoop/hbase
3、参数配置
因为要使用已存在的zookeeper实例,需要修改$HBASE_HOME/conf/hbase-env.sh中的一个参数,如下所示:
# Tell HBase whetherit should manage it's own instance of Zookeeper or not.
export HBASE_MANAGES_ZK=false
修改hbase-site.xml,在本文案例中,其内容如下:


hbase.rootdir
hdfs://namenode:9000/hbase

(此处重要,“hdfs://namenode:9000”这个url要与hadoop中hdfs-site.xml中的对应配置保持一致,而“/hbase”是hbase在hdfs上数据存放的根路径,可自定义)

hbase.cluster.distributed
true


hbase.zookeeper.quorum
namenode,namenodestandby,datanode1,datanode2,datanode3


hbase.zookeeper.property.dataDir
/home/hadoop/zkdata

修改regionservers ,在本文案例中,其内容如下:
datanode1
datanode2
datanode3


4、lib目录下jar包的替换
hbase0.96安装包的lib目录下所用的hadoop相关jar包都是hadoop2.1.0 beta版的。

而这部分jar包跟hadoop2.2.0之间不能完全兼容,所以需要将hbase0.96的lib目录中的hadoop相关jar包替换成hadoop2.2.0版的jar包。
5、将hadoop的配置文件(最少需要hdfs-site.xml)copy到hbase0.96的conf目录下
6、启动hbase
$HBASE_HOME/bin/start-hbase.sh
在各节点上用jps看一下是否启动成功
打开web客户端 查看相关信息:
(Hmaster)http://namenode:60010


(RegionServer)http://datanode1:60030

启动shell 连接,   $HBASE_HOME/bin/hbase shell
执行几个基本操作,如list,status,create,put,get等进行测试
  如下顺利通过,则安装成功完成。
  

http://s3.运维网.com/wyfs02/M00/23/08/wKiom1MvjR_AHlDXAABg5ghZCIk131.jpg



页: [1]
查看完整版本: hadoop2.2.0集群基础上安装zookeeper3.4.5和hbase0.96(双机热备)