热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

Spark入门指南!超完整学习资源!

1.Spark概念Spark是UCBerkeleyAMPlab开发的一个集群计算的框架,类似于Hadoop,但有很多的区别(详细见3.4)。最大的优化是让计算任务的中间结果可以存储

1. Spark 概念

Spark是UC Berkeley AMP lab开发的一个集群计算的框架,类似于Hadoop,但有很多的区别(详细见3.4)。最大的优化是让计算任务的中间结果可以存储在内存中,不需要每次都写入HDFS,更适用于需要迭代的MapReduce算法场景中,可以获得更好的性能提升。例如一次排序测试中,对100TB数据进行排序,Spark比Hadoop快三倍,并且只需要十分之一的机器。Spark集群目前最大的可以达到8000节点,处理的数据达到PB级别,在互联网企业中应用非常广泛。

2. Spark大数据处理框架

相较于国内外较多的大数据处理框架,Spark以其低延时的出色表现,正在成为继Hadoop的MapReduce之后,新的、最具影响的大数据框架之一。以Spark为核心的整个生态圈,最底层为分布式存储系统HDFS、Amazon S3、Mesos,或者其他格式的存储系统(如HBase);资源管理采用Mesos、YARN等集群资源管理模式,或者Spark自带的独立运行模式,以及本地运行模式。在Spark大数据处理框架中,Spark为上层多种应用提供服务。例如,Spark SQL提供SQL查询服务,性能比Hive快3~50倍;MLlib提供机器学习服务;GraphX提供图计算服务;Spark Streaming将流式计算分解成一系列短小的批处理计算,并且提供高可靠和吞吐量服务。值得说明的是,无论是Spark SQL、Spark Streaming、GraphX还是MLlib,都可以使用Spark核心API处理问题,它们的方法几乎是通用的,处理的数据也可以共享,不仅减少了学习成本,而且其数据无缝集成大大提高了灵活性。

《Spark入门指南!超完整学习资源!》

后续我们会就几个主要应用,包括SQL,Streaming,机器学习,DataFrame, SparkR, GraphX进行详细教程讲解。基本掌握以上几部分的使用,就能体会到使用Spark的便利。

3. Spark的安装

3.1 安装前准备

安装Spark之前需要先安装Java,Scala及Python。

安装Java

实验楼环境中已经安装了JDK,这里打开桌面上的Xfce终端,执行查看Java版本:

《Spark入门指南!超完整学习资源!》 image

可以看到实验楼的Java版本是1.8.0_60,满足Spark 1.5.1对Java版本的要求。

如果需要自己安装可以在Oracle的官网下载Java SE JDK,下载链接:http://www.oracle.com/technetwork/java/javase/downloads/index.html。

安装Scala

老版本的Spark安装前需要先装Scala,1.5.1版本可以无需这一步骤。但为了自己开发Scala程序调试的方便我们仍然安装一个最新版本2.11.7的Scala。

Scala官网下载地址:http://www.scala-lang.org/download/

《Spark入门指南!超完整学习资源!》 image

由于官网速度很慢,我们预先上传到了实验楼内网,下载并解压到/opt/目录:

wget http://labfile.oss.aliyuncs.com/courses/456/scala-2.11.7.tgz
tar zxvf scala-2.11.7.tgz
sudo mv scala-2.11.7 /opt/

测试scala命令,并查看版本:

《Spark入门指南!超完整学习资源!》 image

安装Python及IPython

安装执行命令:

sudo apt-get update
sudo apt-get install python ipython

实验楼中已经安装了Python及IPython,分别查看版本:

《Spark入门指南!超完整学习资源!》 image

3.2 Spark下载

课程中使用目前最新稳定版:Spark 1.5.1,官网上下载已经预编译好的Spark binary,直接解压即可。

Spark官方下载链接:http://spark.apache.org/downloads.html

下载页面中我们如下图选择Pre-build for Hadoop 2.6 and later并点击下载:

《Spark入门指南!超完整学习资源!》 image

为了节约时间,我们选择从阿里云的镜像下载:

wget http://mirrors.aliyuncs.com/apache/spark/spark-1.5.1/spark-1.5.1-bin-hadoop2.6.tgz

大约268M大小,下载完成后解压并拷贝到/opt/目录:

tar zxvf spark-1.5.1-bin-hadoop2.6.tgz
sudo mv spark-1.5.1-bin-hadoop2.6 /opt/

进入到spark目录查看目录结构,本节实验中会用到bin/目录下的操作命令以及conf/目录下的配置文件。

3.3 配置路径与日志级别

为了避免每次都输入/opt/spark-1.5.1-bin-hadoop2.6这一串前缀,我们将必要的路径放到PATH环境变量中(实验楼用的是zsh,所以配置文件为~/.zshrc):

