大数据技术之HBase 快速入门(2)

目录

 HBase 安装部署

 Zookeeper 正常部署

 Hadoop 正常部署

 HBase 的解压

 HBase 的配置文件

 HBase 远程发送到其他集群

 HBase 服务的启动

 查看 HBase 页面

 高可用(可选)

 HBase Shell 操作

 基本操作

 Namespace

 DDL

 DML


 HBase 安装部署

 Zookeeper 正常部署

首先保证 Zookeeper 集群的正常部署,并启动之。

[lzl@hadoop12 zookeeper-3.5.7]$ bin/zkServer.sh start
[lzl@hadoop13 zookeeper-3.5.7]$ bin/zkServer.sh start
[lzl@hadoop14 zookeeper-3.5.7]$ bin/zkServer.sh start

 Hadoop 正常部署

Hadoop 集群的正常部署并启动。

[lzl@hadoop12 hadoop-3.1.3]$ sbin/start-dfs.sh
[lzl@hadoop13 hadoop-3.1.3]$ sbin/start-yarn.sh

 HBase 的解压

  1. 解压 Hbase 到指定目录

    [lzl@hadoop12 software]$ tar -zxvf hbase-2.4.11-bin.tar.gz -C /opt/module/
    [lzl@hadoop12 software]$ mv /opt/module/hbase-2.4.11 /opt/module/hbase
  2. 配置环境变量

    [lzl@hadoop12 ~]$ sudo vim /etc/profile.d/my_env.sh

    添加

    # HBASE_HOME
    export HBASE_HOME=/opt/module/hbase
    export PATH=$PATH:$HBASE_HOME/bin
  3. 使用 source 让配置的环境变量生效

    [lzl@hadoop12 module]$ source /etc/profile.d/my_env.sh

 HBase 的配置文件

  1. hbase-env.sh 修改内容

    export HBASE_MANAGES_ZK=false
  2. hbase-site.xml 修改内容

    <?xml version="1.0"?>
    <?xml-stylesheet type="text/xsl" href="configuration.xsl"?>
    <configuration><property><name>hbase.zookeeper.quorum</name><value>hadoop12,hadoop13,hadoop14</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://hadoop12:8020/hbase</value><description>The directory shared by RegionServers.</description></property><property><name>hbase.cluster.distributed</name><value>true</value></property>
    </configuration>
  3. regionservers 文件

    hadoop12
    hadoop13
    hadoop14
  4. 解决 HBase 和 Hadoop 的 log4j 兼容性问题

    [lzl@hadoop12 hbase]$ mv /opt/module/hbase/lib/client-facing-thirdparty/slf4j-reload4j-1.7.33.jar /opt/module/hbase/lib/client-facing-thirdparty/slf4j-reload4j-1.7.33.jar.bak

 HBase 远程发送到其他集群

[lzl@hadoop12 module]$ xsync hbase/

 HBase 服务的启动

  1. 单点启动

    [lzl@hadoop12 hbase]$ bin/hbase-daemon.sh start master
    [lzl@hadoop12 hbase]$ bin/hbase-daemon.sh start regionserver
  2. 群启

    [lzl@hadoop12 hbase]$ bin/start-hbase.sh
  3. 对应的停止服务

    [lzl@hadoop12 hbase]$ bin/stop-hbase.sh

 查看 HBase 页面

启动成功后,可以通过“host:port”的方式来访问 HBase 管理页面,例如:

http://hadoop12:16010

 高可用(可选)

