大数据技术——HBase安装配置DDLDML操作

news/2024/11/20 11:49:40/

HBase文章目录

  • 1. HBase 安装
    • 1.1 HBase下载
    • 1.2 HBase安装
    • 1.3 HBase 初始配置
  • 2. 配置高可用并且群起集群
    • 2.1 HBase高可用
    • 2.2 群起集群
    • 2.3 进入HBase客户端
  • 3. DDL&DML操作
    • 3.1 DDL操作
    • 3.2 DML操作

1. HBase 安装

1.1 HBase下载

HBase下载官方网站直达

  • 选择自己需要的版本,建议使用稳定版的

在这里插入图片描述

1.2 HBase安装

  • 安装步骤
    • 打开远程登录窗口,进入到将安装包存放的路径,直接拉拽到窗口,会自动传输
    • 解压到相应路径
      在这里插入图片描述
      在这里插入图片描述

1.3 HBase 初始配置

  • Ⅰ 进入到环境变量配置文件
vim /etc/profile.d/my_env.sh

在这里插入图片描述

#HBASE_HOME
export HBASE_HOME=/opt/module/hbase-2.4.11
export PATH=$PATH:$HBASE_HOME/bin
  • 进入到HBase的conf目录
    在这里插入图片描述
  • Ⅱ 对hbase-env.sh文件做如下修改
    在这里插入图片描述
  • Ⅲ 对hbase-site.xml修改如下
    在这里插入图片描述
  <property><name>hbase.cluster.distributed</name><value>true</value></property><property><name>hbase.zookeeper.quorum</name><value>hadoop102,hadoop103,hadoop104</value><description>The directory shared by RegionServers. </description></property>
<!-- <property>-->
<!-- <name>hbase.zookeeper.property.dataDir</name>-->
<!-- <value>/export/zookeeper</value>-->
<!-- <description> 记得修改 ZK 的配置文件 -->
<!-- ZK 的信息不能保存到临时文件夹-->
<!-- </description>-->
<!-- </property>--><property><name>hbase.rootdir</name><value>hdfs://hadoop102:8020/hbase</value><description>The directory shared by RegionServers. </description></property>
  • Ⅳ 对regionservers文件做出修改【不要有任何空格】
hadoop102
hadoop103
hadoop104

2. 配置高可用并且群起集群

2.1 HBase高可用

  • 高可用实现的就是在master挂掉的时候,可以有一个备用的master作为管理者来管理集群,HBase是通过zookeeper来管理Region Server的

实现步骤:
Ⅰ在 conf 目录下创建 backup-masters 文件

touch conf/backup-masters

Ⅱ在 backup-masters 文件中配置高可用 HMaster 节点

echo hadoop103 > conf/backup-masters

Ⅲ完成所有配置将HBase分发到其他的机器

 xsync hbase-2.4.11

2.2 群起集群

操作步骤:
Ⅰ启动Hadoop集群

  • 有脚本的可以使用脚本,没有的参考以下命令
//注意启动的位置按照自己配置的进行启动
sbin/start-dfs.sh
sbin/start-yarn.sh

Ⅱ启动zookeeper集群

  • 三台机器分别进入到zookeeper所在目录执行
 bin/zkServer.sh start

Ⅲ 启动HBase

  • 这是群起命令
bin/start-hbase.sh

Ⅳ 到浏览器输入网址查看可视化界面

http://hadoop102:16010
大概长这样
在这里插入图片描述

2.3 进入HBase客户端

进入命令
在这里插入图片描述

输入help,查看帮助文档,对于HBase常用命令为namespace的操作,以及DDL和DML操作,增删改查命令如下:
在这里插入图片描述

3. DDL&DML操作

3.1 DDL操作

在此之前先创建一个namespace,或者也可以使用默认的namespace

//创建操作create_namespace 'bigdata'//查看操作list_namespace
  • 创建表
    • 创建表时只需要指定所在namespace,列族,以及维护版本信息即可
 create 'bigdata:person', {NAME => 'info', VERSIONS => 5}, {NAME => 'msg'}
  • 查看表

    • 查看表有两个命令:list 和 describe
      • list:查看所有的表名: list
      • describe:查看一个表的详情: describe ‘person’
  • 修改表

    • 表名创建时写的所有和列族相关的信息,都可以后续通过 alter 修改,包括增加删除列族。
      • 增加列族和修改信息都使用覆盖的方法
        • alter ‘person’, {NAME => ‘add’, VERSIONS => 3}
      • 删除信息使用特殊的语法
        • alter ‘person’, ‘delete’ => ‘add’
  • 删除表

    • shell 中删除表格,需要先将表格状态设置为不可用
 disable 'person'drop 'person'

