Hbase+zookeeper环境搭建

来源:互联网 发布:知而不争 不可谓忠翻译 编辑:程序博客网 时间:2024/05/11 03:00

注意:
1. 本集群为三个节点的集群。
2. 在hadoop环境搭建好了之后,再搭建的hbase。
3. 记得关防火墙、修改免密登录。

    • 解压hbase以及zookeeper之类的
    • 配置hadoop
    • 配置hbase
      • 配置hbase-envsh
      • 配置hbase-sitexml
      • 配置regionservers
      • 拷贝hadoop配置文件到hbase目录
    • 配置zookeeper
      • 配置zoocfg文件
      • 配置myid
    • 启动集群


解压hbase以及zookeeper之类的

  • 解压缩 tar -zxvf xxx -C yyy
  • 注意自己解压的路径

配置hadoop

这里不赘述,网上百度资料一堆,我自己有空的话找个机会也找个帖子写下。 —— [ baidu ]

配置hbase

注意,hbase核心配置的有三个文件。hbase-env.sh、hbase-site.xml、regionservers

配置hbase-env.sh

vim hbase-env.sh
需要修改的点如下:

# The java implementation to use.  Java 1.7+ required.export JAVA_HOME=/root/apps/jdk1.7.0_45# Extra Java CLASSPATH elements.  Optional.export HBASE_CLASSPATH=/root/apps/hadoop-2.6.4# Tell HBase whether it should manage it's own instance of Zookeeper or not.export HBASE_MANAGES_ZK=false

注意,
1. 这里第三行有问题,默认注释里面写的是Java CLASSPATH,但是实际你需要配置的是HBASE_CLASSPATH
2. “HBASE_MANAGES_ZK=false”配置HBASE_MANAGES_ZK是否使用hbase默认的zookeeper。我设置的false,即使用自己配置

配置hbase-site.xml

vim hbase-site.xml

<configuration>  <property>    <name>hbase.rootdir</name>    <value>hdfs://hadoop1:9000/hbase</value>    <description>The directory shared byRegionServers.</description>  </property>  <property>    <name>hbase.cluster.distributed</name>    <value>true</value>  </property>  <property>    <name>hbase.zookeeper.property.clientPort</name>    <value>2181</value>  </property>  <property>    <name>hbase.zookeeper.quorum</name>    <value>hadoop1,hadoop2,hadoop3</value>  </property>  <property>    <name>hbase.zookeeper.property.dataDir</name>    <value>/root/apps/zookeeper-3.4.5/dataDir</value>  </property></configuration>

参数列表:

名 值 含义 hbase.rootdir hdfs://hadoop1:9000/hbase 配置的是你的hadoop集群的位置。hadoop1是我hadoop集群的namenode的域名,这里千万注意,必须是域名,不能是ip地址,看了很多帖子都说用IP地址会报错。当然你可以试试,出错来告诉我下,我还没试过。 hbase.cluster.distributed true 配置是否为分布式集群 hbase.zookeeper.property.clientPort 2181 配置的为 你的zookeeper端口。这里注意的是,如果你在hbase-env.sh里面配置使用hbase默认端口,则不用修改; 如果你在hbase-env.sh配置使用你自己的zookeeper,则这里的端口必须配置的和你配置的zookeeper端口一致。 hbase.zookeeper.quorum hadoop1,hadoop2,hadoop3 配置你集群里面的机器的域名 hbase.zookeeper.property.dataDir /root/apps/zookeeper-3.4.5/dataDir 配置的是zookeeper存储内存中的数据库快照位置(自己理解的,可能有些问题,建议查证)

配置regionservers

vim regionservers

hadoop1hadoop2hadoop3

拷贝hadoop配置文件到hbase目录

拷贝hadoop配置文件中的core-site.xml、hdfs-site.xml

这里写图片描述

配置zookeeper

这里如果使用hbase的默认zookeeper,则可以直接跳过。

配置zoo.cfg文件

$ZOOKEEPER_HOME/conf/ 下面默认是没有zoo.cfg文件的,需要把zoo_sample.cfg文件复制重命名一下。

这里写图片描述

