文档章节

Sqoop和Hive、HBase简介

Slimane
 Slimane
发布于 2017/04/05 10:52
字数 871
阅读 57
收藏 0

Sqoop和Hive、HBase简介

Sqoop

Sqoop是一个用来将Hadoop和关系型数据库中的数据相互转移的开源工具,可以将一个关系型数据库(例如 : MySQL ,Oracle ,Postgres等)中的数据导进到Hadoop的HDFS中,也可以将HDFS的数据导进到关系型数据库中。

Hive

不想用程序语言开发MapReduce的朋友比如DB们,熟悉SQL的朋友可以使用Hive开离线的进行数据处理与分析工作。
Hive是基于Hadoop的一个数据仓库工具,可以将结构化的数据文件映射为一张数据库表,并提供简单的sql查询功能,可以将sql语句转换为MapReduce任务进行运行。
注意Hive现在适合在离线下进行数据的操作,就是说不适合在挂在真实的生产环境中进行实时的在线查询或操作,因为一个字“慢”。
Hive起源于FaceBook,在Hadoop中扮演数据仓库的角色。建立在Hadoop集群的最顶层,对存储在Hadoop群上的数据提供类SQL的接口进行操作。你可以用 HiveQL进行select、join,等等操作。
如果你有数据仓库的需求并且你擅长写SQL并且不想写MapReduce jobs就可以用Hive代替。

Hive的内置数据类型可以分为两大类:(1)、基础数据类型;(2)、复杂数据类型。其中,基础数据类型包括: TINYINT、SMALLINT、INT、BIGINT、BOOLEAN、FLOAT、DOUBLE、STRING、BINARY、TIMESTAMP、DECIMAL、CHAR、VARCHAR、DATE。
下面的表格列出这些基础类型所占的字节以及从什么版本开始支持这些类型。

|数据类型 | 所占字节 | 开始支持版本| | :-------- | --------:| :--: | | TINYINT | 1byte: -128 ~ 127 | | | SMALLINT | 2byte:-32,768 ~ 32,767 | | | INT | 4byte:-2,147,483,648 ~ 2,147,483,647 | | | BIGINT | 8byte:-9,223,372,036,854,775,808 ~ 9,223,372,036,854,775,807 | | | BOOLEAN | | | | FLOAT | 4byte单精度 | | | DOUBLE | 8byte双精度 | | | STRING | | | | BINARY | | 从Hive0.8.0开始支持 | TIMESTAMP | | 从Hive0.8.0开始支持 | DECIMAL | | 从Hive0.11.0开始支持 | CHAR | | 从Hive0.13.0开始支持 | VARCHAR | | 从Hive0.12.0开始支持 | DATE | | 从Hive0.12.0开始支持 注意

  • 复杂类型包括ARRAY、MAP、STRUCT、UNION,这些复杂类型是由基础类型组成的
  • 经过检测,发现Hive表结构中的数据类型与MySQL对应列有如下关系:

    MySQL(bigint) --> Hive(bigint)
    MySQL(tinyint) --> Hive(tinyint)
    MySQL(int) --> Hive(int)
    MySQL(double) --> Hive(double)
    MySQL(bit) --> Hive(boolean)
    MySQL(varchar) --> Hive(string)
    MySQL(decimal) --> Hive(double)
    MySQL(date/timestamp) --> Hive(string)

HBase

HBase作为面向列的数据库运行在HDFS之上,HDFS缺乏随即读写操作,HBase正是为此而出现。HBase以Google BigTable为蓝本,以键值对的形式存储。项目的目标就是快速在主机内数十亿行数据中定位所需的数据并访问它。
HBase是一个数据库,一个NoSql的数据库,像其他数据库一样提供随即读写功能,Hadoop不能满足实时需要,HBase正可以满足。如果你需要实时访问一些数据,就把它存入HBase。

