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
    • 可参考如下文章
  2. 【node1执行】下载HBase安装包

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

    shell 复制代码
    # 在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文件

    shell 复制代码
    # 将文件的全部内容替换成如下内容:
    <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文件

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

    shell 复制代码
    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执行】,配置软链接

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

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

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

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

    shell 复制代码
    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页面

  11. 简单测试使用HBase

    【node1执行】

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

问题:

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

解决方案:

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

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

bash 复制代码
/export/server/zookeeper/bin/zkCli.sh

查看所有节点ls /

bash 复制代码
[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节点

bash 复制代码
[zk: localhost:2181(CONNECTED) 4] delete /hbase 
Node not empty: /hbase

重启zookeeper

bash 复制代码
/export/server/zookeeper/bin/zkServer.sh stop
/export/server/zookeeper/bin/zkServer.sh start

启动hbase

bash 复制代码
[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

bash 复制代码
[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启动成功!!!!!

相关推荐
轻揉小乔 真新人11 分钟前
使用memc-nginx和srcache-nginx模块构建高效透明的缓存机制
运维·nginx·缓存
Yan_chen66627 分钟前
SSH(Secure Shell)安全外壳协议详解
运维·网络协议·ssh
lingran__2 小时前
Linux 基础常用指令万字详解(上)|文件目录命令,结合底层原理剖析
linux·运维·服务器·后端·centos·linux基础指令
各类产品分享2 小时前
电力行业AR智能运维哪个品牌好
运维·ar·ar巡检
Dlrb12112 小时前
Linux驱动---sys文件系统自动添加设备节点、添加调试节点以及MISC设备驱动的解释
linux·imx6ull·misc·设备节点·sys文件系统
贾天佑忆月 迷失的昵3 小时前
客户端与服务器持续同步解析(轮询,comet,WebSocket)
运维·服务器·websocket
刘某的Cloud3 小时前
Galera Cluster mariadb 生产环境常见问题排查与运维指南
linux·运维·数据库·mariadb·集群高可用
70asunflower3 小时前
Linux 性能排查分析完全教程
linux·运维
zhangfeng11333 小时前
宝塔8 升级到 11导致 服务器无法访问外网dns失效了,无法访问bt.cn 解决方法 测试通过
运维·服务器
兵bing4 小时前
Docker Compose 配置文件归纳总结-千问
运维·docker·容器