Spark 的介绍与搭建:从理论到实践

目录

一、分布式的思想

(一)存储

(二)计算

二、Spark 简介

(一)发展历程

(二)Spark 能做什么?

(三)spark 的组成部分

(四)各大计算引擎的对比

(五)spark 的应用

(六)spark 运行的五种模式【重点】

(七)Spark 分布式计算的步骤

(八)spark 比 MR 快的原因

三、Spark 单机模式以及测试

(一)安装步骤

(二)安装python:

(三)测试使用

启动该工具

案例一:map 算子实现分布式转换

案例二:WordCount 需求及分析

案例三:求 PI

四、结语


        在大数据领域,Spark 是一款极为重要的计算引擎。本文将详细介绍 Spark 的相关知识,包括其分布式思想、自身简介、各组成部分、与其他计算引擎的对比、应用场景、运行模式、计算步骤以及它比 MapReduce 快的原因,并会涉及到 Spark 的单机模式安装和一些简单测试案例。

一、分布式的思想

(一)存储

        在大数据存储中,没有一台能容纳所有数据的超级计算机。以存储 3T 文件为例,会将其拆分成多个小文件,比如每 500M 一个小文件,然后将这些小文件存储在不同的机器上,HDFS 就是这样的分布式存储系统,阿里巴巴的 FastDFS 也有类似功能。

(二)计算

  1. :对于大型计算任务,将其拆分成多个小任务,每台机器处理一个小任务,实现并行处理。
  2. :最后将各个小任务的结果合并,生成最终结果返回。像 MapReduce(Hive)就是这种分布式计算模式。需要注意的是,Spark 主要用于计算,不能解决存储问题。如果掌握了 Spark,之前的一些计算引擎可以被替代,Spark 可用于离线计算和准实时计算(目前实时计算更常用 Flink)。计算引擎有很多种,如 mapreduce (hive SQL)、impala、presto、spark、flink 等,而且存储通常还是依靠 HDFS。
  3. 发展历程:第一代计算引擎 MapReduce 用廉价机器实现分布式大数据处理;第二代计算引擎 Tez 基于 MR 优化了 DAG,性能更好;第三代计算引擎 Spark 是优先使用内存式计算引擎,在国内是主要应用的离线计算引擎;第四代计算引擎 Flink 是实时流式计算引擎,是国内目前最主流的实时计算引擎,计算引擎就如同汽车的发动机或计算机中的 CPU。

二、Spark 简介

(一)发展历程

        Spark 诞生于 2009 年,是伯克利大学 AMPLab 的研究性项目。2014 年 2 月成为 Apache 顶级项目,同年 5 月发布 1.0 正式版本,2018 年发布的 2.4.0 版本使其成为全球最大的开源项目之一,目前我们学习的是 3.x 版本。可以在 DataBricks 官网(https://databricks.com/spark/about)和 apache 分配的网站(https://spark.apache.org/)获取更多信息。Spark 的诞生是因为 MR 计算引擎速度慢,MR 计算基于磁盘,而 Spark 计算基于内存,他是一个基于内存式计算的分布式的统一化的数据分析引擎。

(二)Spark 能做什么?

  1. 离线数据批处理:类似 MapReduce、Pandas,通过写代码处理离线数据。
  2. 交互式即时数据查询:类似 Hive、Presto、Impala,使用 SQL 进行即席查询分析,这属于 SQL 类的离线数据处理。
  3. 实时数据处理:类似 Storm、Flink,可实现分布式实时计算,包括代码类实时计算和 SQL 类实时计算。
  4. 机器学习开发:能代替传统的一些机器学习工具。

(三)spark 的组成部分

  1. Spark Core:是 Spark 最核心的模块,可以基于多种语言(Python、SQL、Scala、Java、R,Spark 源码是用 Scala 语言开发的)实现代码类的离线开发,类似 MR。
  2. Spark SQL:类似 Hive,基于 SQL 进行开发,SQL 语句会转换为 SparkCore 离线程序。
  3. Spark Streaming:基于 SparkCore 构建的准实时计算模块(目前已逐渐被淘汰)。
  4. Struct Streaming:基于 SparkSQL 构建的结构化实时计算模块,替代了 Spark Streaming。
  5. Spark ML lib:机器学习算法库,提供各种机器学习算法工具,可基于 SparkCore 或 SparkSQL 开发。

(四)各大计算引擎的对比

  1. Impala:集成 Hive 实现数据分析,性能最好,但数据接口少,只支持 Hive 和 Hbase 数据源。它是基于
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

天冬忘忧

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值