失效链接处理 |
大数据技术之Spark基础解析 PDF 下载
本站整理下载:
提取码:h38x
相关截图:
主要内容:
第 1 章 Spark 概述 1.1什么是 Spark Spark 是一种快速、通用、可扩展的大数据分析引擎,2009 年诞生于加州大学伯克利分校 AMPLab,2010 年开源,2013 年 6 月成为 Apache 孵化项目,2014 年 2 月成为 Apache 顶级 项目。项目是用 Scala 进行编写。 1.2Spark 内置模块 Spark Core:实现了 Spark 的基本功能,包含任务调度、内存管理、错误恢复、与存储 系统交互等模块。Spark Core 中还包含了对弹性分布式数据集(Resilient Distributed DataSet, 简称 RDD)的 API 定义。 Spark SQL:是Spark用来操作结构化数据的程序包。通过Spark SQL,我们可以使用 SQL 或者 Apache Hive 版本的 SQL 方言(HQL)来查询数据。Spark SQL 支持多种数据源,比如 Hive 表、Parquet 以及 JSON 等。 Spark Streaming:是 Spark 提供的对实时数据进行流式计算的组件。提供了用来操作数 据流的 API,并且与 Spark Core 中的 RDD API 高度对应。 Spark MLlib:提供常见的机器学习(ML)功能的程序库。包括分类、回归、聚类、协同 过滤等,还提供了模型评估、数据 导入等额外的支持功能。
集群管理器:Spark 设计为可以高效地在一个计算节点到数千个计算节点之间伸缩计 算。为了实现这样的要求,同时获得最大灵活性,Spark 支持在各种集群管理器(Cluster Manager)上运行,包括 Hadoop YARN、Apache Mesos,以及 Spark 自带的一个简易调度 器, 叫作独立调度器。 Spark 得到了众多大数据公司的支持,这些公司包括 Hortonworks、IBM、Intel、Cloudera、 MapR、Pivotal、百度、阿里、腾讯、京东、携程、优酷土豆。当前百度的 Spark 已应用于 大搜索、直达号、百度大数据等业务;阿里利用 GraphX 构建了大规模的图计算和图挖掘系 统,实现了很多生产系统的推荐算法;腾讯 Spark 集群达到 8000 台的规模,是当前已知的 世界上最大的 Spark 集群。 1.3 Spark 特点 快与 Hadoop 的 MapReduce 相比,Spark 基于内存的运算要快 100 倍以上,基于硬 盘的运算也要快 10 倍以上。Spark 实现了高效的 DAG 执行引擎,可以通过基于 内存来高效处理数据流。计算的中间结果是存在于内存中的。 易用Spark 支持 Java、Python 和 Scala 的 API,还支持超过 80 种高级算法,使用户可 以快速构建不同的应用。而且 Spark 支持交互式的 Python 和 Scala 的 shell,可以 非常方便地在这些 shell 中使用 Spark 集群来验证解决问题的方法。 通用Spark 提供了统一的解决方案。Spark 可以用于批处理、交互式查询(Spark SQL)、 实时流处理(Spark Streaming)、机器学习(Spark MLlib)和图计算(GraphX)。 这些不同类型的处理都可以在同一个应用中无缝使用。Spark 统一的解决方案非 常具有吸引力,毕竟任何公司都想用统一的平台去处理遇到的问题,减少开发和 维护的人力成本和部署平台的物力成本。 兼容性
Spark 可以非常方便地与其他的开源产品进行融合。比如,Spark 可以使用 Hadoop 的 YARN 和 Apache Mesos 作为它的资源管理和调度器,器,并且可以处理所有 Hadoop 支持的数据,包括 HDFS、HBase 和 Cassandra 等。这对于已经部署 Hadoop 集群的用户特别重要,因为不需要做任何数据迁移就可以使用 Spark 的强大处理 能力。Spark 也可以不依赖于第三方的资源管理和调度器,它实现了 Standalone 作为其内置的资源管理和调度框架,这样进一步降低了 Spark 的使用门槛,使得 所有人都可以非常容易地部署和使用 Spark。此外,Spark 还提供了在 EC2 上部 署 Standalone 的 Spark 集群的工具。 第 2 章 Spark 运行模式 2.1 Spark 安装地址 1.官网地址 http://spark.apache.org/ 2.文档查看地址 https://spark.apache.org/docs/2.1.1/ 3.下载地址 https://spark.apache.org/downloads.html 2.3 Local 模式 2.3.1 概述 Local 模式就是运行在一台计算机上的模式,通常就是用于在本机上练手和测 试。它可以通过以下集中方式设置 Master Local:所有计算都运行在一个线程当中,没有任何并行计算,通常我们在本机执 一些测试代码,或者练手,就用这种模式 Local[K]指定使用几个线程来运行计算,比如 local[4]就是运行 4 个 Worker 线程。通常我们的 Cpu 有几个 Core,就指定几个线程,最大化利用 Cpu 的计算 能力Loca[*]这种模式直接帮你按照 Cpu 最多 Cores 来设置线程数了。 2.3.2 安装使用 1)上传并解压 spark 安装包 [itstar@bigdata111 sorfware]$ tar -zxvf spark-2.1.1-bin-hadoop2.7.tgz -C /opt/module/ [itstar@bigdata111 module]$ mv spark-2.1.1-bin-hadoop2.7 spark
2)官方求 PI 案例 [itstar@bigdata111 spark]$ bin/spark-submit \ --class org.apache.spark.examples.SparkPi \ --executor-memory 1G \ --total-executor-cores 2 \ ./examples/jars/spark-examples_2.11-2.1.1.jar \ 100 (1)基本语法 bin/spark-submit \ --class <main-class> --master <master-url> \ --deploy-mode <deploy-mode> \ --conf <key>=<value> \ ... # other options <application-jar> \ [application-arguments] (2)参数说明: --master 指定 Master 的地址,默认为 Local --class: 你的应用的启动类 (如 org.apache.spark.examples.SparkPi) --deploy-mode: 是否发布你的驱动到 worker 节点(cluster) 或者作为一个本地客户端 (client) (default: client)* --conf: 任意的 Spark 配置属性, 格式 key=value. 如果值包含空格,可以加引号 “key=value” application-jar: 打包好的应用 jar,包含依赖. 这个 URL 在集群中全局可见。比如 hdfs:// 共享存储系统, 如果是 file:// path, 那么所有的节点的 path 都包含同样的 jar application-arguments: 传给 main()方法的参数 --executor-memory 1G 指定每个 executor 可用内存为 1G --total-executor-cores 2 指定每个 executor 使用的 cup 核数为 2 个 3)结果展示 该算法是利用蒙特·卡罗算法求 PI
|