当前位置 : 主页 > 编程语言 > java >

2-spark学习路线-应用常景和解决

来源:互联网 收集:自由互联 发布时间:2023-09-14
在实际应用中,大数据处理主要包括以下三个类型: 1.复杂的批量数据处理: 通常时间跨度在数十分钟到数小时之间 2.基于历史数据的交互式查询: 通常时间跨度在数十秒到数分钟之间

在实际应用中,大数据处理主要包括以下三个类型:

1.复杂的批量数据处理:

   通常时间跨度在数十分钟到数小时之间

2.基于历史数据的交互式查询:

   通常时间跨度在数十秒到数分钟之间

3.基于实时数据流的数据处理:

   通常时间跨度在数百毫秒到数秒之间

当同时存在以上三种场景时,就需要同时部署三种不同的软件比如:

MapReduce:离线批处理

Impala:交互式查询处理

Storm:实时流处理

这样做难免会带来一些问题:

不同场景之间输入输出数据无法做到无缝共享,通常需要进行数据格式的转换

不同的软件需要不同的开发和维护团队,带来了较高的使用成本

比较难以对同一个集群中的各个系统进行统一的资源协调和分配

Spark:既能够提供内存计算框架,也可以支持SQL即席查询、实时流式计算、机器学习和图计算等

Spark可以部署在资源管理器YARN之上,提供一站式的大数据解决方案

Spark所提供的生态系统足以应对上述三种场景,即同时支持批处理、交互式查询和流数据处理

生态系统组件

Spark的生态系统主要包含了Spark Core、Spark SQL、Spark Streaming、MLLib和GraphX 等组件。

应用场景

应用场景

时间跨度

其他框架

Spark生态系统组件

复杂的批量数据处理

小时级

MapReduce

Hive Spark

基于历史数据的交互式查询

分钟级、秒级

Impala、Dremel、Drill

Spark SQL

基于实时数据流的数据处理

毫秒、秒级

Storm、S4

Spark Streaming

基于历史数据的数据挖掘

-

Mahout

MLlib

图结构数据的处理

-

Pregel、Hama

GraphX

Spark执行任务流程图

1、Spark运行架构包括:Master(集群资源管理)、Slaves(运行任务的工作节点)、应用程序的控制节点(Driver)和每个工作节点上负责任务的执行进程(Executor);

2、Master是集群资源的管理者(Cluster Manager)。支持:Standalone,Yarn,Mesos;

3、Slaves在spark中被称为Worker,工作节点,包括Executor。;

4、Driver Program。该进程运行应用的 main() 方法并且创建了SparkContext。由Cluster Manager分配资源,SparkContext将发送Task到Executor上执行。

5、每个工作节点上负责任务的执行进程(Executor);

Executor包括cache、分配到Executor上的task任务(task1、task2…tasksN)

上一篇:1-spark学习路线-spark 概述
下一篇:没有了
网友评论