精华内容
下载资源
问答
  • HBase基本命令

    2021-04-08 13:44:56
    文章目录一、创建表二、插入数据三、更改数据四、查询数据五、删除...原来的数据并不是被覆盖,而时还存在,HBase是按照最新的时间戳来读取数据 四、查询数据 1、查看表 list:查看所有表 desc '表名':查看表结构 scan

    在这里插入图片描述

    一、创建表

    create '表名',{NAME=>'列簇名'},{NAME=>'列簇名'}...
    

    二、插入数据

    put '表名','行键名','列簇名:列名','值'
    

    三、更改数据

    和插入一样,还是put,相同rowkey,会根据最近的时间戳对应的数据有效
    原来的数据并不是被覆盖,其实还存在,只不过在闲时偷偷删除(时间比较慢),如果想保留原来的,请使用 VERSIONS

    四、查询数据

    1、查看表

    list:查看所有表
    desc '表名':查看表结构
    scan '表名':查看表中所有数据
    

    2、查看表中指定内容

    get '表名','行键'
    get '表名','行键','列簇'
    get '表名','行键','列簇:列名'...
    

    【Tips:当我们put同一个行键同一个列簇同一个列时,就value不同时,HBase会默认读最新时间戳的数据,导致原来的数据不会被显示,那么我们想看之前的数据怎么办?】

    答:利用VERSIONS

    • 简单方式
    • 复杂方式

    1.简单方式
    在这里插入图片描述

    scan '表名',{RAW=>true,VERSIONS=>10}
    

    2.复杂方式

    修改版本号

    alter '表名',NAME=>'列簇名',VERSIONS=>'3'
    

    官方指定修改版本方式
    在这里插入图片描述

    然后插入数据
    利用版本号查看
    get ‘表名’,‘行键’,{COLUMN=>‘列簇名’,VERSIONS=>3}

    3、查看指定范围行键
    【左闭右开】

    scan '表名',{STARTROW=>'rk1',STOPROW=>'rk4'}
    

    五、删除数据

    1、删除数据

    delete '表名','行键','列簇'
    deleteall '表名','行键','列簇'
    

    2、删除表
    要删除表得先disable

    disable '表名'
    drop '表名'
    truncate '表名':清空数据
    

    真正删除数据

    • Flush

    Flush只会删除当前memStore中重复的数据(timestamp最新的会被删除)
    StoreFile重复的并不会被删除
    被标记为DeleteColumn的不会被删除

    • Compact

    Major Compact也会进行删数据(当文件数>=3时,compact调用的也是major compact)
    major compact 会将全部重复的数据进行删除,包括Storefile中的
    major compact会将被标记为DeleteColumn的删除

    展开全文
  • 文章目录Hbase基本命令基本命令实际代码展示Hive 与 HBase的对比总结两者分别是什么?两者的特点限制应用场景总结 Hbase基本命令 基本命令 命令 说明 hbase shell 进入客户端 list 列出Hbase中存在的所有...

    Hbase基本命令

    基本命令

    命令说明
    hbase shell进入客户端
    list列出Hbase中存在的所有表
    alter修改列簇(column family)模式
    count统计表中行的数量
    create创建表
    describe显示表相关的详细信息
    delete删除指定对象的值(可以为表,行、列对应的值,另外也可以指定时间戳的值)
    deleteall删除指定行的所有元素值
    disable使表无效
    drop删除表
    enable使表有效
    exists测试表是否存在
    exit退出Hbaseshell
    get获取行或单元(cell)的值
    incr增加指定表,行或列的值
    put向指向的表单元添加值
    tools列出Hbase所支持的工具
    scan通过对表的扫描来获取对用的值
    status返回Hbase集群的状态信息
    shutdown关闭Hbase集群(与exit不同)

    实际代码展示

    [root@hadoop222 ~]# hbase shell                           --进入客户端   
    2021-04-08 13:43:19,117 INFO  [main] Configuration.deprecation: hadoop.native.lib is deprecated. Instead, use io.native.lib.available
    SLF4J: Class path contains multiple SLF4J bindings.
    SLF4J: Found binding in [jar:file:/root/software/hbase/lib/slf4j-log4j12-1.7.5.jar!/org/slf4j/impl/StaticLoggerBinder.class]
    SLF4J: Found binding in [jar:file:/root/software/hadoop/share/hadoop/common/lib/slf4j-log4j12-1.7.5.jar!/org/slf4j/impl/StaticLoggerBinder.class]
    SLF4J: See http://www.slf4j.org/codes.html#multiple_bindings for an explanation.
    SLF4J: Actual binding is of type [org.slf4j.impl.Log4jLoggerFactory]
    HBase Shell; enter 'help<RETURN>' for list of supported commands.
    Type "exit<RETURN>" to leave the HBase Shell
    Version 1.2.0-cdh5.14.2, rUnknown, Tue Mar 27 13:31:54 PDT 2018
    
    hbase(main):001:0> list                                 --展示所有表格
    TABLE
    0 row(s) in 0.1180 seconds
    
    => []
    hbase(main):002:0> create 'student',{NAME => 'address'},{NAME => 'name'}        --创建表格
    0 row(s) in 2.2790 seconds
    
    => Hbase::Table - student
    hbase(main):003:0> list
    TABLE
    student
    1 row(s) in 0.0060 seconds
    
    => ["student"]
    hbase(main):004:0> put 'student','row1','address:city','nanjing'                 --插入数据
    0 row(s) in 0.0800 seconds
    
    hbase(main):005:0> put 'student','row1','address:street','xiaohangroad'             --插入数据
    0 row(s) in 0.0040 seconds
    
    hbase(main):006:0> put 'student','row1','address:country','china'                  --插入数据
    0 row(s) in 0.0040 seconds
    
    hbase(main):007:0> put 'student','row1','name:first_name','steven'                 --插入数据
    0 row(s) in 0.0040 seconds
    
    hbase(main):008:0> put 'student','row1','name:last_name','raul'                     --插入数据 
    0 row(s) in 0.0030 seconds
    
    hbase(main):010:0> get 'student','row1'                                            --查询表格内的数据
    COLUMN                CELL
     address:city         timestamp=1617860977904, value=nanjing
     address:country      timestamp=1617861021034, value=china
     address:street       timestamp=1617861000277, value=xiaohangroad
     name:first_name      timestamp=1617861066965, value=steven
     name:last_name       timestamp=1617861080079, value=raul
    5 row(s) in 0.0060 seconds
    
    hbase(main):011:0> put 'student','row1','name:last_name','raullll'                      --再次插入数据
    0 row(s) in 0.0040 seconds
    
    hbase(main):012:0> get 'student','row1'                     --再次展示数据可以发现,只显示最新时间戳的值
    COLUMN                CELL 
     address:city         timestamp=1617860977904, value=nanjing
     address:country      timestamp=1617861021034, value=china
     address:street       timestamp=1617861000277, value=xiaohangroad
     name:first_name      timestamp=1617861066965, value=steven
     name:last_name       timestamp=1617861215389, value=raullll
    5 row(s) in 0.0080 seconds
    
    hbase(main):013:0>
    
    

    Hive 与 HBase的对比总结

    两者分别是什么?

    Apache Hive是一个构建在Hadoop基础设施之上的数据仓库。通过Hive可以使用HQL语言查询存放在HDFS上的数据。HQL是一种类SQL语言,这种语言最终被转化为Map/Reduce. 虽然Hive提供了SQL查询功能,但是Hive不能够进行交互查询–因为它只能够在Haoop上批量的执行Hadoop。
    Apache HBase是一种Key/Value系统,它运行在HDFS之上。和Hive不一样,Hbase的能够在它的数据库上实时运行,而不是运行MapReduce任务。Hive被分区为表格,表格又被进一步分割为列簇。列簇必须使用schema定义,列簇将某一类型列集合起来(列不要求schema定义)。例如,“message”列簇可能包含:“to”, ”from” “date”, “subject”, 和”body”. 每一个 key/value对在Hbase中被定义为一个cell,每一个key由row-key,列簇、列和时间戳。在Hbase中,行是key/value映射的集合,这个映射通过row-key来唯一标识。Hbase利用Hadoop的基础设施,可以利用通用的设备进行水平的扩展。

    两者的特点

    Hive帮助熟悉SQL的人运行MapReduce任务。因为它是JDBC兼容的,同时,它也能够和现存的SQL工具整合在一起。运行Hive查询会花费很长时间,因为它会默认遍历表中所有的数据。虽然有这样的缺点,一次遍历的数据量可以通过Hive的分区机制来控制。分区允许在数据集上运行过滤查询,这些数据集存储在不同的文件夹内,查询的时候只遍历指定文件夹(分区)中的数据。这种机制可以用来,例如,只处理在某一个时间范围内的文件,只要这些文件名中包括了时间格式。
    HBase通过存储key/value来工作。它支持四种主要的操作:增加或者更新行,查看一个范围内的cell,获取指定的行,删除指定的行、列或者是列的版本。版本信息用来获取历史数据(每一行的历史数据可以被删除,然后通过Hbase compactions就可以释放出空间)。虽然HBase包括表格,但是schema仅仅被表格和列簇所要求,列不需要schema。Hbase的表格包括增加/计数功能。

    限制

    Hive目前不支持更新操作。另外,由于hive在hadoop上运行批量操作,它需要花费很长的时间,通常是几分钟到几个小时才可以获取到查询的结果。Hive必须提供预先定义好的schema将文件和目录映射到列,并且Hive与ACID不兼容。
    HBase查询是通过特定的语言来编写的,这种语言需要重新学习。类SQL的功能可以通过Apache Phonenix实现,但这是以必须提供schema为代价的。另外,Hbase也并不是兼容所有的ACID特性,虽然它支持某些特性。最后但不是最重要的–为了运行Hbase,Zookeeper是必须的,zookeeper是一个用来进行分布式协调的服务,这些服务包括配置服务,维护元信息和命名空间服务。

    应用场景

    Hive适合用来对一段时间内的数据进行分析查询,例如,用来计算趋势或者网站的日志。Hive不应该用来进行实时的查询。因为它需要很长时间才可以返回结果。
    Hbase非常适合用来进行大数据的实时查询。Facebook用Hbase进行消息和实时的分析。它也可以用来统计Facebook的连接数。

    总结

    Hive和Hbase是两种基于Hadoop的不同技术–Hive是一种类SQL的引擎,并且运行MapReduce任务,Hbase是一种在Hadoop之上的NoSQL 的Key/vale数据库。当然,这两种工具是可以同时使用的。就像用Google来搜索,用FaceBook进行社交一样,Hive可以用来进行统计查询,HBase可以用来进行实时查询,数据也可以从Hive写到Hbase,设置再从Hbase写回Hive。

    展开全文
  • Phoenix是HBase的一层包装,通过这层包装,我们可以像使用MySQL一样特别方便的操作HBase。此外,Phoenix还可以很方便的创建二级索引。 连接HBase sqlline.py hadoop01,hadoop02,hadoop03:2181    &...

    为什么使用Phoenix?

        Phoenix是HBase的一层包装,通过这层包装,我们可以像使用MySQL一样特别方便的操作HBase。此外,Phoenix还可以很方便的创建二级索引。

    连接HBase

    sqlline.py hadoop01,hadoop02,hadoop03:2181
        注意:主机名是zookeeper所在的节点。

    显示所有表

    !tables!table
    

        注意:此命令最后没有分号

    建表

    CREATE TABLE STUDENT(id integer PRIMARY KEY,name VARCHAR);
    CREATE TABLE "grade"(id integer PRIMARY KEY,class VARCHAR);
    

        注意:

    • 必须指定主键,主键是HBase表中的rowkey。
    • 如果表名是小写,那么必须用双引号。

    UPSERT INTO STUDENT VALUES(1001,'Tom');
    UPSERT INTO "grade" VALUES(1,'grade1');
    

        注意:插入数据要用upsert。

    删除数据

    DELETE FROM STUDENT WHERE name='Jerry';
    

    删除表

    DROP TABLE STUDENT;
    

    UPSERT INTO STUDENT VALUES(1001,'JoJo');
    

        注意: 要修改的rowkey要存在,否则就是插入数据。

    SELECT * FROM STUDENT;
    

    映射

        默认情况下,在HBase中创建的表,在Phoenix中是看不到的。如果想在Phoenix中操作HBase的表,我们就需要创建表的映射,映射方式有两种,视图映射和表映射。

    视图映射

        视图映射不能操作表数据,只能进行查询。

    -- 先在HBase创建测试表
    create 'TEST','info'
    put 'TEST','1001','info:name','zhangsan'
    put 'TEST','1001','info:age','21'
    
    -- 在Phoenix创建视图
    CREATE VIEW TEST(
    id VARCHAR PRIMARY KEY,
    "info"."name" VARCHAR,
    "info"."age" VARCHAR);
    
    -- 查询信息
    SELECT * FROM TEST;
    

    表映射

    • 如果HBase中表不存在,直接在Phoenix中创建表即可自动创建映射。
    • 如果HBase中表存在,像创建视图映射那样创建表映射,把view改为table即可。
    CREATE TABLE TEST(
    id VARCHAR PRIMARY KEY,
    "info"."name" VARCHAR,
    "info"."age" VARCHAR) column_encoded_bytes=0;
    

        注意: 表映射一定要加上column_encoded_bytes=0。

    二级索引

    全局二级索引

        默认的索引格式,全局索引会在HBase创建新的索引表,索引表和数据表是分开存储的。适用于读多写少的场景

    -- 创建单个字段的全局索引
    CREATE INDEX stu_name_index ON STUDENT(name);
    -- 创建携带其他字段的全局索引
    CREATE INDEX stu_name_index ON STUDENT(name) INCLUDE(address);
    

    本地二级索引

        本地索引索引和数据是在同一张表中存储。相对于全局索引来说,查询更慢,但是插入数据更快。

    -- 创建本地索引
    CREATE LOCAL INDEX stu_name_index ON STUDENT(name);
    
    展开全文
  • 安装Hbase1.官网下载安装包,我下载的是hbase-2.4.0-bin.tar.gz。2.解压:tar zxf hbase-2.4.0-bin.tar.gz3.安装JDK,并设置JAVA_HOME,通过vi ~/.bash_profile,设置环境变量export JAVA_HOME=/Library/Java/...

    安装Hbase

    1.官网下载安装包,我下载的是hbase-2.4.0-bin.tar.gz。

    2.解压:tar zxf hbase-2.4.0-bin.tar.gz

    3.安装JDK,并设置JAVA_HOME,通过vi ~/.bash_profile,设置环境变量

    export JAVA_HOME=/Library/Java/JavaVirtualMachines/jdk1.8.0_191.jdk/Contents/Home

    生效:source ~/.bash_profile

    4.启动

    $ cd hbase-2.4.0/bin/

    $ ./start-hbase.sh

    running master, logging to /Users/me/省略/hbase-2.4.0/logs/hbase-me-master-ZBMA-1e761f.out

    5.shell使用

    $ ./hbase shell

    使用Hbase

    1.创建表和列族

    hbase:001:0> create 'users','info'

    Created table users

    Took 1.0662 seconds

    Users为表,info为表中的一个列族

    2.插入数据

    格式:Put 表名 主键 列族:字段 值

    hbase:003:0> put 'users', '1', 'info:name', 'libai'

    Took 0.1420 seconds

    hbase:005:0> put 'users', '1', 'info:sex', 'man'

    Took 0.0038 seconds

    2.查找数据

    hbase:006:0> scan 'users'

    ROW COLUMN+CELL

    1 column=info:name, timestamp=2021-01-13T17:00:23.234, value=libai

    1 column=info:sex, timestamp=2021-01-13T17:00:36.703, value=man

    1 row(s)

    Took 0.0308 seconds

    3.单条查找

    hbase:011:0> get 'users', '1'

    COLUMN CELL

    info:name timestamp=2021-01-13T17:00:23.234, value=libai

    info:sex timestamp=2021-01-13T17:00:36.703, value=man

    1 row(s)

    4.插入指定版本

    查看版本数量:describe 'users'

    变更版本:alter 'users',{NAME=>'info',VERSIONS=>3}

    查看多版本数据:get 'users', '1',{COLUMN=>'info:name',VERSIONS=>2}

    在一些特殊场景可以插入数据的时候指定版本,比如异构数据的时候接收乱序的带版本的消息,通过指定版本,可以查询最新版本数据。

    rowKey在实际使用中需要重点设计,此示例只是写了'1'。

    展开全文
  • 简介有关HBase的安装可以参考hbase安装我们可以通过hbase shell和hbase数据库进行交互,也可以通过Java-api和hbase数据库交互,这里我们使用的是hbase-client。主要是介绍2.0重大重构之后的api的基本使用。 命名空间...
  • HBase建表的基本命令

    2021-09-15 10:55:57
    1.启动HBase外壳环境(shell):hbase shell 2.新建一张表“test” 要新建一个表,必须对你的表命名,并定义模式。一个表的模式包含表的属性和一个列族的列表。列族本身也有属性。可以在定义模式时一次定义它们。列...
  • 一、hbase shell基本操作命令名称命令表达式创建表create '表名称','列簇名称1','列簇名称2'.......添加记录put '表名称', '行名称','列簇名称:','值'查看记录get '表名称','行名称'查看表中的记录总数count '表名称...
  • Hbase基础命令

    2021-03-15 09:25:27
    HBase的shell其实JRuby的IRB(交互式的Ruby),但在其中添加了一些HBase命令。 启动HBase shell: hbase shell 4.2.2 创建表 语法: create '表名','列蔟名'... 创建订单表,表名为ORDER_INFO,该表有一个列蔟为...
  • Hbase Shell命令操作

    2021-10-10 16:04:18
    一、基本操作 1.进入HBase客户端命令行 [atguigu@hadoop102 hbase]$ bin/hbase shell 2.查看帮助命令 hbase(main):001:0> help 二、namespace的操作(DDL) 1.查看当前Hbase中有哪些namespace hbase(main):...
  • Hbase shell命令大全与表结构详解案例展示

    千次阅读 多人点赞 2021-09-17 10:59:48
    Apache HBase Shell 是(J)Ruby的 IRB,其中添加了一些 HBase 特定命令。您可以在 IRB 中执行的任何操作,您都应该可以在 HBase Shell 中执行。 0. 首先创建hbase集群的操作用户 hbase_test 1.首先root用户在本地...
  • 访问hbase,以及操作hbase命令不用使用分号hbaseshell进入hbaselist查看表hbaseshell-dhbase(main):024:0>scan'.META.'=============小例子===================================================1.创建一个表...
  • 1、HBase Shell操作 1、通用命令 //展示regionserver的task列表 hbase(main):000:0>processlist //展示集群的状态 hbase(main):000:0>status //table命令的帮助手册 hbase(main):000:0>table_help //显示...
  • HBase Shell 提供了大多数的 HBase 命令,通过 HBase Shell,用户可以方便地创建、删除及修改表,还可以向表中添加数据,列出表中的相关信息等。本节介绍一些常用的命令和具体操作,并讲解如何使用命令行实现一个...
  • hbase shell基本命令

    2021-09-15 11:27:23
    1.进入hbase shell console $HBASE_HOME/bin/hbase shell 1)查看当前用户 hbase(main)> whoami 2.表的管理 1)查看有哪些表 hbase(main)> list 2)创建表 语法:create , {NAME => , VERSIONS => } 例如...
  • 1.基本概念 hbase: 是一个高可靠性、高性能、面向列、可伸缩的分布式存储系统。一个构建在HDFS上的分布式列存储,key/value系统。 数据类型单一: Hbase中的数据都是字符串,没有类型。 RowKey: 是表中每条记录的...
  • HBase的shell基本命令

    2021-03-22 15:52:05
    本章主要学习HBase的shell基本命令操作 1. 启动HBase shell hbase shell 2. 查看帮助命令 help 命令 如:help ‘create_namespace’ DDL:数据库命令 Group name: namespace Commands: alter_namespace, ...
  • HBase 常用Shell命令

    2020-12-21 03:10:55
    两个月前使用过hbase,现在最基本命令都淡忘了,留一个备查~hbase shell命令描述alter修改列族(column family)模式count统计表中行的数量create创建表describe显示表相关的详细信息delete删除指定对象的值(可以为...
  • 访问hbase,以及操作hbase命令不用使用分号hbaseshell进入hbaselist查看表hbaseshell-dhbase(main):024:0>scan'.META.'=============小例子===================================================1.创建一个表...
  • HBase Shell基本常用操作命令

    千次阅读 2021-11-14 16:08:43
    锦囊命令 help 'namespace' 1. 创建 create_namespace 'liu_data' 2. 删除 删除数据库时 , 库中不可以存在表 , 否则报错Only empty namespaces can be removed. Namespace liu_data has 1 tables -- 先下线...
  • Hbase基本语句用法

    2021-04-14 11:28:43
    Hbase基本语句用法 使用hbase shell命令进入hbase: [root@abcdefghijklmnopqrstuvwxyzabcdefghijkl123456789012~]# hbase shell SLF4J: Class path contains multiple SLF4Jbindings. SLF4J: Found binding in[jar:...
  • 1.基本命令 启动 HBase:./start-hbase.sh 查看 HBase 是否启动:jps(注:docker 容器内没有该命令) 进入 HBase 的客户端:./hbase shell 2.命名空间 1)创建命名空间 create_namespace '命名空间' 2)...
  • HBase Shell常用命令基本操作 前言 基本操作 1. 进入HBase命令操作行 2. HBase帮助命令: 3. 查询服务器状态 4. 查询版本号 5. 查看元数据分区信息 6. 查看hbase中的表,hbase很重要 DDL 操作 1. 创建一个命名空间...
  • Hbase_HBase基本介绍

    2021-02-23 13:16:22
    简介2.HBase与Hadoop的关系3.RDBMS与HBase的对比4.HBase特征简要 1.简介 1、hbase是bigtable的开源java版本。是建立在hdfs之上,提供高可靠性、高性能、列存储、可伸缩、实时读写nosql的数据库系统。 它介于nosql...
  • HBase Shell 基本操作

    2021-03-07 23:02:28
    Tips:Hbase shell是基于Ruby实现的,所以shell使用过程可以将HBase命令和Ruby代码混合使用。这就比较高级了,本文只是简单的shell操作,不加入Ruby代码混合使用,感兴趣的小伙伴可以自己去了解学习!!!1.HBase...
  • 与关系型数据库不同,在hbase中,基本组成为表,不存在多个数据库。因此,在hbase中存储数据要先创建表,创建表的同时需要设置列族的数量和属性。 命令 描述 create 创建指定模式的新表 alter 修改表的...
  • HBase 命令行工具

    2020-12-23 13:35:11
    HBase Shell 提供的命令可以对对 HBase 数据进行增删改查。在上一篇 HBase 介绍 中对 HBase 做了简答的介绍,也初识了一些命令行。根据官方的解释 Apache HBase Shell 是 (J)Ruby 下的 IRB(Interactive...
  • Hbase scan 查询例子数据https://java-er.com/blog/hbase-scan-all-command/stu 学生列族 base 存储学生姓名,身高基本信息列族 score 存储成绩c1_s1 c1 班级 s1 学生编号create 'stu','base','score'put 'stu','c1_...
  • HBase基本架构

    2021-01-12 12:08:14
    本节按字母顺序 (A-M) 列出了 Kerberos 命令、Kerberos 守护进程、PAM 框架、GSS 接口、NFS 服务和 Kerberos 库的常见错误消息。 备注:下面这些错误有部分是通用的错误,所以解决方法并不一定适用所有场景,具体的...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 26,982
精华内容 10,792
关键字:

hbase基本命令