大数据技术(六)—— Hbase集群安装

目录

一、Hbase安装

1、准备工作

1.1、安装rsync

1.2、编辑脚本

1.3、测试

2、安装Hadoop

3、安装zookeeper

3.1、下载最新稳定版

3.2、安装配置ZK

4、安装Hbase

4.1、解压文件

4.2、hbase-env.sh

4.3、backup-masters

4.4、配置hbase-site.xml

4.5、regionservers

4.6、创建软连接

5、启动Hbase

5.1、分发数据

5.2、启动hdfs

5.3、启动zk,每个节点都启动

5.4、启动hbase

5.5、HBase页面和HDFS

6、编写脚本

[二、HBase Shell操作](#二、HBase Shell操作)


一、Hbase安装

|---------|-----------------|--------|-----------|--------------|
| 主机名 | ip | master | zookeeper | RegionServer |
| hadoop1 | 192.168.139.176 | √ | √ | √ |
| hadoop2 | 192.168.139.214 | backup | √ | √ |
| hadoop3 | 192.168.139.215 | | √ | √ |

1、准备工作

1.1、安装rsync

bash 复制代码
sudo yum install rsync -y

1.2、编辑脚本

bash 复制代码
vim xsync
bash 复制代码
#!/bin/bash

#1. 判断参数个数
if [ $# -lt 1 ]
then
    echo Not Enough Arguement!
    exit;
fi

#2. 遍历集群所有机器
for host in hadoop1 hadoop2 hadoop3
do
    echo ====================  $host  ====================
    #3. 遍历所有目录,挨个发送

    for file in $@
    do
        #4. 判断文件是否存在
        if [ -e $file ]
            then
                #5. 获取父目录
                pdir=$(cd -P $(dirname $file); pwd)

                #6. 获取当前文件的名称
                fname=$(basename $file)
                ssh $host "mkdir -p $pdir"
                rsync -av $pdir/$fname $host:$pdir
            else
                echo $file does not exists!
        fi
    done
done

1.3、测试

bash 复制代码
#创建文件
touch a.txt

#分发文件,如果成功了再其他服务器上可以看到该文件
xsync a.txt 

2、安装Hadoop

大数据技术-Hadoop(一)Hadoop集群的安装与配置_安装hadoop集群-CSDN博客

3、安装zookeeper

3.1、下载最新稳定版

https://dlcdn.apache.org/zookeeper/zookeeper-3.8.4/apache-zookeeper-3.8.4-bin.tar.gz

3.2、安装配置ZK

bash 复制代码
#解压文件
tar -zxf apache-zookeeper-3.8.4-bin.tar.gz 

#移动
 mv apache-zookeeper-3.8.4-bin /usr/local/zookeeper

 #进入安装目录,创建文件
 cd /usr/local/zookeeper
 
 #创建目录
 mkdir data logs 

 #修改配置文件
 cd /usr/local/zookeeper/conf

 mv zoo_sample.cfg zoo.cfg
 
bash 复制代码
 #添加以下内容,这里假设你一定设置好了hostname
  dataDir =/usr/local/zookeeper/data
  dataLogDir=/usr/local/zookeeper/logs
  server.1=hadoop1:2888:3888
  server.2=hadoop2:2888:3888
  server.3=hadoop3:2888:3888

  #修改myid这里写1
bash 复制代码
#分发文件,然后去其他服务器上,修改相应的/usr/local/zookeeper/data/myid 文件为2 和3
xsync /usr/local/zookeeper

4、安装Hbase

4.1、解压文件

bash 复制代码
#解压文件
tar -zxf hbase-2.6.1-bin.tar.gz -C /usr/local/

4.2、hbase-env.sh

bash 复制代码
#指定java环境变量
export JAVA_HOME=/usr/local/java

#指定不使用自带的zk
export HBASE_MANAGES_ZK=false

4.3、backup-masters

bash 复制代码
vim backup-masters

#添加如下内容,指定备用master
hadoop2

4.4、配置hbase-site.xml

XML 复制代码
<?xml version="1.0"?>
<?xml-stylesheet type="text/xsl" href="configuration.xsl"?>
<configuration>

    <!--指定数据路径-->
    <property>
        <name>hbase.rootdir</name>
        <value>hdfs://hadoop1:8020/hbase</value>
    </property>
    <!--是否分布-->
    <property>
        <name>hbase.cluster.distributed</name>
        <value>true</value>
    </property>
    <!--zk的地址-->
    <property>
        <name>hbase.zookeeper.quorum</name>
        <value>hadoop1:2181,hadoop2:2181,hadoop3:2181</value>
    </property>
    <!--zk数据路径-->
    <property>
        <name>hbase.zookeeper.property.dataDir</name>
        <value>/usr/local/zookeeper/data</value>
    </property>
    <!--指定端口-->
    <property>
        <name>hbase.master.port</name>
        <value>16000</value>
    </property>
    <property>
        <name>hbase.unsafe.stream.capability.enforce</name>
        <value>false</value>
    </property>
  <!--解决shell报错-->
    <property>
      <name>hbase.wal.provider</name>
      <value>filesystem</value>
    </property>

</configuration>

4.5、regionservers

XML 复制代码
hadoop1
hadoop2
hadoop3

4.6、创建软连接

bash 复制代码
ln -s /usr/local/hadoop-3.4.0/etc/hadoop/core-site.xml /usr/local/hbase-2.6.1/conf/core-site.xml
ln -s /usr/local/hadoop-3.4.0/etc/hadoop/hdfs-site.xml /usr/local/hbase-2.6.1/conf/hdfs-site.xml

5、启动Hbase

5.1、分发数据

bash 复制代码
#分发数据
xsync /usr/local/hbase-2.6.1/

5.2、启动hdfs

bash 复制代码
#启动
/usr/local/hadoop-3.4.0/sbin/start-dfs.sh 

#停止
/usr/local/hadoop-3.4.0/sbin/stop-dfs.sh 

5.3、启动zk,每个节点都启动

bash 复制代码
#启动
/usr/local/zookeeper/bin/zkServer.sh start 

#停止
/usr/local/zookeeper/bin/zkServer.sh stop

5.4、启动hbase

bash 复制代码
#方式1

bin/hbase-daemon.sh start master
bin/hbase-daemon.sh start regionserver

#方式2

#启动
/usr/local/hbase-2.6.1/bin/start-hbase.sh

#停止
/usr/local/hbase-2.6.1/bin/stop-hbase.sh

5.5、HBase页面和HDFS

192.168.139.176:16010

6、编写脚本

bash 复制代码
#!/bin/bash

if [ $# -lt 1 ]
then
    echo "No Args Input..."
    exit ;
fi

case $1 in
"start")
        echo " =================== 启动 hadoop集群 ==================="

        echo " --------------- 启动 hdfs ---------------"
        ssh hadoop1 "/usr/local/hadoop-3.4.0/sbin/start-dfs.sh"
        echo " --------------- 启动 zk集群 ---------------"
        ssh hadoop1 "/usr/local/zookeeper/bin/zkServer.sh start"
        ssh hadoop2 "/usr/local/zookeeper/bin/zkServer.sh start"
        ssh hadoop3 "/usr/local/zookeeper/bin/zkServer.sh start"
        echo " --------------- 启动 hbase ---------------"
        ssh hadoop1 "/usr/local/hbase-2.6.1/bin/start-hbase.sh"
;;
"stop")
        echo " =================== 关闭 hadoop集群 ==================="

        echo " --------------- 关闭 hbase ---------------"
        ssh hadoop1 "/usr/local/hbase-2.6.1/bin/hbase-daemon.sh stop master"
        ssh hadoop1 "/usr/local/hbase-2.6.1/bin/hbase-daemon.sh stop regionserver"
        ssh hadoop1 "/usr/local/hbase-2.6.1/bin/stop-hbase.sh"

        ssh hadoop2 "/usr/local/hbase-2.6.1/bin/hbase-daemon.sh stop master"
        ssh hadoop2 "/usr/local/hbase-2.6.1/bin/hbase-daemon.sh stop regionserver"
        ssh hadoop2 "/usr/local/hbase-2.6.1/bin/stop-hbase.sh"

        ssh hadoop3 "/usr/local/hbase-2.6.1/bin/hbase-daemon.sh stop regionserver"

        echo " --------------- 关闭 zk ---------------"
        ssh hadoop1 "/usr/local/zookeeper/bin/zkServer.sh stop"
        ssh hadoop2 "/usr/local/zookeeper/bin/zkServer.sh stop"
        ssh hadoop3 "/usr/local/zookeeper/bin/zkServer.sh stop"

        echo " --------------- 关闭 hdfs ---------------"
        ssh hadoop1 "/usr/local/hadoop-3.4.0/sbin/stop-dfs.sh"
;;
*)
    echo "Input Args Error..."