# 添加配置到zshrc
echo "export PATH=$PATH:/opt/spark-1.5.1-bin-hadoop2.6/bin" >> ~/.zshrc
# 使zshrc起作用
source ~/.zshrc
# 测试下spark-shell的位置是否可以找到
which spark-shell

我们进入到spark的配置目录/opt/spark-1.5.1-bin-hadoop2.6/conf进行配置:

# 进入配置目录
cd /opt/spark-1.5.1-bin-hadoop2.6/conf
# 基于模板创建日志配置文件
cp log4j.properties.template log4j.properties
# 使用vim或gedit编辑文件log4j.properties
# 修改log4j.rootCategory为WARN, console,可避免测试中输出太多信息
log4j.rootCategory=WARN, console
# 基于模板创建配置文件
sudo cp spark-env.sh.template spark-env.sh
# 使用vim或gedit编辑文件spark-env.sh
# 添加以下内容设置spark的环境变量
export SPARK_HOME=/opt/spark-1.5.1-bin-hadoop2.6
export SCALA_HOME=/opt/scala-2.11.7

spark-env.sh配置如图:

《Spark入门指南!超完整学习资源!》 image

spark-env.sh脚本会在启动spark时加载,内容包含很多配置选项及说明,在以后的实验中会用到少部分,感兴趣可以仔细阅读这个文件的注释内容。

至此,Spark就已经安装好了,Spark安装很简单,依赖也很少。

4. Spark应用学习

下面是小编为大家汇总的Spark生态系统中使用频率最高的几个应用教程。每个教程中提供尽可能丰富的步骤说明和截图,详细的理论知识会附上相关文章链接。点击【教程名称】即可进入每一部分的学习。

【Spark 基础之 Streaming 快速上手】

《Spark入门指南!超完整学习资源!》

Spark Streaming 是 Spark 引擎的一种扩展,适用于实时处理流式数据。本课程将带你学习 Spark Streaming 的工作机制,了解 Streaming 应用的基本结构,以及如何在 Streaming 应用中附加 SQL 查询。

【Spark 基础之 SQL 快速上手】

《Spark入门指南!超完整学习资源!》

学习 Spark SQL 的基础概念,了解如何利用 SQL Context 及相关的 API 进行统计分析。最后还将通过一个分析股票价格与石油价格关系的实例,进一步学习如何利用 Spark SQL 分析数据。

【Spark 基础之使用机器学习库 MLlib】

《Spark入门指南!超完整学习资源!》

学习 Spark 的机器学习库—— MLlib 的相关知识,了解 MLlib 与 ML 之间的区别和联系,掌握 MLlib 中的几个基本数据类型。

【Spark基础之 DataFrame 基本概念学习 】

《Spark入门指南!超完整学习资源!》

针对飞行准点率数据集,通过一些简单的分析任务来学习 DataFrame 的由来、构建方式以及一些常用操作。在本课程中,你可以了解到 Spark 生态体系中,核心的 RDD 与 DataFrame 之间的区别和联系。同时,你还可以学习到在 Spark 中加载数据集的方式、如何配置和使用第三方库等等。

【Spark 基础之 SparkR 快速上手 】

《Spark入门指南!超完整学习资源!》

讲解到如何在 SparkR 中创建和操作 DataFrame、如何运行 SQL 查询,以及如何利用机器学习相关的 API。通过一些简单的实例来学习如何在 SparkR 中进行时间序列分析。

【Spark 基础之 GraphX 图计算框架学习】

《Spark入门指南!超完整学习资源!》

学习GraphX 框架的基本使用技巧、属性图的定义和操作符的种类,以及PageRank 、连通分量和三角形计数这三个经典的图计算算法。

5.Spark实战练习

从Spark的安装开始,已经带你逐步完成Spark技术入门。再通过一系列实践项目的动手操作,让你全面的学习到Spark相关技术。以下精选的10个实战项目能够帮你全面的复习之前的知识~ Just do it!学以致用!

1、【Kmeans聚类算法评估足球比赛】
2、【使用决策树算法预测森林植被】
3、【Spark 机器学习之电影推荐系统】
4、【使用 Spark 进行流量日志分析】
5、【Spark 实现黑名单实时过滤 】
6、【使用 Spark 和 D3.js 分析航班大数据】
7、【Spark的模式挖掘—FPGrowth算法】
8、【流式实时日志分析系统——《Spark 最佳实践》】
9、【Spark流式计算电商商品关注度】
10、【大数据带你挖掘打车的秘籍】

《Spark入门指南!超完整学习资源!》

5.最后的话

