spark保存数据到hbase_Spark2.1.0入门:读写HBase数据

【版权声明】博客内容由厦门大学数据库实验室拥有版权,未经允许,请勿转载!

[返回Spark教程首页]

Spark处理的数据有很多是存放在HBase数据库中的,所以,我们需要学会如何读写HBase数据库。HBase是针对谷歌BigTable的开源实现,是一个高可靠、高性能、面向列、可伸缩的分布式数据库,主要用来存储非结构化和半结构化的松散数据。HBase可以支持超大规模数据存储,它可以通过水平扩展的方式,利用廉价计算机集群处理由超过10亿行数据和数百万列元素组成的数据表。如果要了解HBase的技术原理和使用方法,可以参考厦门大学数据库实验室的在线课程《HBase数据库》。

准备工作一:创建一个HBase表

这里依然是以student表为例进行演示。这里假设你已经成功安装了HBase数据库,如果你还没有安装,可以参考厦门大学数据库实验室HBase安装和使用教程,进行安装,安装好以后,不要创建数据库和表,只要跟着本节后面的内容操作即可。HBase安装时有三种模式:单机模式、伪分布式模式和分布式模式。本教程采用伪分布式安装。

安装好了伪分布式模式的HBase以后,我们可以在里面创建一个student表。

请登录Linux系统,打开一个终端(可以使用快捷方式Ctrl+Alt+T组合键打开终端),因为HBase是伪分布式模式,需要调用HDFS,所以,请首先在终端中输入下面命令启动Hadoop:

cd /usr/local/hadoop

./sbin/start-all.sh

启动完成以后,一定要输入jps命令查看是否启动成功:

jps

运行jps命令以后,应该可以看到以下几个进程:

2375 SecondaryNameNode

2169 DataNode

2667 NodeManager

2972 Jps

2045 NameNode

2541 ResourceManager

如果少了其中一个进程,说明启动失败。

下面就可以启动HBase,命令如下:

cd /usr/local/hbase

./bin/start-hbase.sh //启动HBase

./bin/hbase shell //启动hbase shell

这样就可以进入hbase shell命令提示符状态。下面我们在HBase数据库中创建student表(注意:在关系型数据库MySQL中,需要首先创建数据库,然后再创建表,但是,在HBase数据库中,不需要创建数据库,只要直接创建表就可以):

hbase> list

用list命令可以显示当前HBase数据库中有哪些已经创建好的表,如果里面已经有一个名称为student的表,请使用如下命令删除(如果不存在student表,就不用执行下面的删除命令了):

hbase> disable 'student'

hbase> drop 'student'

下面让我们一起来创建一个student表,我们要在这个表中录入如下数据:

+------+----------+--------+------+

| id | name | gender | age |

+------+----------+--------+------+

| 1 | Xueqian | F | 23 |

| 2 | Weiliang | M | 24 |

+------+----------+--------+------+

我们可以在hbase shell中使用下面命令创建:

hbase> create 'student','info'

你可以发现,我们在创建student表的create命令中,命令后面首先跟上表名称’student’,然后,再跟上列族名称’info’,这个列族’info’中包含三个列’name’,’gender’,’age’。你会发现,好像没有’id’字段,这是因为HBase的表中会有一个系统默认的属性作为行键,无需自行创建,默认把put命令操作中跟在表名后的第一个字段作为行健。

创建完“student”表后,可通过describe命令查看“student”表的基本信息:

hbase> describe 'student'

下面,我们要把student表的两个样例记录输入到student表中。但是,HBase是列族数据库,原理和关系数据库不同,操作方法也不同。如果

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值