在 HBase 中 HMaster 负责监控 HRegionServer 的生命周期,均衡 RegionServer 的负载,如果 HMaster 挂掉了,那么整个 HBase 集群将陷入不健康的状态,并且此时的工作状态并不会维持太久。所以 HBase 支持对 HMaster 的高可用配置。

  1. 关闭 HBase 集群(如果没有开启则跳过此步)

    [lzl@hadoop12 hbase]$ bin/stop-hbase.sh
  2. conf 目录下创建 backup-masters 文件

    [lzl@hadoop12 hbase]$ touch conf/backup-masters
  3. backup-masters 文件中配置高可用 HMaster 节点

    [lzl@hadoop12 hbase]$ echo hadoop13 > conf/backup-masters
  4. 将整个 conf 目录 scp 到其他节点

    [lzl@hadoop12 hbase]$ xsync conf#集群分发脚本如下
    #!/bin/bash
    #1. 判断参数个数
    if [ $# -lt 1 ]
    thenecho Not Enough Arguement!exit;
    fi
    #2. 遍历集群所有机器
    for host in hadoop12 hadoop13 hadoop14
    doecho ====================  $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:$pdirelseecho $file does not exists!fidone
    done
  5. 重启 HBase, 打开页面测试查看

    http://hadoop12:16010

 HBase Shell 操作

 基本操作

  1. 进入 HBase 客户端命令行

    [lzl@hadoop12 hbase]$ bin/hbase shell
  2. 查看帮助命令

    hbase:001:0> help

 Namespace

  1. 创建命名空间

    hbase:002:0> help 'create_namespace'
  2. 创建命名空间 bigdata

    hbase:003:0> create_namespace 'bigdata'
  3. 查看所有的命名空间

    hbase:004:0> list_namespace

 DDL

  1. 创建表

    hbase:005:0> create 'bigdata:student', {NAME => 'info', VERSIONS => 5}, {NAME => 'msg'}

    如果创建表格只有一个列族,没有列族属性,可以简写。

    hbase:009:0> create 'student1','info'
  2. 查看表

    hbase:013:0> list

    查看一个表的详情

    hbase:014:0> describe 'student1'
  3. 修改表

    hbase:015:0> alter 'student1', {NAME => 'f1', VERSIONS => 3}

    删除信息使用特殊的语法

    hbase:015:0> alter 'student1', NAME => 'f1', METHOD => 'delete'
    hbase:016:0> alter 'student1', 'delete' => 'f1'
  4. 删除表

    hbase:017:0> disable 'student1'
    hbase:018:0> drop 'student1'

 DML

  1. 写入数据

    hbase:019:0> put 'bigdata:student','1001','info:name','zhangsan'
    hbase:020:0> put 'bigdata:student','1001','info:name','lisi'
    hbase:021:0> put 'bigdata:student','1001','info:age','18'

    如果重复写入相同 rowKey,相同列的数据,会写入多个版本进行覆盖。

  2. 读取数据

    hbase:022:0> get 'bigdata:student','1001'
    hbase:023:0> get 'bigdata:student','1001' , {COLUMN => 'info:name'}

    修改读取 cell 的版本数,默认读取一个。最多能够读取当前列族设置的维护版本数。

    hbase:024:0>get 'bigdata:student','1001' , {COLUMN => 'info:name', VERSIONS => 6}

    scan 是扫描数据,能够读取多行数据,不建议扫描过多的数据,推荐使用 startRowstopRow 来控制读取的数据,默认范围左闭右开。

    hbase:025:0> scan 'bigdata:student',{STARTROW => '1001',STOPROW => '1002'}
  3. 删除数据

    hbase:026:0> delete 'bigdata:student','1001','info:name'

    deleteall 表示删除所有版本的数据,即为当前行当前列的多个 cell。(执行命令会标记数据为要删除,不会直接将数据彻底删除,删除数据只在特定时期清理磁盘时进行)

    hbase:027:0> deleteall 'bigdata:student','1001','info:name'

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/web/51634.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

苹果秋季发布会前瞻:iPhone 16领衔新品盛宴

苹果定档9月9日&#xff0c;揭开新品神秘面纱 苹果公司近日正式宣布&#xff0c;将于9月9日在加州库比蒂诺的Apple Park&#xff0c;史蒂夫乔布斯剧院举办年度秋季新品发布会&#xff0c;主题为“It’s Glowtime”&#xff0c;预示着Siri界面将迎来一场华丽变身。此次发布会较原…

米壳AI:发现一个可以保存国内外视频的宝藏网站!

&#x1f388;嘿&#xff0c;朋友们&#xff01;今天我要给大家分享一个超级棒的发现 —— 一个可以下载国内外视频的网站&#xff01;&#x1f389; 在这个信息爆炸的时代&#xff0c;我们总是渴望能够随时随地欣赏到精彩的视频内容。 无论是国内的热门影视剧、搞笑短视频&am…

Docmatix - 超大文档视觉问答数据集

本文&#xff0c;我们将发布Docmatix - 一个超大的文档视觉问答 (DocVQA) 数据集&#xff0c;比之前的数据集大 100 倍。当使用 Docmatix 微调 Florence-2 时&#xff0c;消融实验显示 DocVQA 任务的性能提高了 20%。 Docmatix - 一个超大的文档视觉问答 (DocVQA) 数据集https:…

虚幻5|按键触发学习

一&#xff0c;如图参考 1.下移 驱动阈值 越大按时间长才会触发&#xff0c;越小很快就可以触发 2.按下 当按下超出驱动阈值大小就会触发一次&#xff0c;这里的驱动阈值只能设置再0.1~1的大小 3.已松开 当按下的时候&#xff0c;先触发单次的started&#xff0c;如果按压…

C语言的发展历程:从诞生到现代编程的基石

C语言作为一种通用编程语言&#xff0c;在计算机科学的发展中占据了重要的地位。自20世纪70年代问世以来&#xff0c;C语言凭借其简洁、高效、灵活等特点&#xff0c;成为系统软件、操作系统、嵌入式系统及应用软件开发的重要工具。本文将带您回顾C语言的发展历程&#xff0c;从…

广播语义学许多PyTorch操作支持NumPy的广播语义。python编程 人工智能 神经网络

广播语义学 许多PyTorch操作支持NumPy的广播语义。看见https://numpy.org/doc/stable/user/basics.broadcasting.html详情请见。 简而言之&#xff0c;如果PyTorch操作支持广播&#xff0c;那么它的张量参数可以自动扩展为相同的大小(无需复制数据)。 普通语义学 如果下列规…

#QT 笔记一

重点&#xff1a;面试考试大概率涉及&#xff0c;需要不借助任何资料掌握。掌握&#xff1a;面试考试可能涉及&#xff0c;需要不借助任何资料掌握。熟悉&#xff1a;面试考试可能涉及&#xff0c;可以稍微参考资料掌握。了解&#xff1a;面试考试小概率涉及&#xff0c;面试拔…

本地缓存Caffeine框架的学习笔记

Caffeine是一个高性能的Java本地缓存框架&#xff0c;它采用了W-TinyLFU算法&#xff0c;结合了LRU和LFU算法的优点&#xff0c;实现了缓存高命中率和内存低消耗。Caffeine的设计理念是尽可能地高效&#xff0c;它通过一些巧妙的算法&#xff0c;确保最常访问的数据始终可用&am…

智能优化特征选择|基于鹦鹉优化(2024年新出优化算法)的特征选择(分类器选用的是KNN)研究Matlab程序 【优化算法可以替换成其他优化方法】

智能优化特征选择|基于鹦鹉优化&#xff08;2024年新出优化算法&#xff09;的特征选择&#xff08;分类器选用的是KNN&#xff09;研究Matlab程序 【优化算法可以替换成其他优化方法】 文章目录 一、PO基本原理PO基本原理基本流程示例应用 二、实验结果三、核心代码四、代码获…

某张卡NR only下可以驻网 AUTO模式下在2G/3G工作

结论:需要终端设置为data centric&#xff0c;或ps only。 从日志看&#xff0c;5G下的注册收到REGISTRATION ACCEPT。但是没有携带ims support。 正常网络&#xff1a; ims_Vops_3GPP 1 (0x1) nwk_feature_supp_inc 1 (0x1)nwk_feature_supportedlength 2 (0x2)mpsi 0 (0…

ubuntu c++ http服务端event使用

程序&#xff1a; #ifndef PLATFROMCOMMUNICATION_H #define PLATFROMCOMMUNICATION_H#include <iostream> #include <fstream> #include <unistd.h> #include <curl/curl.h>#include <net/if.h> #include <sys/ioctl.h> #include <ar…

【HarmonyOS NEXT开发】鸿蒙开发环境准备,ArkTS基础语法入门

文章目录 鸿蒙开发环境准备&#xff0c;ArkTS基础语法入门大纲简介DevEco Studio简介运行环境要求 安装与配置开发工具下载Harmony OS 和 OpenHarmony 的区别Previewer汉化插件的配置 ArkTS基础快速入门1. 解释说明2. 变量与常量3. 变量命名规则4. 数组5. 函数定义函数调用函数…

Win10 安装 Rabbitmq

参考文档&#xff1a;https://www.rabbitmq.com/docs/install-windows 一、安装 Erlang 语言 安装 RabbitMQ 需要该语言的支持才能安装 下载地址&#xff1a;https://erlang.org/download/otp_versions_tree.html 点击这里下载最新版本&#xff1a;27.0.1 直接默认 next 更…

2d像素游戏基本架构

目录 2D像素游戏的基本架构通常包括以下几个关键部分 Unity和虚幻引擎在2D游戏开发中的性能比较 Unity的2D工具设计复杂的地图和场景 创建和管理地图资源&#xff1a; 使用TileMap工具&#xff1a; 构建复杂场景&#xff1a; 添加碰撞体和物理效果&#xff1a; 优化和…

DNS工作流程

DNS&#xff08;域名系统&#xff09; DNS&#xff08;域名系统&#xff09;的工作流程是将人类可读的域名&#xff08;如 www.example.com&#xff09;转换为机器可读的IP地址&#xff08;如 192.0.2.1&#xff09;&#xff0c;以便计算机能够相互通信。DNS查询过程可以分为递…

企业微信自动回复机器人:提升客户服务与工作效率的智能新篇章

在快节奏的现代商业环境中&#xff0c;企业如何高效、准确地响应客户需求&#xff0c;成为了衡量其竞争力的重要指标之一。企业微信作为企业内部沟通与客户服务的重要平台&#xff0c;其自动回复机器人的出现&#xff0c;无疑为企业带来了革命性的变革。本文将深入探讨企业微信…

Android settings命令讲解和实战

1&#xff0c;简介 在Android系统中&#xff0c;settings命令用于管理设备设置。这些命令可以与Settings提供者&#xff08;Settings provider&#xff09;交互&#xff0c;后者是一个用于存储和检索系统设置的系统服务。Settings provider在Android系统中可以被看作是一个特殊…

接口测试用例设计:关键步骤与注意事项

接口测试是软件测试中至关重要的一部分,它主要验证不同系统或组件之间的数据交换是否准确无误。相比于UI测试,接口测试更早发现问题,因为它直接验证系统的核心逻辑和数据处理。本文将从接口测试用例设计的关键步骤和注意事项展开讨论,并通过具体案例帮助大家更好地理解如何…

携程:从MySQL迁移OceanBase的数据库发布系统实践

作者简介&#xff1a;杨晓军 现就职于携程的数据库团队&#xff0c;主要负责携程数据库的研发与管理&#xff0c;专注于提升数据库的稳定性。 自分布式关系型数据库OceanBase开源以来&#xff0c;携程已经在线上环境中进行了广泛的应用&#xff0c;取代了原先以MySQL为主力的业…

Mysql,sqllite表结构对比

本代码用C#实现&#xff0c;对比有差异的字段 &#xff0c;调用类方法Comare 即可获取结果。 public class CompareDataBaseHelper { string mysqlConnectionString "Server127.0.0.1;Databasetestdb;Uidroot;Pwd123456;charsetutf8;"; string sqliteCo…