Spark学习之Spark调优与调试(7)
Spark学习之Spark调优与调试(7)
1. 对Spark进行调优与调试通常需要修改Spark应用运行时配置的选项。
当创建一个SparkContext时就会创建一个SparkConf实例。
2. Spark特定的优先级顺序来选择实际配置:
优先级最高的是在用户代码中显示调用set()方法设置选项; 其次是通过spark-submit传递的参数; 再次是写在配置文件里的值; 最后是系统的默认值。
3.查看应用进度信息和性能指标有两种方式:网页用户界面、驱动器和执行器进程生成的日志文件。
4.Spark执行的组成部分:作业、任务和步骤
需求:使用Spark shell完成简单的日志分析应用。
scala> val input =sc.textFile("/home/spark01/Documents/input.text") input: org.apache.spark.rdd.RDD[String] = MapPartitionsRDD[3] at textFile at <console>:27 scala> val tokenized = input.map(line=>line.split(" ")).filter(words=>words.size>0) tokenized: org.apache.spark.rdd.RDD[Array[String]] = MapPartitionsRDD[5] at filter at <console>:29 scala> val counts = tokenized.map(words=>(words(0),1)).reduceByKey{(a,b)=>a+b} counts: org.apache.spark.rdd.RDD[(String, Int)] = ShuffledRDD[7] at reduceByKey at <console>:31 scala> // see RDD scala> input.toDebugString res0: String = (1) MapPartitionsRDD[3] at textFile at <console>:27 [] | /home/spark01/Documents/input.text HadoopRDD[2] at textFile at <console>:27 [] scala> counts.toDebugString res1: String = (1) ShuffledRDD[7] at reduceByKey at <console>:31 [] +-(1) MapPartitionsRDD[6] at map at <console>:31 [] | MapPartitionsRDD[5] at filter at <console>:29 [] | MapPartitionsRDD[4] at map at <console>:29 [] | MapPartitionsRDD[3] at textFile at <console>:27 [] | /home/spark01/Documents/input.text HadoopRDD[2] at textFile at <console>:27 [] scala> counts.collect() res2: Array[(String, Int)] = Array((ERROR,1), (##input.text##,1), (INFO,4), ("",2), (WARN,2)) scala> counts.cache() res3: counts.type = ShuffledRDD[7] at reduceByKey at <console>:31 scala> counts.collect() res5: Array[(String, Int)] = Array((ERROR,1), (##input.text##,1), (INFO,4), ("",2), (WARN,2)) scala>
5. Spark网页用户界面
默认情况地址是http://localhost:4040 通过浏览器可以查看已经运行过的作业(job)的详细情况 如图下图:
图1所有任务用户界面
图二作业2详细信息用户界面
6. 关键性能考量:
代码层面:并行度、序列化格式、内存管理 运行环境:硬件供给。
低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。
持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。
转载内容版权归作者及来源网站所有,本站原创内容转载请注明来源。
- 上一篇
Spark学习之在集群上运行Spark(6)
Spark学习之在集群上运行Spark(6) 1. Spark的一个优点在于可以通过增加机器数量并使用集群模式运行,来扩展程序的计算能力。 2. Spark既能适用于专用集群,也可以适用于共享的云计算环境。 3. Spark在分布式环境中的架构: Created with Raphaël 2.1.0我的操作集群管理器Mesos、YARN、或独立集群管理器N个集群工作节点(执行器进程) Spark集群采用的是主/从结构,驱动器(Driver)节点和所有执行器(executor)节点一起被称为一个Spark应用(application)。 Spark自带的集群管理器被称为独立集群管理器。 4. 驱动器节点 Spark的驱动器是执行程序main()方法的进程。它执行用户编写的用来创建SparkContext、创建RDD,以及进行RDD的转化操作和行动操作的代码。 5. 执行器节点 Spark的执行器节点是一种工作进程,负责在Spark作业中运行任务,任务间相互独立。 两大作用:第一,它们负责运行组成Spark应用的任务,并将结果返回给驱动器进程;第二,它们通过自身的块管理器(Block Ma...
- 下一篇
Spark学习之Spark SQL(8)
Spark学习之Spark SQL(8) 1. Spark用来操作结构化和半结构化数据的接口——Spark SQL、 2. Spark SQL的三大功能 2.1 Spark SQL可以从各种结构化数据(例如JSON、Hive、Parquet等)中读取数据。 2.2 Spark SQL不仅支持在Spark程序内使用SQL语句进行查询,也支持从类似商业智能软件Tableau这样的外部工具中通过标准数据库连接器(JDBC/ODBC)连接Spark SQL进行查询。 2.3 当在Spark程序内使用Spark SQL时,Spark SQL支持SQ与常规的Python/Java/Scala代码高度整合,包括连接RDD与SQL表、公开的自定义SQL函数接口等。 3. SchemaRDD(1.3版本后为DataFrame)是存放Row对象的RDD,每个Row对象代表一行记录。SchemaRDD还包含记录的结果信息(即数据字段)。 4. 连接Spark SQL 带有Hive支持的Spark SQL的Maven索引 groupID =org.apache.spark artifactID = spark...
相关文章
文章评论
共有0条评论来说两句吧...
文章二维码
点击排行
推荐阅读
最新文章
- CentOS7编译安装Gcc9.2.0,解决mysql等软件编译问题
- CentOS7安装Docker,走上虚拟化容器引擎之路
- SpringBoot2更换Tomcat为Jetty,小型站点的福音
- Springboot2将连接池hikari替换为druid,体验最强大的数据库连接池
- Docker快速安装Oracle11G,搭建oracle11g学习环境
- Docker使用Oracle官方镜像安装(12C,18C,19C)
- SpringBoot2全家桶,快速入门学习开发网站教程
- CentOS8编译安装MySQL8.0.19
- Jdk安装(Linux,MacOS,Windows),包含三大操作系统的最全安装
- CentOS关闭SELinux安全模块