HBase 集群部署全攻略:轻松上手

打印 上一主题 下一主题

主题 849|帖子 849|积分 2549

HBase

HBase 是基于 Hadoop 的分布式数据库,依赖于 Hadoop 的 HDFS 存储和 YARN 资源管理。
条件

搭建 HBase 条件条件:Hadoop 集群已成功设置和启动。
1. 下载并安装 HBase

HBase 官方:https://hbase.apache.org/
去官方,下载合适的 HBase 版本。
解压到合适的目录中,比方:/usr/local/hbase。
注意,HBase 要与 Hadoop 有版本对应关系:
  1. src:(source)源码:包含源代码,通常用于开发和自定义。
  2. bin:(binary)二进制:包含已经编译好的二进制文件和可执行命令,用户通常用来操作框架。
  3. 这里,我们的 Hadoop 用3.x.x版本,所以要用 hadoop3-bin :
  4. - hadoop3-bin (sha512 asc):这个包是专为与 Hadoop 3.x 版本兼容的 HBase 所准备的二进制文件。它包含了与 Hadoop 3.x 集群兼容的特定 HBase 版本的二进制文件。
复制代码


  • 下载 hbase-2.6.1-hadoop3-bin.tar.gz 压缩包
  1. # 解压压缩包
  2. tar -zxvf hbase-2.6.1-hadoop3-bin.tar.gz
  3. # 转移到 `/usr/local/hbase`下面
  4. mv hbase-2.6.1-hadoop3 /usr/local/hbase
复制代码
2. 设置 HBase


  • 设置 hbase-env.sh
  1. cd /usr/local/hbase/conf
  2. vi hbase-env.sh
  3. # 将 JAVA_HOME 配置成自己本地的JAVA_HOME环境 `echo $JAVA_HOME` 可以查看。
  4. export JAVA_HOME=/usr/lib/jvm/java-1.8.0-openjdk
复制代码

  • 设置 hbase-site.xml
  1. vi /usr/local/hbase/conf/hbase-site.xml
复制代码
  1. <configuration>
  2.    
  3.     <!-- 由于我们是分布式节点启动,所以这里一定要改为 true,不然无法启动! -->
  4.     <property>
  5.         <name>hbase.cluster.distributed</name>
  6.         <value>true</value>
  7.     </property>
  8.    
  9.     <!-- HBase Master 和 RegionServer 绑定的地址 -->
  10.     <property>
  11.         <name>hbase.master</name>
  12.         <value>hbase://vm-01:16000</value>
  13.     </property>
  14.     <!-- HBase 使用的 ZooKeeper 集群 -->
  15.     <property>
  16.         <name>hbase.zookeeper.quorum</name>
  17.         <value>vm-01,vm-02,vm-03</value>
  18.     </property>
  19.     <!-- 默认的 ZooKeeper 客户端端口 -->
  20.     <property>
  21.         <name>hbase.zookeeper.property.clientPort</name>
  22.         <value>2181</value>
  23.     </property>
  24.     <!-- HBase 根目录 -->
  25.     <property>
  26.         <name>hbase.rootdir</name>
  27.         <value>hdfs://vm-01:9000/hbase</value> <!-- 存储在 HDFS 中 -->
  28.     </property>
  29.     <!-- Zookeeper 的根节点 -->
  30.     <property>
  31.         <name>zookeeper.znode.parent</name>
  32.         <value>/hbase</value>
  33.     </property>
  34.     <!-- 启用 HBase Master 和 RegionServer -->
  35.     <property>
  36.         <name>hbase.master.port</name>
  37.         <value>16000</value>
  38.     </property>
  39.     <property>
  40.         <name>hbase.regionserver.port</name>
  41.         <value>16020</value>
  42.     </property>
  43. </configuration>
复制代码

  • 确保 利用的 hdfs://vm-01:9000 是你 Hadoop集群中 HDFS的 core-site.xml 和 hdfs-site.xml 设置。
3. 设置 ZooKeeper (HBase 必要依赖 ZooKeeper)

3.1 下载并安装 ZooKeeper


  • HBase 必要利用 ZooKeeper 来协调集群中的节点,因此,必要启动一个ZooKeeper集群。现在,在HBase 集群的每一台假造机上启动 ZooKeeper。
  • 下载并解压 ZooKeeper
  1. tar -xzvf apache-zookeeper-3.8.4-bin.tar.gz
  2. mv apache-zookeeper-3.8.4-bin /usr/local/zookeeper
复制代码
  注意:版本对应,这里利用 apache-zookeeper-3.8.4-bin.tar.gz 来举行操作。
  3.2 设置 ZooKeeper 集群


  • ZooKeeper 默认利用 conf/zoo_sample.cfg 文件作为设置模板。将其复制为 zoo.cfg。
  1. cd /usr/local/zookeeper/conf/
  2. cp zoo_sample.cfg zoo.cfg
