Spark项目落地实战以及日常大数据开发注意事项

Spark简介
Spark项目落地实战以及日常大数据开发注意事项_第1张图片
基于内存的分布式集群计算平台
可适配 Python、Java、Scala、SQL
拓展功能:机器学习、流式计算、图计算

Spark特点
Spark项目落地实战以及日常大数据开发注意事项_第2张图片
高效

  • 内存计算引擎
  • DAG图
  • 比MapReduce快10~100倍

易用

  • 提供丰富的API,支持Java,Scala, Python
  • 代码量小

与Hadoop集成

  • 读写HDFS、Hbase、Hive
  • 和Yarn集成

与Oracle存过的对比
Spark项目落地实战以及日常大数据开发注意事项_第3张图片

  • 数据仓库
  • 机器学习
  • 海量数据离线分析
  • 实时数据流处理

基本概念
Spark项目落地实战以及日常大数据开发注意事项_第4张图片

  • 集群资源管理器(Cluster Manager)
  • 运行作业任务的工作节点(Worker Node)
  • 每个应用的任务控制节点(Driver)
  • 每个工作节点上负责具体任务的执行进程 (Executor)
  • 资源管理器Mesos或YARN

任务执行流程
Spark项目落地实战以及日常大数据开发注意事项_第5张图片

  1. 首先为应用构建起基本的运行环境,即由 Driver创建一个SparkContext,进行资源 的申请、任务的分配和监控
  2. 资源管理器为Executor分配资源,并启动 Executor进程
  3. SparkContext根据RDD的依赖关系构建 DAG图,DAG图提交给DAGScheduler解 析成Stage,然后把一个个TaskSet提交给 底层调度器TaskScheduler处理; Executor向SparkContext申请Task,Task Scheduler将Task发放给Executor运行, 并提供应用程序代码
  4. Task在Executor上运行,把执行结果反馈 给TaskScheduler,然后反馈给 DAGScheduler,运行完毕后写入数据并 释放所有资源。

数据处理过程
Spark项目落地实战以及日常大数据开发注意事项_第6张图片

  1. 读入外部数据源
  2. 转换算子进行数据处理
  3. 动作算子进行处理流程触发
  4. 处理完成输出结果

常用算子-转换
Spark项目落地实战以及日常大数据开发注意事项_第7张图片
解决方案:
Oracle方言,即自定义一种数据库解释语言,实际上的实现 为数据的类型转换。OracleDateTypeInit.oracleInit()

你可能感兴趣的:(spark,oracle,大数据处理,开发经验,java)