技术栈是什么( 二 )


hdfs具有高容错性的特点,设计用于低成本硬件 。而且它提供了访问应用数据的高吞吐量,适合大数据集的应用 。
hdfs放宽)posix的要求,并可以流式访问文件系统中的数据 。hadoop框架的核心设计是hdfs和mapreduce 。hdfs为海量数据提供存储,而mapreduce为海量数据提供计算
从java的角度来看,hadoop和springcloud有些类似 。它们不仅仅是一种特定的技术,而是一个生态圈 。hadoop包括hive、mapreduce、hdfs等 。所以不要把hadoop仅仅当作一种单一的技术 。
数据处理技术
mapreduce、spark、storm/flink都是用来处理数据的,比如数据清理、计算、统计等等 。
数据处理
mapreduce是一种大数据并行处理的计算模型、框架和平台,隐含以下三层含义:
mapreduce是一个基于集群的高性能并行计算平台(集群基础设施) 。它允许市场上常见的商用服务器形成一个具有数十、数百到数千个节点的分布式并行计算集群 。
mapreduce是一个用于并行计算和运行的软件框架 。它提供了一个庞大但设计良好的并行计算软件框架,可以自动完成计算任务的并行处理,自动划分计算数据和计算任务,在集群节点上自动分配和执行任务,收集计算结果,并将并行计算中涉及的数据分布式存储、数据通信、容错处理等许多系统底层的复杂细节移交给系统,大大减轻了软件开发人员的负担 。
mapreduce是一种并行编程模型方法 。借助函数式编程语言lisp的设计思想,提供了一种简单方便的并行编程方法 。它使用map和reduce函数对基本并行计算任务进行编程,并提供抽象操作和并行编程接口,从而简单方便地完成大规模数据编程和计算处理
【技术栈是什么】技术的概念一般比较严谨复杂 。这里mapreduce缩写为mr,主要功能是处理线下大数据 。它可以通过分析大量离线数据来计算我们需要的结果 。
火花
apachespark是一款专为大规模数据处理设计的快速通用计算引擎 。spark是一个类似hadoopmapreduce的通用并行框架,由加州大学伯克利分校amp实验室开放 。spark具有hadoopmapreduce的优势 。然而,与mapreduce不同,——job的中间输出结果可以保存在内存中,因此不再需要读写hdfs 。因此spark可以更好的应用到需要迭代的mapreduce算法中,比如数据挖掘、机器学习等 。
spark是一个类似hadoop的开源集群计算环境,但两者有一些区别 。这些有用的差异使spark在某些工作负载中表现更好 。换句话说,spark启用了内存分布式数据集,这不仅可以提供交互式查询,还可以优化迭代工作负载 。
从概念上可以看出,spark不仅仅是一种技术,而是类似于hadoop,有一个成熟的生态系统,比如sparksql和sparkstreaming,类似于hadoop中的hive和mr 。目前spark广泛用于处理海量数据,因为它既能实现离线数据分析,又能实现实时数据分析 。
storm/flink
apacheflink是apachesoftwarefoundation开发的开源流处理框架,其核心是用java和scala编写的分布式流数据流引擎 。flink以并行和流水线方式执行任意流数据程序,flink的流水线运行时系统可以执行批处理和流处理程序 。另外,flink的运行时本身也支持迭代算法的执行(storm的功能和上面类似,这里就不啰嗦了) 。
sparkstreaming是一个实时数据处理框架 。为什么需要storm/flink?因为实时和实时是有时间差的,看下图就能看出两者的区别 。

推荐阅读