随着企业数据量的增长,对大数据的处理和分析已经成为企业的迫切需求。Spark作为Hadoop的替代者,引起学术界和工业界的普遍兴趣,大量应用在工业界落地,许多科研院校开始了对Spark的研究。当一门技术开始普遍应用于并真正做到优化了生产流程时,就是它商业价值实现的时刻。

真正的学习才敢刚开始,你还有很长都路可以去探索(ง •_•)ง

希望本文能对需要的朋友有所帮助

更多趣味实验可以直接访问实验楼,在线实验环境操作方便,为大家定期更新最佳实验!(●’◡’●)

《Spark入门指南!超完整学习资源!》

课程咨询,欢迎添加班主任微信:

《Spark入门指南!超完整学习资源!》

来啊,来shiyanlou.com学IT呀,反正有大把时间~


推荐阅读
  • 从0到1搭建大数据平台
    从0到1搭建大数据平台 ... [详细]
  • 一、Hadoop来历Hadoop的思想来源于Google在做搜索引擎的时候出现一个很大的问题就是这么多网页我如何才能以最快的速度来搜索到,由于这个问题Google发明 ... [详细]
  • HBase在金融大数据迁移中的应用与挑战
    随着最后一台设备的下线,标志着超过10PB的HBase数据迁移项目顺利完成。目前,新的集群已在新机房稳定运行超过两个月,监控数据显示,新集群的查询响应时间显著降低,系统稳定性大幅提升。此外,数据消费的波动也变得更加平滑,整体性能得到了显著优化。 ... [详细]
  • hive和mysql的区别是什么[mysql教程]
    hive和mysql的区别有:1、查询语言不同,hive是hql语言,MySQL是sql语句;2、数据存储位置不同,hive把数据存储在hdfs上,MySQL把数据存储在自己的系统 ... [详细]
  • hadoop3.1.2 first programdefault wordcount (Mac)
    hadoop3.1.2安装完成后的第一个实操示例程 ... [详细]
  • 2021年Java开发实战:当前时间戳转换方法详解与实用网址推荐
    在当前的就业市场中,金九银十过后,金三银四也即将到来。本文将分享一些实用的面试技巧和题目,特别是针对正在寻找新工作机会的Java开发者。作者在准备字节跳动的面试过程中积累了丰富的经验,并成功获得了Offer。文中详细介绍了如何将当前时间戳进行转换的方法,并推荐了一些实用的在线资源,帮助读者更好地应对技术面试。 ... [详细]
  • 【漫画解析】数据已删,存储空间为何未减?揭秘背后真相
    在数据迁移过程中,即使删除了原有数据,存储空间却未必会相应减少。本文通过漫画形式解析了这一现象背后的真相。具体来说,使用 `mysqldump` 命令进行数据导出时,该工具作为 MySQL 的逻辑备份工具,通过连接数据库并查询所需数据,将其转换为 SQL 语句。然而,这种操作并不会立即释放存储空间,因为数据库系统可能保留了已删除数据的碎片信息。文章进一步探讨了如何优化存储管理,以确保数据删除后能够有效回收存储空间。 ... [详细]
  • Hadoop 2.6 主要由 HDFS 和 YARN 两大部分组成,其中 YARN 包含了运行在 ResourceManager 的 JVM 中的组件以及在 NodeManager 中运行的部分。本文深入探讨了 Hadoop 2.6 日志文件的解析方法,并详细介绍了 MapReduce 日志管理的最佳实践,旨在帮助用户更好地理解和优化日志处理流程,提高系统运维效率。 ... [详细]
  • 技术日志:深入探讨Spark Streaming与Spark SQL的融合应用
    技术日志:深入探讨Spark Streaming与Spark SQL的融合应用 ... [详细]
  • sh cca175problem03evolveavroschema.sh ... [详细]
  • 工作原理_一文理解 Spark 基础概念及工作原理
    篇首语:本文由编程笔记#小编为大家整理,主要介绍了一文理解Spark基础概念及工作原理相关的知识,希望对你有一定的参考价值。 ... [详细]
  • 1、概述hdfs文件系统主要设计为了存储大文件的文件系统;如果有个TB级别的文件,我们该怎么存储呢?分布式文件系统未出现的时候࿰ ... [详细]
  • HDFS是什么?HDFS全称HadoopDistributedFileSystem,简称HDFS,是一个分布式文件系统。它是谷歌的GFS提出之后出现的另外一种文件系统。它有一定高 ... [详细]
  • 各个组件confspark-env.sh配置spark的环境变量confspark-default.conf配置spark应用默认的配置项和spark-env.sh有重合之处,可在 ... [详细]
  • hadoop完全分布式搭建
    原文链接:hadoop完全分布式搭建主机分配以及地址要求:角色主机名IP地址Namenodemaster192.168.222.201Datanodeslave ... [详细]
author-avatar
晨钟暮鼓芋
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有