分析挖掘(大数据):hive、impala、 Spark MLlib概述、原理

hive

Hive是一个构建于Hadoop顶层的数据仓库工具,支持大规模数据存储、分析,具有良好的可扩展性。某种程度上可以看作是用户编程接口,本身不存储和处理数据依赖分布式文件系统HDFS存储数据,依赖分布式并行计算模型MapReduce处理数据。

定义了简单的类似SQL 的查询语言——HiveQL,用户可以通过编写的HiveQL语句运行MapReduce任务,可以很容易把原来构建在关系数据库上的数据仓库应用程序移植到Hadoop平台上。(是一个可以提供有效、合理、直观组织和使用数据的分析工具

(1)Hive与传统数据库的区别

对比项目

Hive

传统数据库

数据插入

支持批量导入

支持单条

和批量导入

数据更新

不支持

支持

索引

支持

支持

分区

支持

支持

执行延迟

扩展性

有限

(2)Hive系统架构

用户接口模块、驱动模块、元数据存储模块。


用户接口模块包括CLIHWIJDBCODBCThrift Server

驱动模块(Driver包括编译器、优化器、执行器等,负责把HiveSQL语句转换成一系列MapReduce作业。

元数据存储模块(Metastore是一个独立的关系型数据库(自带derby数据库,或MySQL数据库)。是由Cloudera公司开发的新型查询系统,它提供SQL语义,能查询存储在HadoopHDFSHBase上的PB级大数据,在性能上比Hive高出3~30倍。

(自带derby数据库,或MySQL数据库)。是由Cloudera公司开发的新型查询系统,它提供SQL语义,能查询存储在HadoopHDFSHBase上的PB级大数据,在性能上比Hive高出3~30倍。

 Impala

Impala是Cloudera公司主导开发的新型查询系统,它提供SQL语义,能查询存储在Hadoop的HDFS和HBase中的PB级大数据,已有的Hive系统虽然也提供了SQL语义,但由于Hive底层执行使用的是MapReduce引擎,仍然是一个批处理过程,难以满足查询的交互性。相比之下,Impala的最大特点也是最大卖点就是它的快速。

Impala与hive对比:

相同点:1)Hive与Impala使用相同的存储数据池,都支持把数据存储于HDFS和HBase中。

2)Hive与Impala使用相同的元数据。

3)Hive与Impala中对SQL的解释处理比较相似,都是通过词法分析生成执行计划。

不同点:

1)Hive适合于长时间的批处理查询分析,而Impala适合于实时交互式SQL查询。

2)Hive依赖于MapReduce计算框架,Impala把执行计划表现为一棵完整的执行计划树,直接分发执行计划到各个Impalad执行查询。

3)Hive在执行过程中,如果内存放不下所有数据,则会使用外存,以保证查询能顺序执行完成,而Impala在遇到内存放不下数据时,不会利用外存,所以Impala目前处理查询时会受到一定的限制。

总结:

1)Impala的目的不在于替换现有的MapReduce工具

2)把Hive与Impala配合使用效果最佳

3)可以先使用Hive进行数据转换处理,之后再使用Impala在Hive处理后的结果数据集上进行快速的数据分

Spark Mlib


park Mlib是基于Spark的可扩展的机器学习库,由以下部分组成:通用学习算法和工具类,包括分类、回归、剧烈、协同过滤等。



没有更多推荐了,返回首页