15-Linux部署HBase集群

Linux部署HBase集群

简介

HBase 是一种分布式、可扩展、支持海量数据存储的 NoSQL 数据库。

和Redis一样,HBase是一款KeyValue型存储的数据库。

不过和Redis设计方向不同

  • Redis设计为少量数据,超快检索
  • HBase设计为海量数据,快速检索

HBase在大数据领域应用十分广泛,现在我们来在node1、node2、node3上部署HBase集群。

HBase官网:https://hbase.apache.org/

安装

  1. HBase依赖Zookeeper、JDK、Hadoop(HDFS),请确保已经完成前面

    • 集群化软件前置准备(JDK)
    • Zookeeper
    • Hadoop
    • 可参考如下文章
    • 11-Linux部署集群准备:http://t.csdnimg.cn/zWbnd
    • 12-Linux部署Zookeeper集群:http://t.csdnimg.cn/dOvt5
    • 14-Linux部署Hadoop集群:http://t.csdnimg.cn/ptHa3
  2. 【node1执行】下载HBase安装包

    • 下载
    wget --no-check-certificate http://archive.apache.org/dist/hbase/2.1.0/hbase-2.1.0-bin.tar.gz
    
    • 解压
    tar -zxvf hbase-2.1.0-bin.tar.gz -C /export/server
    
    • 软链接
    ln -s /export/server/hbase-2.1.0 /export/server/hbase
    
  3. 【node1执行】,修改配置文件,修改conf/hbase-env.sh文件

    # 在28行配置JAVA_HOME
    export JAVA_HOME=/export/server/jdk
    # 在126行配置:
    # 意思表示,不使用HBase自带的Zookeeper,而是用独立Zookeeper
    export HBASE_MANAGES_ZK=false
    # 在任意行,比如26行,添加如下内容:
    export HBASE_DISABLE_HADOOP_CLASSPATH_LOOKUP="true"
    
  4. 【node1执行】,修改配置文件,修改conf/hbase-site.xml文件

    # 将文件的全部内容替换成如下内容:
    <configuration>
            <!-- HBase数据在HDFS中的存放的路径 -->
            <property>
                <name>hbase.rootdir</name>
                <value>hdfs://node1:8020/hbase</value>
            </property>
            <!-- Hbase的运行模式。false是单机模式,true是分布式模式。若为false,Hbase和Zookeeper会运行在同一个JVM里面 -->
            <property>
                <name>hbase.cluster.distributed</name>
                <value>true</value>
            </property>
            <!-- ZooKeeper的地址 -->
            <property>
                <name>hbase.zookeeper.quorum</name>
                <value>node1,node2,node3</value>
            </property>
            <!-- ZooKeeper快照的存储位置 -->
            <property>
                <name>hbase.zookeeper.property.dataDir</name>
                <value>/export/server/apache-zookeeper-3.6.0-bin/data</value>
            </property>
            <!--  V2.1版本,在分布式情况下, 设置为false -->
            <property>
                <name>hbase.unsafe.stream.capability.enforce</name>
                <value>false</value>
            </property>
    </configuration>
    
  5. 【node1执行】,修改配置文件,修改conf/regionservers文件

    # 填入如下内容
    node1
    node2
    node3
    
  6. 【node1执行】,分发hbase到其它机器

    scp -r /export/server/hbase-2.1.0 node2:/export/server/
    scp -r /export/server/hbase-2.1.0 node3:/export/server/
    
  7. 【node2、node3执行】,配置软链接

    ln -s /export/server/hbase-2.1.0 /export/server/hbase
    
  8. 【node1、node2、node3执行】,配置环境变量

    • 编辑profile配置文件
    vim /etc/profile
    
    • 配置在/etc/profile内,追加如下两行
    export HBASE_HOME=/export/server/hbase
    export PATH=$HBASE_HOME/bin:$PATH
    
    • 刷新环境变量
    source /etc/profile
    
  9. 【node1执行】启动HBase

    • 【node1、node2、node3】启动zookeeper
    /export/server/zookeeper/bin/zkServer.sh start
    
    • 【node1】启动Hadoop
    start-all.sh
    

    请确保:Hadoop HDFS、Zookeeper是已经启动了的

    start-hbase.sh
    
    # 如需停止可使用
    stop-hbase.sh
    

    由于我们配置了环境变量export PATH= P A T H : PATH: PATH:HBASE_HOME/bin

    start-hbase.sh即在$HBASE_HOME/bin内,所以可以无论当前目录在哪,均可直接执行

  10. 验证HBase

    浏览器打开:http://192.168.149.131:16010,即可看到HBase的WEB UI页面

    image-20240229093921180

  11. 简单测试使用HBase

    【node1执行】

    hbase shell
    
    # 创建表
    create 'test', 'cf'
    
    # 插入数据
    put 'test', 'rk001', 'cf:info', 'bowen'
    
    # 查询数据
    get 'test', 'rk001'
    
    # 扫描表数据
    scan 'test'
    

    image-20240229091804805

问题:

hbase启动十几秒后,HMaster进程会被终止

image-20240228214241597

解决方案:

参考:http://t.csdnimg.cn/4adOh

查了一堆资料,有一篇说是要删除/etc/hosts中的127.0.0.1的地址,没用,最后根据上述参考重启了Zookeeper,启用zkCli.sh

/export/server/zookeeper/bin/zkCli.sh

查看所有节点ls /

[zk: localhost:2181(CONNECTED) 1] ls /
[admin, brokers, cluster, config, consumers, controller_epoch, feature, hbase, isr_change_notification, latest_producer_id_block, log_dir_event_notification, zookeeper]

删除hbase节点

[zk: localhost:2181(CONNECTED) 4] delete /hbase 
Node not empty: /hbase

重启zookeeper

/export/server/zookeeper/bin/zkServer.sh stop
/export/server/zookeeper/bin/zkServer.sh start

启动hbase

[root@node1 conf]# start-hbase.sh 
running master, logging to /export/server/hbase/logs/hbase-root-master-node1.out
node3: running regionserver, logging to /export/server/hbase/bin/../logs/hbase-root-regionserver-node3.out
node2: running regionserver, logging to /export/server/hbase/bin/../logs/hbase-root-regionserver-node2.out
node1: running regionserver, logging to /export/server/hbase/bin/../logs/hbase-root-regionserver-node1.out

查看进程jps

[root@node1 conf]# jps
2629 NodeManager
3014 WebAppProxyServer
5383 Jps
1752 NameNode
5081 HRegionServer
1898 DataNode
4140 QuorumPeerMain
2477 ResourceManager
4989 HMaster
2222 SecondaryNameNode
[root@node1 conf]# ssh node2
Last login: Thu Feb 29 08:46:40 2024 from 192.168.149.1
[root@node2 ~]# jps
2369 HRegionServer
1508 QuorumPeerMain
1621 DataNode
1735 NodeManager
2540 Jps
[root@node2 ~]# ssh node3
Last login: Thu Feb 29 08:46:41 2024 from 192.168.149.1
[root@node3 ~]# jps
2417 HRegionServer
2594 Jps
1609 DataNode
1723 NodeManager
1503 QuorumPeerMain
[root@node3 ~]# exit
登出
Connection to node3 closed.
[root@node2 ~]# exit
登出
Connection to node2 closed.
[root@node1 conf]# 

hbase启动成功!!!!!

  • 20
    点赞
  • 16
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

甲柒

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值