大数据组件简介

  1. 离线计算组件

1.1 hive
hive是基于Hadoop的一个数据仓库工具,可以将结构化的数据文件映射为一张数据库表,并提供简单的sql查询功能,可以将sql语句转换为MapReduce任务进行运行。 其优点是学习成本低,可以通过类SQL语句快速实现简单的MapReduce统计,不必开发专门的MapReduce应用,十分适合数据仓库的统计分析。但是在转换为MapReduce的计算过程中,计算速度比较慢,适合于非实时性的要求的计算。
1.2 impala
impala是Cloudera公司开发的一套大数据计算引擎,它在功能作用上类似hive,但是impala的内部计算模式并没有采用Hive+MapReduce批处理模式,而是通过使用与商用并行关系数据库中类似的分布式查询引擎,impala是基于内存计算,对内存的要求相比于hive+MapReduce模式会更高些。在对大数据量查询时,impala会比hive更能及时的响应返回结果。 据说Impala在性能上比Hive高出3~30倍。
所以Hive适合于长时间的批处理查询分析,而Impala适合于实时交互式SQL查询,Impala给数据分析人员提供了快速实验、验证想法的大数据分析工具。
1.3 spark SQL
sparkSQL 是spark处理结构化数据的库,它是一种新的计算引擎,它在功能作用上类似hive和impala。spark扩充了的MapReduce计算模型,MapReduce通常将中间结果放到磁盘上,所以与磁盘交互比较多,性能上相对于差些,而Spark是基于内存并行大数据框架,中间结果通常存放在内存,相比于MapReduce来说,迭代数据计算的Spark效率会更高些。
据说在计算性能上比hive高出10~100倍。
2. 流式计算组件

2.1 Strom
Storm是一个流式计算处理框架,拥有低延迟、高性能、分布式、可扩展、容错等特性,可以保证消息不丢失,消息处理严格有序。通俗讲,storm是处理消息源,来一条消息数据,处理一条数据,实现实时响应计算结果,支持亚秒级响应,正真意义上流计算实时响应。
2.2 Spark streaming
Spark Streaming类似于 Storm,也是一个流式计算处理框架,用于流式数据的处理。有高吞吐量和容错能力强这两个特点。通俗讲,Spark Streaming是实时处理小批量数据,
Spark Streaming接收消息源的一条消息,不像Strom一样及时处理了,而是当消息数据积累达到一定量的时候再一并处理消息数据,实现秒级响应。
如果对实时性要求非常高的,例如需要亚秒级响应结果的场景 ,建议的使用Strom,而
如果对于实时性不是非常严格,例如能在秒级内能响应结果的场景,可以使用Spark streaming。

你可能感兴趣的:(大数据,大数据,hadoop)