;;
esac

chmod +x hbase.sh

二、HBase Shell操作

bash 复制代码
#进入shell
/usr/local/hbase-2.6.1/bin/hbase shell

#查看
list

#创建表
create 'user','info'

#插入数据
put 'user','1001','info:sex','male'
put 'user','1001','info:age','18'
put 'user','1002','info:name','Janna'
put 'user','1003','info:sex','female'
put 'user','1003','info:age','20'

#查看表
 scan 'user'

#表结构
describe 'user'

#修改
put 'user','1001','info:name','tom'
put 'user','1001','info:age','30'

#查看
get 'user','1001'
get 'user','1001','info:name'

#统计条数
count 'user'

#删除一行数据
deleteall 'user','1001'

#删除列
delete 'user','1002','info:sex'

#清空数据
truncate 'user'

#删除表,先禁用再删除
disable 'user'
drop 'user'


#获取配置信息
@shell.hbase.configuration.get("hbase.rpc.timeout")

#设置配置信息
@shell.hbase.configuration.setInt("hbase.rpc.timeout", 61010)

#预分隔表
create 't1','f',SPLITS => ['10','20','30']

#创建namespace
create_namespace 'my_ns'

#命名空间下创建表
create 'my_ns:my_table', 'user'

#修改ns
alter_namespace 'my_ns', {METHOD => 'set', 'PROPERTY_NAME' => 'PROPERTY_VALUE'}