复制代码

  • 编辑 zoo.cfg 文件,设置如下内容:
  1. # 基本配置
  2. tickTime=2000
  3. initLimit=10
  4. syncLimit=5
  5. dataDir=/usr/local/zookeeper/data
  6. clientPort=2181
  7. maxClientCnxns=60
  8. # 注意:以上大部分配置已存在,需要替换就行
  9. # 集群服务器列表
  10. server.1=vm-01:2888:3888
  11. server.2=vm-02:2888:3888
  12. server.3=vm-03:2888:3888
  13. # tickTime:ZooKeeper 服务器与客户端之间或服务器之间心跳的基本时间单位,单位为毫秒。
  14. # initLimit:Follower 节点连接 Leader 节点的初始化时间,单位为 tickTime 的倍数。
  15. # syncLimit:Leader 和 Follower 之间同步的最大时间,单位为 tickTime 的倍数。
  16. # dataDir:ZooKeeper 保存数据的目录,需要为每台虚拟机单独创建。
  17. # clientPort:客户端连接 ZooKeeper 集群的端口,默认是 2181。
  18. # server.X:X 是每个节点的唯一编号;2888 是节点通信端口;3888 是选举端口。
复制代码

  • 为每个节点设置 myid 文件]


  • 在 dataDir(好比 /usr/local/zookeeper/data)中,为每个假造机创建一个名为 myid 的文件,用于标识节点编号。内容为 zoo.cfg 中设置的 server.X 的编号:
在 vm-01:
  1. mkdir -p /usr/local/zookeeper/data
  2. echo "1" > /usr/local/zookeeper/data/myid
复制代码
在 vm-02:
  1. mkdir -p /usr/local/zookeeper/data
  2. echo "2" > /usr/local/zookeeper/data/myid
复制代码
在 vm-03:
  1. mkdir -p /usr/local/zookeeper/data
  2. echo "3" > /usr/local/zookeeper/data/myid
复制代码

  • 启动 ZooKeeper 集群
  1. # 1. 启动 ZooKeeper
  2. cd /usr/local/zookeeper/bin
  3. ./zkServer.sh start
  4. # 2. 查看ZooKeeper状态
  5. ./zkServer.sh status
  6. # 3. 停止 ZooKeeper
  7. ./zkServer.sh stop
  8. # 4. 重启 ZooKeeper
  9. ./zkServer.sh restart
复制代码

  • 验证集群是否访问成功。
  1. # 1. 通过客户端连接 ZooKeeper :
  2. ./zkCli.sh -server 192.168.10.68:2181
  3. # 2. 执行一些简单命令验证:
  4. ls /
  5. create /test "HelloZooKeeper"
  6. get /test
复制代码
4. 启动 HBase 集群


  • 先在 主节点 vm-01 上 执行 ./start-hbase.sh

  1. cd /usr/local/hbase/bin
  2. ./start-hbase.sh
复制代码

  • 后在 从节点 vm-02 和 vm-03 上 执行 ./start-hbase.sh

  1. ./start-hbase.sh
复制代码
  提示:HBase 在第一次启动时必要通过 hbase init 操作将集群的元数据存储在 ZooKeeper 中(包括 /hbase/hbaseid 节点)。
  

  • usr/local/zookeeper/bin/zkCli.sh 执行 ls /hbase 检察。
  5. 检测 HBase 集群是否启动成功


  • 全部节点运行 jps
    下令:


  • HBase Master:应该看到 HMaster 进程。
  • RegionServer:应该看到 HRegionServer 进程。
  1. jps
复制代码

  • 检查 日记:
  1. # master
  2. tail -f /usr/local/hbase/logs/hbase-root-master-vm-01.log
  3. tail -f /usr/local/hbase/logs/hbase-root-master-vm-01.out
  4. # regionServer
  5. tail -f /usr/local/hbase/logs/hbase-root-regionserver-vm-02.log
  6. tail -f /usr/local/hbase/logs/hbase-root-regionserver-vm-02.out
复制代码

  • 利用 HBase Shell 检查集群状态:
  1. # 启动 HBase Shell :
  2. /usr/local/hbase/bin/hbase shell
  3. # 检查集群状态
  4. hbase:001:0> status
  5. 1 active master, 2 backup masters, 3 servers, 0 dead, 0.6667 average load
  6. Took 1.3920 seconds
复制代码
6. 访问 HBase Web UI

HBase 提供了一个 Web UI,可以在浏览器中检察集群的状态。


  • HBase Master Web UI:访问 http://<hbase-master-hostname>:16010(比方 http://vm-01:16010)。

    • 你可以检察集群的整体状态、各个 RegionServer 的信息以及其他集群指标。

  • HBase RegionServer Web UI:访问 http://<regionserver-hostname>:16030(比方 http://vm-02:16030)。

    • 你可以检察 RegionServer 的具体信息,比方 Region 分布、内存利用情况等。

7. 向 HBase 中写入数据并读取

  1. # 进入 HBase Shell
  2. hbase shell
  3. # 创建一个表: 在 HBase Shell 中,创建一个表:
  4. create 'test_table', 'cf1'
  5. # 插入数据: 插入一些数据:
  6. put 'test_table', 'row1', 'cf1:name', 'John'
  7. # 查询数据: 查询数据:
  8. get 'test_table', 'row1'
复制代码
至此,HBase集群搭建成功。

免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

x
回复

使用道具 举报

0 个回复

倒序浏览

快速回复

您需要登录后才可以回帖 登录 or 立即注册

本版积分规则

拉不拉稀肚拉稀

金牌会员
这个人很懒什么都没写!
快速回复 返回顶部 返回列表