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 ...
随机推荐
- 为什么zookeeper会导致磁盘IO高【转】
由于早期的storm版本心跳信息严重依赖zookeeper,心跳风暴会导致zookeeper的事务日志频繁的写磁盘,带来的问题首当其冲的是磁盘IO会爆掉. 优化思路 将zookeeper事务的日志放入 ...
- [转]JSTL 自定义方法报错Invalid syntax for function signature in TLD.
Apache Tomcat/6.0.18 ${my:splitApply(apply)} <function> <name>splitApply</name> &l ...
- 一个相对通用的JSON响应结构,其中包含两部分:元数据与返回值
定义一个相对通用的JSON响应结构,其中包含两部分:元数据与返回值,其中,元数据表示操作是否成功与返回值消息等,返回值对应服务端方法所返回的数据. public class Response { pr ...
- Java知多少(48)try语句的嵌套
Try语句可以被嵌套.也就是说,一个try语句可以在另一个try块内部.每次进入try语句,异常的前后关系都会被推入堆栈.如果一个内部的try语句不含特殊异常的catch处理程序,堆栈将弹出,下一个t ...
- 第三百九十八节,Django+Xadmin打造上线标准的在线教育平台—生产环境部署CentOS6.5系统环境设置
第三百九十八节,Django+Xadmin打造上线标准的在线教育平台—生产环境部署CentOS6.5系统环境设置 1.Linux安装配置 注意事项: 虚拟机网卡桥接模式 不要拨VPN 如果,网络怎么都 ...
- 服务器最大TCP连接数及调优汇总
启动线程数: 启动线程数=[任务执行时间/(任务执行时间-IO等待时间)]*CPU内核数 最佳启动线程数和CPU内核数量成正比,和IO阻塞时间成反比.如果任务都是CPU计算型任务,那么线程数最多不超过 ...
- 【Math】根据置信度、样本数相关推导过程
时间长了会忘,备忘下. http://blog.csdn.net/liangzuojiayi/article/details/78044780 http://wiki.mbalib.com/wiki/ ...
- vue中引入jquery
npm install jquery -S 在webpack.base.conf.js里加入 plugins: [ new webpack.optimize.CommonsChunkPlugin('c ...
- Kubernetes部署SpringCloud(三) 使用 Ingress-nginx 暴露服务
之前部署的zuul以及basic-info-api 都仅仅在于flannel 网络内可以访问. 现在来使用Ingress-nginx 对外暴露服务 以下用到的一些docker镜像,是存在我私有仓库的, ...
- VS 开发必用插件
C# outline --代码折叠 Indent Guides 虚线对齐 productivity power tools 功能集中在编辑.浏览以及其他常见的构造代码时会使用到的任务 Web Esse ...