#删除ns里的表
 disable 'my_ns:my_table'
 drop 'my_ns:my_table'

#删除ns
drop_namespace 'my_ns'

#退出
exit
相关推荐
李元豪2 小时前
grpo nl2sql qwen3 模型强化学习训练有效果的成立条件有哪些
数据库·oracle
Hello.Reader5 小时前
RedisJSON 路径语法深度解析与实战
数据库·redis·缓存
TDengine (老段)5 小时前
TDengine 使用最佳实践(2)
大数据·数据库·物联网·时序数据库·iot·tdengine·涛思数据
Deng9452013146 小时前
基于大数据的电力系统故障诊断技术研究
大数据·matplotlib·深度特征提取·随机森林分类算法·标签编码
设计师小聂!8 小时前
Linux系统中部署Redis详解
linux·运维·数据库·redis
kfepiza8 小时前
Debian-10编译安装Mysql-5.7.44 笔记250706
linux·数据库·笔记·mysql·debian·bash
Touper.8 小时前
Redis 基础详细介绍(Redis简单介绍,命令行客户端,Redis 命令,Java客户端)
java·数据库·redis
不剪发的Tony老师8 小时前
phpMyAdmin:一款经典的MySQL在线管理工具又回来了
数据库·mysql·phpmyadmin
极限实验室8 小时前
TDBC 2025 可信数据库发展大会,极限科技邀您来赴约!
数据库
小菜鸡06269 小时前
FlinkSQL通解
大数据·flink