NWNU-Sun | 技术沉思录

代码是诗,bug是谜

   ::  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理
  77 随笔 :: 49 文章 :: 6 评论 :: 40763 阅读

Hbase集群安装

1、前提

  • Centos7.6
  • Hadoop 3.2.1(HA环境)
  • Zookeeper 3.4.13(集群环境)
  • 节点:192.168.2.75、192.168.2.77、192.168.2.46

确保已经部署上述集群环境

版本对应:

https://hbase.apache.org/book.html#java

2、下载安装包

选择主机中某个节点,比如75

wget http://archive.apache.org/dist/hbase/2.4.1/hbase-2.4.1-bin.tar.gz
tar  -zxvf hbase-2.4.1-bin.tar.gz /srv/dstore/1.0.0.0
cd /srv/dstore/1.0.0.0
mv hbase-2.4.1 hbase

3.修改配置

  • hbase-env.sh
    export JAVA_HOME="/srv/dstore/1.0.0.0/jdk1.8.0_211"
    #export HBASE_PID_DIR="/srv/dstore/1.0.0.0/hbase"
    export HBASE_MANAGES_ZK=false
    
  • hbase-site.xml
    <?xml version="1.0" encoding="UTF-8"?>
    <?xml-stylesheet type="text/xsl" href="configuration.xsl"?>
    <configuration>
                    <!-- 指定hbase在HDFS上存储的路径,HA模式填命名空间名称 -->
            <property>
                    <name>hbase.rootdir</name>
                    <value>hdfs://cluster/hbase</value>
            </property>
            <!-- 指定hbase是否分布式运行 -->
            <property>
                    <name>hbase.cluster.distributed</name>
                    <value>true</value>
            </property>
            <!-- 指定zookeeper的地址,多个用“,”分割 -->
            <property>
                    <name>hbase.zookeeper.quorum</name>
                    <value>sun75:2181,sun77:2181,sun46:2181</value>
            </property>
            <!--指定hbase管理页面-->
            <property>
                  <name>hbase.master.info.port</name>
                  <value>60010</value>
            </property>
            <!-- 在分布式的情况下一定要设置,不然容易出现Hmaster起不来的情况 -->
            <property>
                    <name>hbase.unsafe.stream.capability.enforce</name>
                    <value>false</value>
            </property>
             <property>
                    <name>hbase.master.port</name>
                    <value>16000</value>
            </property>
                 <property>
                    <name>hbase.master.info.port</name>
                    <value>60010</value>
            </property>
            </property>
                 <property>
                    <name>hbase.regionserver.port</name>
                    <value>60020</value>
            </property>
    </configuration>
    
  • regionservers

    指定HBase集群的从节点;原内容清空,添加如下三行

    sun75
    sun77
    sun46
    
  • back-masters

    创建backup-masters配置文件,里边包含备份HMaster节点的主机名,每个机器独占一行,实现HMaster的高可用

    vi back-masters
    sun77
    

创建软连接

  • 注意:三台机器均做如下操作,如果不做会报UnknownHostException cluster

  • 因为HBase集群需要读取hadoop的core-site.xml、hdfs-site.xml的配置文件信息,所以我们三台机器都要执行以下命令,在相应的目录创建这两个配置文件的软连接

    ln -s /srv/dstore/1.0.0.0/hdfs/etc/hadoop/core-site.xml  ./
    ln -s /srv/dstore/1.0.0.0/hdfs/etc/hadoop/hdfs-site.xml  ./
    

4、分发安装包

scp -r hbase sun77:`pwd`
scp -r hbase sun46:`pwd`

5、启动

  • 后台启动HBase RegionServer

    $ nohup hbase regionserver start > regionserver 2 >&1  &
    $./hbase-daemon.sh  start master 
    
  • 后台启动HBase Master

    $ nohup hbase master start > master 2 >&1  &
    $./hbase-daemon.sh  start regionserver
    

6、测试

  • 访问webui

    http://192.168.2.75:60010/master-status

    image-20230727174436663

  • 命令行

    # 进入hbase shell
    hbase shell
    
    #查看帮助命令
    help
    
    # 查看当前数据库有什么表
    list
    
    # 创建表
    create 'student','info'
    
    # 插入数据
    put 'student','1001','info:sex','male'
    put 'student','1001','info:age','18'
    put 'student','1002','info:name','Janna'
    put 'student','1002','info:sex','female'
    put 'student','1002','info:age','20'
    
    #查看表数据
    scan 'student'
    

    image-20230728100714455

7、疑问

上述配置安装Hbase的过程中没有配置Hadoop环境变量,Hbase是如何找到Hadoop环境并使用的,研究bin下的文件发现hbase脚本下有段代码

HADOOP_IN_PATH=$(PATH="${HADOOP_HOME:-${HADOOP_PREFIX}}/bin:$PATH" which hadoop 2>/dev/null)

如果变量HADOOP_HOME不存在则用which查找hadoop脚本路径,这样就查到了hadoop安装路径。

$参考

posted on   匿名者nwnu  阅读(13)  评论(0编辑  收藏  举报
编辑推荐:
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
阅读排行:
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· 阿里巴巴 QwQ-32B真的超越了 DeepSeek R-1吗?
· 【译】Visual Studio 中新的强大生产力特性
· 【设计模式】告别冗长if-else语句:使用策略模式优化代码结构
· AI与.NET技术实操系列(六):基于图像分类模型对图像进行分类
历史上的今天:
2022-08-03 8.Jenkins+Docker+SpringCloud微服务持续集成
点击右上角即可分享
微信分享提示