HBase
HBase 是基于 Hadoop 的分布式数据库,依赖于 Hadoop 的 HDFS 存储和 YARN 资源管理。
条件
搭建 HBase 条件条件:Hadoop 集群已成功设置和启动。
1. 下载并安装 HBase
HBase 官方:https://hbase.apache.org/
去官方,下载合适的 HBase 版本。
解压到合适的目录中,比方:/usr/local/hbase。
注意,HBase 要与 Hadoop 有版本对应关系:
- src:(source)源码:包含源代码,通常用于开发和自定义。
- bin:(binary)二进制:包含已经编译好的二进制文件和可执行命令,用户通常用来操作框架。
- 这里,我们的 Hadoop 用3.x.x版本,所以要用 hadoop3-bin :
- - hadoop3-bin (sha512 asc):这个包是专为与 Hadoop 3.x 版本兼容的 HBase 所准备的二进制文件。它包含了与 Hadoop 3.x 集群兼容的特定 HBase 版本的二进制文件。
复制代码
- 下载 hbase-2.6.1-hadoop3-bin.tar.gz 压缩包
- # 解压压缩包
- tar -zxvf hbase-2.6.1-hadoop3-bin.tar.gz
- # 转移到 `/usr/local/hbase`下面
- mv hbase-2.6.1-hadoop3 /usr/local/hbase
复制代码 2. 设置 HBase
- cd /usr/local/hbase/conf
- vi hbase-env.sh
- # 将 JAVA_HOME 配置成自己本地的JAVA_HOME环境 `echo $JAVA_HOME` 可以查看。
- export JAVA_HOME=/usr/lib/jvm/java-1.8.0-openjdk
复制代码- vi /usr/local/hbase/conf/hbase-site.xml
复制代码- <configuration>
-
- <!-- 由于我们是分布式节点启动,所以这里一定要改为 true,不然无法启动! -->
- <property>
- <name>hbase.cluster.distributed</name>
- <value>true</value>
- </property>
-
- <!-- HBase Master 和 RegionServer 绑定的地址 -->
- <property>
- <name>hbase.master</name>
- <value>hbase://vm-01:16000</value>
- </property>
- <!-- HBase 使用的 ZooKeeper 集群 -->
- <property>
- <name>hbase.zookeeper.quorum</name>
- <value>vm-01,vm-02,vm-03</value>
- </property>
- <!-- 默认的 ZooKeeper 客户端端口 -->
- <property>
- <name>hbase.zookeeper.property.clientPort</name>
- <value>2181</value>
- </property>
- <!-- HBase 根目录 -->
- <property>
- <name>hbase.rootdir</name>
- <value>hdfs://vm-01:9000/hbase</value> <!-- 存储在 HDFS 中 -->
- </property>
- <!-- Zookeeper 的根节点 -->
- <property>
- <name>zookeeper.znode.parent</name>
- <value>/hbase</value>
- </property>
- <!-- 启用 HBase Master 和 RegionServer -->
- <property>
- <name>hbase.master.port</name>
- <value>16000</value>
- </property>
- <property>
- <name>hbase.regionserver.port</name>
- <value>16020</value>
- </property>
- </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
- tar -xzvf apache-zookeeper-3.8.4-bin.tar.gz
- 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。
- cd /usr/local/zookeeper/conf/
- cp zoo_sample.cfg zoo.cfg
复制代码- # 基本配置
- tickTime=2000
- initLimit=10
- syncLimit=5
- dataDir=/usr/local/zookeeper/data
- clientPort=2181
- maxClientCnxns=60
- # 注意:以上大部分配置已存在,需要替换就行
- # 集群服务器列表
- server.1=vm-01:2888:3888
- server.2=vm-02:2888:3888
- server.3=vm-03:2888:3888
- # tickTime:ZooKeeper 服务器与客户端之间或服务器之间心跳的基本时间单位,单位为毫秒。
- # initLimit:Follower 节点连接 Leader 节点的初始化时间,单位为 tickTime 的倍数。
- # syncLimit:Leader 和 Follower 之间同步的最大时间,单位为 tickTime 的倍数。
- # dataDir:ZooKeeper 保存数据的目录,需要为每台虚拟机单独创建。
- # clientPort:客户端连接 ZooKeeper 集群的端口,默认是 2181。
- # server.X:X 是每个节点的唯一编号;2888 是节点通信端口;3888 是选举端口。
复制代码
- 在 dataDir(好比 /usr/local/zookeeper/data)中,为每个假造机创建一个名为 myid 的文件,用于标识节点编号。内容为 zoo.cfg 中设置的 server.X 的编号:
在 vm-01:
- mkdir -p /usr/local/zookeeper/data
- echo "1" > /usr/local/zookeeper/data/myid
复制代码 在 vm-02:
- mkdir -p /usr/local/zookeeper/data
- echo "2" > /usr/local/zookeeper/data/myid
复制代码 在 vm-03:
- mkdir -p /usr/local/zookeeper/data
- echo "3" > /usr/local/zookeeper/data/myid
复制代码- # 1. 启动 ZooKeeper
- cd /usr/local/zookeeper/bin
- ./zkServer.sh start
- # 2. 查看ZooKeeper状态
- ./zkServer.sh status
- # 3. 停止 ZooKeeper
- ./zkServer.sh stop
- # 4. 重启 ZooKeeper
- ./zkServer.sh restart
复制代码- # 1. 通过客户端连接 ZooKeeper :
- ./zkCli.sh -server 192.168.10.68:2181
- # 2. 执行一些简单命令验证:
- ls /
- create /test "HelloZooKeeper"
- get /test
复制代码 4. 启动 HBase 集群
- 先在 主节点 vm-01 上 执行 ./start-hbase.sh
:
- cd /usr/local/hbase/bin
- ./start-hbase.sh
复制代码
- 后在 从节点 vm-02 和 vm-03 上 执行 ./start-hbase.sh
:
提示:HBase 在第一次启动时必要通过 hbase init 操作将集群的元数据存储在 ZooKeeper 中(包括 /hbase/hbaseid 节点)。
- usr/local/zookeeper/bin/zkCli.sh 执行 ls /hbase 检察。
5. 检测 HBase 集群是否启动成功
- HBase Master:应该看到 HMaster 进程。
- RegionServer:应该看到 HRegionServer 进程。
- # master
- tail -f /usr/local/hbase/logs/hbase-root-master-vm-01.log
- tail -f /usr/local/hbase/logs/hbase-root-master-vm-01.out
- # regionServer
- tail -f /usr/local/hbase/logs/hbase-root-regionserver-vm-02.log
- tail -f /usr/local/hbase/logs/hbase-root-regionserver-vm-02.out
复制代码- # 启动 HBase Shell :
- /usr/local/hbase/bin/hbase shell
- # 检查集群状态
- hbase:001:0> status
- 1 active master, 2 backup masters, 3 servers, 0 dead, 0.6667 average load
- 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 中写入数据并读取
- # 进入 HBase Shell
- hbase shell
- # 创建一个表: 在 HBase Shell 中,创建一个表:
- create 'test_table', 'cf1'
- # 插入数据: 插入一些数据:
- put 'test_table', 'row1', 'cf1:name', 'John'
- # 查询数据: 查询数据:
- get 'test_table', 'row1'
复制代码 至此,HBase集群搭建成功。
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。 |