hbase配置内置的zookeeper
### HBase 配置内置 ZooKeeper 的详细步骤与解析 #### 一、配置背景与目的 在 HBase 的部署环境中,ZooKeeper 起着非常重要的作用,它主要用于协调集群中的各个节点,并且管理 HBase 的元数据。通常情况下,HBase 可以与独立的 ZooKeeper 服务进行集成,但为了简化部署过程,特别是对于小型测试环境或开发环境,我们可以选择配置 HBase 内置的 ZooKeeper。 #### 二、配置步骤详解 ##### 1. 准备阶段 首先需要准备三个虚拟机,并在其上放置 HBase 和 ZooKeeper 的 tar 包。这些包需要解压,并将解压后的 `hbase-1.3.1` 文件夹重命名为 `hbase`。 ##### 2. 配置环境变量 接下来是配置环境变量,这一步对于确保 HBase 正确运行至关重要。编辑 `/usr/local/hbase/conf/hbase-env.sh` 文件,根据实际安装位置修改以下几项: ```bash # 注释掉以下两行,因为它们只适用于 JDK7 # export HBASE_MASTER_OPTS="$HBASE_MASTER_OPTS -XX:PermSize=128m -XX:MaxPermSize=128m" # export HBASE_REGIONSERVER_OPTS="$HBASE_REGIONSERVER_OPTS -XX:PermSize=128m -XX:MaxPermSize=128m" # 添加以下内容 export JAVA_HOME=/usr/local/jdk1.8.0_131 export HADOOP_HOME=/usr/local/hadoop-2.8.0 export HBASE_HOME=/usr/local/hbase export HBASE_MANAGES_ZK=true # 设置为 true 表示自动启动 HBase 内置的 ZooKeeper ``` 这里需要注意的是 `HBASE_MANAGES_ZK` 的设置,将其设为 `true` 意味着 HBase 将会管理并自动启动内置的 ZooKeeper 服务,这是本篇教程的核心。 ##### 3. 配置 HBase 站点属性 随后需要编辑 `hbase-site.xml` 文件,以配置 HBase 的站点属性。这些配置主要涉及 HBase 与 HDFS 的交互方式以及 ZooKeeper 的相关参数: ```xml <configuration> <property> <name>hbase.rootdir</name> <value>hdfs://nginx:9000/hbase</value> </property> <property> <name>hbase.cluster.distributed</name> <value>true</value> </property> <property> <name>hbase.master</name> <value>nginx:60000</value> </property> <property> <name>hbase.tmp.dir</name> <value>/usr/local/hbase2</value> <!-- hbase2 是一个临时目录,注意不要与其他目录重名 --> </property> <property> <name>hbase.zookeeper.quorum</name> <value>nginx,tomcat1,tomcat2</value> </property> <property> <name>hbase.zookeeper.property.clientPort</name> <value>2181</value> </property> </configuration> ``` 这里有几个关键点需要注意: - `hbase.rootdir` 指定了 HBase 数据存储在 HDFS 上的位置。 - `hbase.master` 指定了 HBase 主服务器的地址。 - `hbase.zookeeper.quorum` 指定了 ZooKeeper 服务器的列表,这里指定了三台虚拟机作为 ZooKeeper 服务器。 - `hbase.zookeeper.property.clientPort` 指定了 ZooKeeper 的客户端端口,默认为 `2181`。 ##### 4. 启动 Hadoop 和 HBase 完成以上配置后,在主服务器上启动 Hadoop 服务,使用命令 `start-all.sh`,然后在 HBase 的 `bin` 目录下使用 `start-hbase.sh` 命令来启动 HBase。 ##### 5. 验证服务状态 通过 `jps` 命令来验证 Hadoop 和 HBase 服务是否成功启动。如果一切正常,可以通过 `hbase shell` 进入 HBase 命令行工具,执行 `list` 命令来查看当前所有的 HBase 表。 #### 三、进阶操作 除了基本的配置和启动外,还可以进行更高级的操作,例如创建新的 HBase 表、删除表等。例如: - 创建表 `scores` 并添加列族 `grade`: ```shell create 'scores','grade' ``` - 删除表 `scores` 中的 `grade` 列族: ```shell alter 'scores', NAME => 'grade', VERSIONS => '2' ``` - 退出 HBase shell: ```shell exit ``` #### 四、总结 通过上述步骤,我们已经完成了 HBase 内置 ZooKeeper 的配置,并成功启动了 HBase 服务。这对于快速搭建 HBase 测试环境或小型开发环境非常有帮助。此外,本文还简要介绍了如何通过 HBase shell 进行基本的表操作。