HBase-与Hive的区别、与Sqoop的集成

1HBase 与 Hive 的对比

Hive:

1)、数据仓库

Hive 的本质其实就相当于将 HDFS 中已经存储的文件在 Mysql 中做了一个双射关系,以方 便使用 HQL 去管理查询。

2)、用于数据分析、清洗

Hive 适用于离线的数据分析和清洗,延迟较高。

3)、基于 HDFS、MapReduce

Hive 存储的数据依旧在 DataNode 上,编写的 HQL 语句终将是转换为 MapReduce 代码执行。

HBase:

1)、数据库

是一种面向列存储的非关系型数据库。

2)、用于存储结构化和非结构话的数据

适用于单表非关系型数据的存储,不适合做关联查询,类似 JOIN 等操作。

3)、基于 HDFS

数据持久化存储的体现形式是 Hfile,存放于 DataNode 中,被 ResionServer 以 region 的形式 进行管理。

4)、延迟较低,接入在线业务使用

面对大量的企业数据,HBase 可以直线单表大量数据的存储,同时提供了高效的数据访问速 度。

2、与 Sqoop 的集成

之前我们已经学习过如何使用 Sqoop 在 Hadoop 集群和关系型数据库中进行数据的导入导出 工作,接下来我们学习一下利用 Sqoop 在 HBase 和 RDBMS 中进行数据的转储。

2.1、案例一:

目标:将 RDBMS 中的数据抽取到 HBase 中。

步骤:

(1) 配置 sqoop-env.sh,添加如下内容:

(2) 在 Mysql 中新建一个数据库 db_library,一张表 book

(3) 向表中插入一些数据

(4) 执行 Sqoop 导入数据的操作

注:sqoop1.4.6 只支持 HBase1.0.1 之前的版本的自动创建 HBase 表的功能 解决方案:手动创建 HBase 表:

(5) 在 HBase 中 scan 这张表得到如下内容

猜你喜欢

转载自blog.csdn.net/liberty12345678/article/details/86237251