Spark 常见问题集合
一、Spark 为什么比 MapReduce 要高效?
举一个例子:
select a.state,count(*),AVERAGE(c.price) from a join b on (a.id=b.id) join c on (a.itemId=c.itermId) group by a.state
如果是用 hive 来实现,那么多个此作业将会被转换成 3 个 job 每一个 job 有 一个 map 和一个 reduce,reduce的结果会存储在 hdfs 上
1、hdfs 数据的存储是一个非常耗时的操作,因为存储是通过网络进行传输的,而且还会涉及到 namenode datanode client 之间的一个复杂的通信过程,hdfs 默认是存3份的;
2、每一个map reduce 的作业启动也是一个非常复杂的过程;
所以 map reduce 使用 hdfs 进行中间数据的交互和存储是其低效的重要原因;
而 hive on spark 也会智能的生成一个DAG,但是一个作业只会启动一次,但是中间数据可以根据作业自身的情况选择内存存储或者本地存储,节省了大量的IO操作,这大大的提高了效率。
二、Spark 的 RDD 的数据模型的特点:
RDD --- 弹性分布式数据集合
1、分布式:存在很多的节点上,每个节点上存储一点点,即由多个 partition 构成
2、弹性:多种存储级别,既可以存储在磁盘,亦可以存储在内存,或者一部分存储在磁盘,一部分存储在内存,由用户来决定;
3、RDD 可以转换,可以通过并行的方式进行转换;
4、RDD 具有容错性,失效后自动重构,根据血统的关系,找到其父亲RDD,根据计算关系进行重构。
三、RDD 的 Transformation 和 Action 的区别
1、Transformation 是 把一个 RDD 转换成一个新的 RDD,RDD[x]->RDD[y]
2、Action 是把 一个 RDD 转发成最终的一个结果,或者进行保存到 hdfs 或者磁盘 RDD->Z
3、Action 是一个触发器,程序只有遇到第一个Action 才会执行【惰性执行】
四、3 行代码实现 spark word count
val roWRdd = sc.textFile(args(1))
val resultRdd = rowRdd.flatMap(line=>line.split("\\s+")).map(word=>(word,1)).reduceByKey(_+_)
resultRdd.saveAsTextFile(args[2])
五、spark 的程序框架中 driver 和 executor的作用分别是什么?
每一个 spark 作业都也有 1 个 driver 和 多个 executor 构成
main 函数会跑在 driver 上,executor 是 具体干活的
六、spark 的运行模式,local、standalone,Yarn
通过 -- master 来指定
(1) 本地模式(单机运行,不需要hadoop),测试用的
(2) 独立模式(standalone,只能跑spark),是一种 spark 的集群,需要自己搭建 master/slave,一般不用
(3) 运行在 YARN/mesos
一般的中大型公司会把spark 运行在 yarn 上,yarn 又 分 yarn-client 和 yarn-cluster 2 种
yarn-client 和 yarn-cluster 模式:
yarn-client 模式是 driver 运行在集群之外,优点是可以打印日志,方便调试,缺点是没有容错,如果本地的程序挂掉了,或者误杀死了,整个作业就挂掉了
yarn-cluster 模式是 driver 也有 yarn 的 nodemanager 来托管,优点是容错性较好,缺点是不便于调试
Spark 常见问题集合的更多相关文章
- TPshop之邮箱注册配置教程--附加常见问题集合
准备:企业邮箱(开启POP/SMTP功能) 一.步骤教程: 1.登录企业邮箱(QQ邮箱示例) QQ邮箱 POP3:pop.qq.com SMTP:smtp.qq.com SMTP端口号:25 邮箱 ...
- JMeter常见问题集合
前言 本文内容仅仅是针对Jmeter的部分功能名词的介绍和解释,以及初学者不易理解的问题的整理.部分内容来自别人做的整理,为了更好地整理自己的思路,所以可耻的整理一下发到博客上. 标题[1-6]和[参 ...
- spark转换集合为RDD
SparkContext可以通过parallelize把一个集合转换为RDD def main(args: Array[String]): Unit = { val conf = new SparkC ...
- Spark:scala集合转化为DS/DF
scala集合转化为DS/DF case class TestPerson(name: String, age: Long, salary: Double) val tom = TestPerson( ...
- 【转】Spark常见问题汇总
原文地址:https://my.oschina.net/tearsky/blog/629201 摘要: 1.Operation category READ is not supported in st ...
- Spark link集合
Part1. 各种参数的意义及如何配置 Spark官方文档——Spark Configuration(Spark配置) http://www.cnblogs.com/vincent-hv/p/3316 ...
- 六、spark常见问题总结(转载)
问题导读 1.当前集群的可用资源不能满足应用程序的需求,怎么解决? 2.内存里堆的东西太多了,有什么好办法吗? 1.WARN TaskSchedulerImpl: Initial jo ...
- Spark常见问题汇总
原文地址:https://my.oschina.net/tearsky/blog/629201 摘要: 1.Operation category READ is not supported in st ...
- redis-cluster 集群搭建详细指南及常见问题集合
只当个搬运工吧 搭建篇:https://www.cnblogs.com/mafly/p/redis_cluster.html 测试能用 常见问题: 1 redis操作key时出现以下错误 (erro ...
随机推荐
- 小学生都看得懂的C语言入门(1): 基础/判别/循环
c基础入门, 小学生也可以都看得懂!!!! 安装一个编译器, 这方面我不太懂, 安装了DEV-C++ ,体积不大,30M左右吧, 感觉挺好用,初学者够了. 介绍下DEV 的快键键: 恢复 Ctrl+ ...
- (转) Golang的单引号、双引号与反引号
Go语言的字符串类型string在本质上就与其他语言的字符串类型不同: Java的String.C++的std::string以及Python3的str类型都只是定宽字符序列 Go语言的字符串是一个用 ...
- Axure-----三级下拉菜单的具体实现过程
********三级下拉菜单的动画效果:********** 1.选中三级菜单将其转换为动态面板,命名为treePanel,并隐藏. 2.选中二级菜单添加交互效果:[切换可见性],勾选treePane ...
- python 读取指定div的内容
# -*- coding:utf-8 -*- from bs4 import BeautifulSoup import urllib.request import re # 如果是网址,可以用这个办法 ...
- js FileReader 笔记
以上传图片为例 通过input type='file' 上传完成图片后,获取图片 $('#input').files[0] var reader = new FileReader(); read ...
- loss函数学习笔记
一直对机器学习里的loss函数不太懂,这里做点笔记. 符号表示的含义,主要根据Andrew Ng的课程来的,\(m\)个样本,第\(i\)个样本为\(\vec x^{(i)}\),对应ground t ...
- SQL Server表关联
表关联:Hash.Nested Loops.Merge.这是实际算法,不是T-SQL中的inner/left/right/full/cross join.优化器会把这些T-SQL写法转换成上面的3种算 ...
- Windows系统下安装运行Kafka
一.安装JAVA JDK 1.下载安装包 http://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151. ...
- python---使用递归实现谢尔宾斯基三角形及汉诺塔
渐入佳境. # coding: utf-8 import turtle ''' # =================turtle练手== def draw_spiral(my_turtle, lin ...
- 一脸懵逼学习MapReduce的原理和编程(Map局部处理,Reduce汇总)和MapReduce几种运行方式
1:MapReduce的概述: (1):MapReduce是一种分布式计算模型,由Google提出,主要用于搜索领域,解决海量数据的计算问题. (2):MapReduce由两个阶段组成:Map和Red ...