你可以用Hive作为静态数据仓库,HBase作为数据存储,放那些进行一些会改变的数据。在Hive中,普通表是存储在HDFS中,而你可以通过创建EXTERNAL TABLE外表来指定数据存储位置,可以是系统目录,也可以是ElasticSearch,还可以是HBase。
在使用Sqoop从Mysql导出数据入Hadoop时,就需要考虑是直接入Hive(此时是普通表),还是导入数据到HBase,Sqoop同时支持导入这两种导入。

© 著作权归作者所有

Slimane
粉丝 1
博文 14
码字总数 10945
作品 0
深圳
程序员
私信 提问
sqoop导入数据到Base并同步hive与impala

使用Sqoop从MySQL导入数据到Hive和HBase 及近期感悟 基础环境 Sqool和Hive、HBase简介 测试Sqoop 使用Sqoop从MySQL导入数据到Hive 使用Sqoop从MySQL导入数据到HBase 关于Sqoop2 综上所述 其他...

hblt-j
2018/07/20
193
0
Sqoop1和Sqoop2简介

主要来源: http://www.linuxidc.com/Linux/2014-10/108337.htm 1.什么是Sqoop Sqoop即 SQL to Hadoop ,是一款方便的在传统型数据库与Hadoop之间进行数据迁移的工具,充分利用MapReduce并行特...

强子大叔的码田
2015/12/23
1K
0
sqoop 完成与关系型数据库的互导

一.安装SQOOP后可使用如下命令列出mysql数据库中的所有数据库,与检验是否安装成功。 # sqoop list-databases --connect jdbc:mysql://localhost:3306/ --username root --password 123456 ...

gulf
2018/06/26
58
0
学习Hadoop资料分享

最近一直在学习Hadoop,没办法,工作需要,最近在网上收集资料时,看到了一个课程,叫Cloudera Hadoop 4系列实战课程(电商业日志流量分析项目),把课程内容的大概给大家看一下,有40课时,看...

adiykk
2013/06/19
947
5
Hive使用中遇到的几个小问题

在Hive中使用show tables;等命令报错:com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException: Specified key was too long; max key length is 767 bytes 解决办法: 到mysql中的hiv......

古城痴人
2014/07/18
2.2K
1

没有更多内容

加载失败,请刷新页面

加载更多

EDI 电子数据交换全解指南

EDI(Electronic Data Interchange,电子数据交换)技术使得企业与企业(B2B)实现通信自动化,帮助交易伙伴和组织更快更好地完成更多工作,并消除了人工操作带来的错误。从零售商到制造商、物...

EDI知行软件
59分钟前
3
0
CentOS7的LVM动态扩容

# 问题 CentOS7上面的磁盘空间有点紧张,需要扩容。 解决 查询当前磁盘状态 [root@xxx ~]# lsblkNAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINTfd0 2:0 1 4K ...

亚林瓜子
今天
3
0
Kafka 0.8 Producer (0.9以前版本适用)

Kafka旧版本producer由scala编写,0.9以后已经废除 示例代码如下: import kafka.producer.KeyedMessage;import kafka.javaapi.producer.Producer;import kafka.producer.ProducerConfig;......

实时计算
今天
4
0
Giraph源码分析(八)—— 统计每个SuperStep中参与计算的顶点数目

作者|白松 目的:科研中,需要分析在每次迭代过程中参与计算的顶点数目,来进一步优化系统。比如,在SSSP的compute()方法最后一行,都会把当前顶点voteToHalt,即变为InActive状态。所以每次...

数澜科技
今天
6
0
Navicat 快捷键

操作 结果 ctrl+q 打开查询窗口 ctrl+/ 注释sql语句 ctrl+shift +/ 解除注释 ctrl+r 运行查询窗口的sql语句 ctrl+shift+r 只运行选中的sql语句 F6 打开一个mysql命令行窗口 ctrl+l 删除一行 ...

低至一折起
今天
13
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部