Hadoop入门的一些基础

全家桶的介绍


hadoop 是一个分布式的计算开源框架,提供了一个分布式文件系统子项目(HDFS)和支持MapReduce分布式计算的软件架构

hive 是基于hadoop的一个数据仓库工具,可以将结构化的数据文件映射为一张数据库表,通过类sql语句快速实现简单的Map
Reduce统计,不必开发专门的MapReduce应用,十分适合数据仓库的统计分析;

pig是基于hadoop的大规模数据分析工具。他提供的sql-like语音叫piglatin。该语言的编译器会把类sql的数据分析请求转化为一系列经过优化处理的MapReduce运算

Hbase是一个高可靠性,高性能,面向列,可伸缩的分布式存储系统,利用Hbase技术可以在廉价的pc service上搭建起大规模结构化存储集群;是一个NoSql数据库,是一个Key-Value类型的数据库,是高可靠,面向列的,可伸缩的分布式的数据库,适合非结构化的数据存储,底层的数据存储在HDFS上

sqoop 是一个用来将hadoop和关系型数据库中的数据相互转移的工具,可以将一个关系型数据库中的数据导入到hadoop的hdfs中,也可以将hdfs中的数据导入到关系型数据库中;

zookeeper 是一个为分布式所设计的分布式的,开源的协调服务,他主要是用来解决分布式应用中坚持遇到的一些数据管理文件,简化分布式应用协调及其管理的难度,提供高性能的分布式服务;

Hive和Hbase的区别:


hive中的表示纯逻辑表,就只是表的定义等,即表的元数据。hive本身不存储数据,它完全依赖HDFS和MapReduce,这样就可以将结构化的数据文件映射为一张数据库表,并提供完整的sql查询功能,并将sql语言最终转化为MapReduce任务进行运行,
而Hbase表是物理表,是否存储非结构化的数据;

定义不一样

hive是数据仓库,通过hive可以使用Hql语言查询存放在HDFS上的数据,HQL是一种类sql语言,这种语言最终转化MapReduce虽然Hive提供sql查询功能,但是hive不能进行交互查询,因为它是基于MapReduce算法的。

Hbase Key/value,基础单元是cell,它允许在HDFS之上,和hive不一样,hbase的能够在他的数据库上实时运行,而不是运行Mapreduce任务;

原理不一样

hive帮助熟悉sql的人运行mapreduce任务,因为他是jdbc兼容的。运行hive查询会花费很长时间,因为它会默认遍历表中所有的数据,但可以通过hive的分区来控制,因为这样一来文件大小是固定的,就这么大一块存储空间,从固定空间里查数据是很快的。

hbase是通过key/value来工作的。注意版本的功能;

应用场景不一样

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

总结:

hive和hbase是两种基于hadoop的不同技术,hive是一种类sql的引擎,可以直接将文件转化成数据库,并且运行mapreduce任务,
hbase是一种在hadoop之上的NoSql的Key/value数据库,hive可以用来进行统计查询,hbase可以用来进行实时查询,数据也可以
从hive写到hbase,在从hbase写回hive。

















猜你喜欢

转载自blog.csdn.net/qq_33357751/article/details/80589332