Spark中最主要的配置机制是用过SparkConf类对Spark进行配置,当创建出一个SparkContext时,就需要创建出一个SparkConf的实例。
在Python中使用SparkConf创建一个应用
#创建一个conf对象 conf = new SparkConf() conf.set("spark.app.name", "My Spark App"0 conf.set("spark.master", "local[4]") conf.set("spark.ui.port", "36000") #使用这个配置对象创建一个SparkContext sc = SparkContext(conf)
Spark中的每个配置选项都是基于字符串形式的键值对。要使用创建出来的SparkConf对象,可以调用set方法来添加配置项设置,然后把这个对象传给SparkContext的构造方法。
Spark执行时有下面所列的这些流程:
Spark在应用执行时记录详细的进度信息和性能指标,这些内容可以在两个地方看到:Spark的网页用户界面以及启动器进程和执行器进程生成的日志文件中。
8.3.1 Spark网页用户界面
默认情况下,它会在驱动器程序所在机器的4040端口上。
8.3.2 驱动器进程和执行器进程的日志
8.4.1 并行度
RDD在物理执行期间,会被分为一系列的分区,每个分区都是整个数据集的子集。当Spark调度并运行任务时,Spark会为每个分区中的数据创建一个任务。该任务在默认情况下会需要集群中的一个计算核心来执行。Spark也会针对RDD直接自动推断出合适的并行度,这对大多数用例来说已经足够了。输入RDD一般会根据其底层的存储系统选择并行度。
并行度会从两个方面影响程序的性能:
Spark提供了两种方法来对并行度进行调优:
8.4.2 序列化格式
当Spark需要通过网络传输数据,或者将数据溢写到磁盘上时,Spark需要把数据序列化为二进制格式。序列化会在数据进行混洗操作时发生,此时有可能需要通过网络传输大量数据。
8.4.3 内存管理
原文:http://www.cnblogs.com/cyoutetsu/p/6349744.html