3.2 DML操作

写入数据
- 在 HBase 中如果想要写入数据,只能添加结构中最底层的 cell
- 入相同 rowKey,相同列的数据,会写入多个版本进行覆盖

 put 'bigdata:person','1001','info:name','lisi'put 'bigdata:person','1001','info:age','18'

cell回顾:
在这里插入图片描述

  • 读取数据
    • 读取数据的方法有两个:get 和 scan
      • get 最大范围是一行数据,也可以进行列的过滤读取数据的结果为多行 cell
 get 'bigdata:person','1001'get 'bigdata:person','1001' , {COLUMN => 'info:name'}
  • scan 是扫描数据,能够读取多行数据:推荐使用 startRow 和stopRow 来控制读取的数据,默认范围左闭右开

    • scan ‘bigdata:person’,{STARTROW => ‘1001’,STOPROW => ‘1002’}
  • 删除数据

    • delete 表示删除一个版本的数据,即为 1 个 cell,不填写版本默认删除最新的一个版本
    • deleteall 表示删除所有版本的数据,即为当前行当前列的多个 cell
 delete 'bigdata:student','1001','info:name'deleteall 'bigdata:student','1001','info:name'

http://www.ppmy.cn/news/8682.html

相关文章

new Vue的时候到底做了什么

Vue加载流程 1.初始化的第一阶段是Vue实例也就是vm对象创建前后&#xff1a;首先Vue进行生命周期&#xff0c;事件初始化发生在beforeCreate生命周期函数前&#xff0c;然后进行数据监测和数据代理的初始化&#xff0c;也就是创建vm对象的过程&#xff0c;当vm对象创建完成就可…

Java8 - Streams flatMap()

文章目录What is flatMap()?Why flat a Stream?DemoWhat is flatMap()? # Stream<String[]> # Stream<Stream<String>> # String[][][[1, 2],[3, 4],[5, 6] ]它由一个 2 级 Stream 或一个二维数组组成 。 在 Java 8 中&#xff0c;我们可以使用 flatMap…

网络安全一哥的奇安信发布了全球高级可持续威胁年度报告 值得学习

声明 本文是学习全球高级持续性威胁 APT 2021年度报告. 下载地址而整理的学习笔记,分享出来希望更多人受益,如果存在侵权请及时联系我们 中国境内高级持续性威胁综述 基于中国境内海量DNS域名解析和奇安信威胁情报中心失陷检测&#xff08;IOC&#xff09;库的碰撞分析&…

怎么给字符串字段加索引?

现在,几乎所有的系统都支持邮箱登录,如何在邮箱这样的字段上建立合理的索引,是我们今天要讨论的问题。 假设,你现在维护一个支持邮箱登录的系统,用户表是这么定义的: mysql> create table SUser( ID bigint unsigned primary key, email varchar(64), … )engine=inn…

Day 17-Vue3 技术_其它

1.全局API的转移 Vue 2.x 有许多全局 API 和配置。例如&#xff1a;注册全局组件、注册全局指令等。 //注册全局组件 Vue.component(MyButton, {data: () > ({count: 0}),template: <button click"count">Clicked {{ count }} times.</button> })//注…

我的2022总结

博客记录 踏石留印 抓铁有痕 使用csdn写博客&#xff0c;发帖子&#xff0c;帮助网友回答问题。都是实实在在满足了学习&#xff0c;交流的需求 这是我自己使用 CSDN 各种功能记录&#xff1a; 工作方面&#xff1a; 年初参与了公司的一个产品&#xff0c;主要负责串口服务…

力扣(LeetCode)1801. 积压订单中的订单总数(C++)

优先队列模拟 根据题目描述模拟。 如果该订单是一笔采购订单 buy &#xff0c;则可以查看积压订单中价格 最低 的销售订单 sell 。提示我们&#xff0c;建立小根堆&#xff0c;维护价格最低的销售订单sell 。 反之亦然&#xff0c;如果该订单是一笔销售订单 sell &#xff0c;…

扩展欧几里得定理求ax + by = c 的通解

扩展欧几里得定理求ax by c 的通解&#xff1a; 前置条件&#xff1a; ax by c , gcd(a, b) d 计算&#xff1a; ad\frac{a}{d}da​x bd\frac{b}{d}db​y cd\frac{c}{d}dc​ &#xff1b; 设ad\frac{a}{d}da​ a1 , bd\frac{b}{d}db​ b1 ; 原式变为 a1x b1y c…