首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往
您找到你想要的搜索结果了吗?
是的
没有找到

Hbase基础命令

我们可以以shell的方式来维护和管理HBase。例如:执行建表语句、执行增删改查操作等等。 4.1 需求 有以下订单数据,我们想要将这样的一些数据保存到HBase中。 订单ID 订单状态 支付金额 支付方式ID 用户ID 操作时间 商品分类 001 已付款 200.5 1 001 2020-5-2 18:08:53 手机; 接下来,我们将使用HBase shell来进行以下操作: 1.创建表 2.添加数据 3.更新数据 4.删除数据 5.查询数据 4.2 创建表 在HBase中,所有的数据也都是保存在表中的。要将订单数据保存到HBase中,首先需要将表创建出来。 4.2.1 启动HBase Shell HBase的shell其实JRuby的IRB(交互式的Ruby),但在其中添加了一些HBase的命令。 启动HBase shell: hbase shell 4.2.2 创建表

02

将数据文件(csv,Tsv)导入Hbase的三种方法

(1)使用HBase的API中的Put是最直接的方法,但是它并非都是最高效的方式(2)Bulk load是通过一个MapReduce Job来实现的,通过Job直接生成一个HBase的内部HFile格式文件来形成一个特殊的HBase数据表,然后直接将数据文件加载到运行的集群中。使用bulk load功能最简单的方式就是使用importtsv 工具。importtsv 是从TSV文件直接加载内容至HBase的一个内置工具。它通过运行一个MapReduce Job,将数据从TSV文件中直接写入HBase的表或者写入一个HBase的自有格式数据文件。(3)可以使用MapReduce向HBase导入数据,但海量的数据集会使得MapReduce Job也变得很繁重。推荐使用sqoop,它的底层实现是mapreduce,数据并行导入的,这样无须自己开发代码,过滤条件通过query参数可以实现。

01

【DB】HBase的基本概念

一 Hbase是个啥东东? 在说Hase是个啥家伙之前,首先我们来看看两个概念。面向行存储和面向列存储。面向行存储。我相信大伙儿应该都清楚,我们熟悉的RDBMS就是此种类型的。面向行存储的数据库主要适合于事务性要求严格场合,或者说面向行存储的存储系统适合OLTP。可是依据CAP理论,传统的RDBMS。为了实现强一致性,通过严格的ACID事务来进行同步,这就造成了系统的可用性和伸缩性方面大大折扣。而眼下的非常多NoSQL产品,包含Hbase,它们都是一种终于一致性的系统,它们为了高的可用性牺牲了一部分的一致性。好像。我上面说了面向列存储,那么究竟什么是面向列存储呢?Hbase,Casandra,Bigtable都属于面向列存储的分布式存储系统。 看到这里,假设您不明确Hbase是个啥东东,不要紧,我再总结一下下: Hbase是一个面向列存储的分布式存储系统。它的长处在于能够实现高性能的并发读写操作,同一时候Hbase还会对数据进行透明的切分,这样就使得存储本身具有了水平伸缩性。 二 Hbase数据模型 HBase,Cassandra的数据模型很类似。他们的思想都是来源于Google的Bigtable,因此这三者的数据模型很类似,唯一不同的就是Cassandra具有Super cloumn family的概念,而Hbase眼下我没发现。好了。废话少说。我们来看看Hbase的数据模型究竟是个啥东东。 在Hbase里面有以下两个基本的概念,Row key,Column Family。我们首先来看看Column family,Column family中文又名“列族”,Column family是在系统启动之前预先定义好的,每个Column Family都能够依据“限定符”有多个column.以下我们来举个样例就会很的清晰了。 假如系统中有一个User表。假设依照传统的RDBMS的话。User表中的列是固定的,比方schema 定义了name,age,sex等属性。User的属性是不能动态添加的。可是假设採用列存储系统。比方Hbase。那么我们能够定义User表,然后定义info 列族。User的数据能够分为:info:name = zhangsan,info:age=30,info:sex=male等。假设后来你又想添加另外的属性。这样非常方便仅仅须要info:newProperty就能够了。 或许前面的这个样例还不够清晰,我们再举个样例来解释一下。熟悉SNS的朋友,应该都知道有好友Feed,一般设计Feed,我们都是依照“某人在某时做了标题为某某的事情”,可是同一时候一般我们也会预留一下keyword,比方有时候feed或许须要url,feed须要image属性等,这样来说。feed本身的属性是不确定的。因此假设採用传统的关系数据库将很麻烦。况且关系数据库会造成一些为null的单元浪费,而列存储就不会出现这个问题。在Hbase里,假设每个column 单元没有值,那么是占用空间的。

02
领券