vim zoo.cfg 进入配置
这里写图片描述

下面解释下参数含义(此段为摘抄某个帖子,原帖找不到了,当时记的笔记,网上文字一模一样多得很,也不知道谁是原创):
I. tickTime:心跳时间,毫秒为单位。
II. initLimit:这个配置项是用来配置 Zookeeper 接受客户端(这里所说的客户端不是用户连接 Zookeeper服务器的客户端,而是 Zookeeper 服务器集群中连接到 Leader 的 Follower 服务器)初始化连接时最长能忍受多少个心跳时间间隔数。当已经超过 10 个心跳的时间(也就是 tickTime)长度后 Zookeeper 服务器还没有收到客户端的返回信息,那么表明这个客户端连接失败。总的时间长度就是 10*2000=20 秒。
III. syncLimit:这个配置项标识 Leader 与 Follower 之间发送消息,请求和应答时间长度,最长不能超过多少个 tickTime 的时间长度,总的时间长度就是 5*2000=10 秒。
IV. dataDir:存储内存中数据库快照的位置。我这里是配置的在 $ZOOKEEPER_HOME/dataDir下面。你需要在$ZOOKEEPER_HOME路径下面mkdir dataDir
V. clientPort:监听客户端连接的端口。这里配置zookeeper监听的端口,需要和上面hbase一致。
VI. server.A=B:C:D:其中 A 是一个数字,表示这个是第几号服务器;B 是这个服务器的 ip 地址;C 表示的是这个服务器与集群中的 Leader 服务器交换信息的端口;D 表示的是万一集群中的 Leader 服务器挂了,需要一个端口来重新进行选举,选出一个新的 Leader,而这个端口就是用来执行选举时服务器相互通信的端口。如果是伪集群的配置方式,由于 B 都是一样,所以不同的 Zookeeper 实例通信端口号不能一样,所以要给它们分配不同的端口号。

绿色方框外的东西基本不用改,照抄没问题,想改也可以。
So,核心是配置绿色方框参数,从上往下,第一个绿色方框配置的zookeeper存储路径,第二个绿色方框配置你想用zookeeper进行管理机器参数。

配置myid

注意:一定!一定!一定!记住,在上面参数配置完毕后,进入dataDir路径下(第一个绿色方框里面配置的),创建myid文件

vim myid
写入你在第二个绿色方框里面写的 server.X=IP地址:2888:3888 中的对应IP地址的X的值。这里的id就是你zookeeper进行管理监听的id。

最后将zoo.cfg拷贝到 $HBASE_HOME/conf/路径下

启动集群

如果你是多节点集群,则需要把hbase和zookeeper文件夹拷贝到其他机器上面。
然后每台机器的zookeeper myid文件都需要修改。

  1. 配置 /etc/profile
    vim /etc/profile
export JAVA_HOME=/root/apps/jdk1.7.0_45export HADOOP_HOME=/root/apps/hadoop-2.6.4export HBASE_HOME=/root/apps/hbase-0.99.2export ZOOKEEPER_HOME=/root/apps/zookeeper-3.4.5export ZOOKEEPER_HOME=/root/apps/zookeeper-3.4.5# 以上所有路径基于你自己的文件路径进行配置export PATH=$PATH:$HADOOP_HOME/binexport PATH=$PATH:$HADOOP_HOME/sbinexport PATH=$PATH:$HBASE_HOME/binexport PATH=$PATH:$ZOOKEEPER_HOME/binexport PATH=$PATH:$ZOOKEEPER_HOME/conf

source /etc/profile
使配置生效。
2. 执行 start-all.sh 启动hadoop集群
3. 执行zkServer.sh start 启动zookeeper。当然,你如果设置的默认使用hbase的zookeeper这里就不用启动了,直接跳过此步骤。
4. 执行start-hbase.sh
5. 上面执行完毕后,执行 hbase shell,进去后执行list,看是否报错
这里写图片描述

最后,如果出现报错了,则检查上面的配置文件是否出问题了!
所有hadoop、hbase、zookeeper出现的任何问题,99%都是配置的问题。
祝大家好运。

原创粉丝点击