spark学习笔记3
Spark 支持在集群范围内将数据集缓存至每一个节点的内存中,可避免数据传输,当数据需要重复访问时这个特征非常有用,例如查询体积小的“热”数据集,或是运行如 PageRank 的迭代算法。调用 cache(),就可以将数据集进行缓存:
Spark SQL和 DataFrame可以用于处理结构化数据。
=====================================
请注意, 在 Spark 2.0 之前, Spark 的主要编程接口是弹性分布式数据集(RDD)。 在 Spark 2.0 之后, RDD 被 Dataset 替换, RDD 接口仍然受支持, 您可以在 RDD 编程指南 中获得更完整的参考。 但是, 我们强烈建议您切换到使用 Dataset(数据集), 其性能要更优于 RDD。 请参阅 SQL 编程指南 获取更多有关 Dataset 的信息。
http://spark.apachecn.org/docs/cn/2.2.0/sql-programming-guide.html
=============================================
首先从 Spark 官网 下载 Spark 的发行包。因为我们将不使用 HDFS, 所以你可以下载一个任何 Hadoop 版本的软件包。
=============================================
参考资料:https://www.cnblogs.com/shishanyuan/p/6629295.html
Spark程序的性能和调优方面,从您的实践上来看,有哪些值得注意的?
回答:在不同的应用场景对Spark优化关注不同,自己谈一下个人的经验:
(1)资源调度:在实际部署的Spark集群资源调度一般分为粗粒度调度和细粒度调度两种模式。粗粒度包括了独立运行模式和Mesos粗粒度运行模式,在这种情况下整个机器作为分配单元执行作业,该模式优点是由于资源长期持有减少了资源调度的时间开销,缺点是该模式中无法感知资源使用的变化,易造成系统资源的闲置,从而造成了资源浪费。而细粒度包括了YARN运行模式和Mesos细粒度运行模式,该模式的优点是系统资源能够得到充分利用,缺点是该模式中每个任务都需要从管理器获取资源,调度延迟较大、开销较大。对于运行的作业工作量较大、集群共享程度低,建议使用粗粒度运行模式,而对于工作量比较均匀、集群共享程度高,则建议使用细粒度运行模式。
(2)作业调度:对于Spark的作业目前提供了两种调度策略:一种是FIFO模式,这也是目前默认的模式;另一种是FAIR模式,该模式的调度可以通过参数的配置来决定作业执行的优先模式。FIFO模式比较简单,但无法根据作业的优先级和权重进行分配,这种情况下对于调度算法也需要根据作业工作量和集群共享程度进行设置,一般认为工作量小或者集群共享程度低则建议使用FIFO模式,反之使用FAIR模式。
(3)Shuffle:尽可能避免Shuffle,如果不能避免则应该减少Shuffle数据的规模,比如在数据处理中包含宽依赖和窄依赖操作,可以通过窄依赖操作把数据规模减下来后再进行宽依赖的操作。另外在Spark中Shuffle分为基于哈希的Shuffle写操作和基于排序的Shuffle写操作,基于哈希的Shuffle写操作在Map和Reduce数量较大的情况会导致写文件数量大和缓存开销过大的问题,在Spark1.2版本开始默认为Shuffle写。
(4)序列化&压缩:业界公认大数据处理最大的瓶颈在于集群的IO。在Spark中,把数据处理过程中的数据存在内存中,减少磁盘的IO,极大提高处理速度。而对于在网络传输上建议采用高效的序列化和压缩算法,这样能够大幅度减少数据处理时间,比如可以使用Kryo序列化算法,在压缩算法LZ4提供了压缩速度和压缩比俱佳的性能。
(5)最后需要说的是如果条件允许,把Spark升级到2.0版本,在该版本中通过钨丝计划对Spark核心和Spark SQL进行底层优化,相比以前的版本有了较大幅度的提升。
==============Spark会把数据都载入到内存么?
https://www.jianshu.com/p/b70fe63a77a8
spark学习笔记3的更多相关文章
- Spark学习笔记之SparkRDD
Spark学习笔记之SparkRDD 一. 基本概念 RDD(resilient distributed datasets)弹性分布式数据集. 来自于两方面 ① 内存集合和外部存储系统 ② ...
- spark学习笔记总结-spark入门资料精化
Spark学习笔记 Spark简介 spark 可以很容易和yarn结合,直接调用HDFS.Hbase上面的数据,和hadoop结合.配置很容易. spark发展迅猛,框架比hadoop更加灵活实用. ...
- Spark学习笔记2(spark所需环境配置
Spark学习笔记2 配置spark所需环境 1.首先先把本地的maven的压缩包解压到本地文件夹中,安装好本地的maven客户端程序,版本没有什么要求 不需要最新版的maven客户端. 解压完成之后 ...
- Spark学习笔记3(IDEA编写scala代码并打包上传集群运行)
Spark学习笔记3 IDEA编写scala代码并打包上传集群运行 我们在IDEA上的maven项目已经搭建完成了,现在可以写一个简单的spark代码并且打成jar包 上传至集群,来检验一下我们的sp ...
- Spark学习笔记-GraphX-1
Spark学习笔记-GraphX-1 标签: SparkGraphGraphX图计算 2014-09-29 13:04 2339人阅读 评论(0) 收藏 举报 分类: Spark(8) 版权声明: ...
- Spark学习笔记3——RDD(下)
目录 Spark学习笔记3--RDD(下) 向Spark传递函数 通过匿名内部类 通过具名类传递 通过带参数的 Java 函数类传递 通过 lambda 表达式传递(仅限于 Java 8 及以上) 常 ...
- Spark学习笔记0——简单了解和技术架构
目录 Spark学习笔记0--简单了解和技术架构 什么是Spark 技术架构和软件栈 Spark Core Spark SQL Spark Streaming MLlib GraphX 集群管理器 受 ...
- Spark学习笔记2——RDD(上)
目录 Spark学习笔记2--RDD(上) RDD是什么? 例子 创建 RDD 并行化方式 读取外部数据集方式 RDD 操作 转化操作 行动操作 惰性求值 Spark学习笔记2--RDD(上) 笔记摘 ...
- Spark学习笔记1——第一个Spark程序:单词数统计
Spark学习笔记1--第一个Spark程序:单词数统计 笔记摘抄自 [美] Holden Karau 等著的<Spark快速大数据分析> 添加依赖 通过 Maven 添加 Spark-c ...
- Spark学习笔记——读写Hbase
1.首先在Hbase中建立一张表,名字为student 参考 Hbase学习笔记——基本CRUD操作 一个cell的值,取决于Row,Column family,Column Qualifier和Ti ...
随机推荐
- Selenium Web 自动化 - Selenium(Java)环境搭建
Selenium Web 自动化 - Selenium(Java)环境搭建 2016-07-29 1 下载JDK JDK下载地址:http://www.oracle.com/technetwork/j ...
- Docker镜像中的base镜像理解
base 镜像有两层含义: 不依赖其他镜像,从 scratch 构建. 其他镜像可以之为基础进行扩展. 所以,能称作 base 镜像的通常都是各种 Linux 发行版的 Docker 镜像,比如 Ub ...
- Java知多少(61)线程优先级
线程优先级被线程调度用来判定何时每个线程允许运行.理论上,优先级高的线程比优先级低的线程获得更多的CPU时间.实际上,线程获得的CPU时间通常由包括优先级在内的多个因素决定(例如,一个实行多任务处理的 ...
- Netbeans 8.1 检测不到Tomcat8.5.3以上版本已经启动的Bug
Tomcat实际上已经启动,但是netbeans就是检测不到,只要在server.xml中,找到http/1.1的connector 添加 属性 server="Apache-Coyote/ ...
- 什么是跨域访问,JSON&JSONP
http://blog.csdn.net/notechsolution/article/details/50394391 更详细的讲解,关于同源策略等: http://www.cnblogs.com/ ...
- [Converge] Training Neural Networks
CS231n Winter 2016: Lecture 5: Neural Networks Part 2 CS231n Winter 2016: Lecture 6: Neural Networks ...
- oracle 学习笔记(2)创建表空间及用户授权
原文:http://www.cnblogs.com/smartvessel/archive/2009/07/06/1517690.html Oracle安装完后,其中有一个缺省的数据库,除了这个缺省的 ...
- php-fpm开机自动启动脚本其实源码包里边就有
网上有各种版本的php-fpm开机自动启动脚本, 其实你编译后源目录已经生成自动脚本.不用做任何修改即用.cp {php-5.5.x-source-dir}/sapi/fpm/init.d.php-f ...
- 跨服务器做yum源
服务器无法上网,然后自己根据光盘搭建的YUM源不够用.RPM安装软件,各种依赖,找包烦死. 先做个 能上外网的 http proxy 找一个可以上Internet的服务器,然后起一个squid服务, ...
- autolayout 高度自适应
https://lvwenhan.com/ios/449.html #import "ViewController.h" #import "MyTableViewCell ...