首页 > 代码库 > spark

spark

1.persist:

默认cache()过程是将RDD persist在内存里,persist()操作可以为RDD重新指定StorageLevel.

RDD的persist()和unpersist()操作,都是由SparkContext执行的(SparkContext的persistRDD和unpersistRDD方法)。

Persist过程是把该RDD存在上下文的TimeStampedWeakValueHashMap里维护起来。也就是说,其实persist并不是action,并不会触发任何计算。

Unpersist过程如下,会交给SparkEnv里的BlockManager处理。

 

2. standalone模式和yarn模式,mesos模式:

 

 

3.如何在yarn cluster开启spark的history server:

(1) 在spark的conf中:spark.eventLog.enabled 设置为true

设置spark.eventLog.dir,可以是local,也可以是hdfs的地址

(2) 在ip:18080打开histroy server的web ui

可能出现的问题:

a. 无history信息展示

b. web ui 上的路径和 conf中设置的不一致, 请check路径

c. 启动sbin/start-history-server.sh脚本的时候,出现address bind的问题,一般的因为起了多个history server,特别是在container里面,很容易在外面起了,在里面再起history的时候就会报这个warning.

d.出来evenlog directory,有时还需要在spark-defaults.conf中配置spark.history.fs.logDirectory,表示history server读取日志的位置

e.使用--master yarn时,可能会出现

When running with master ‘yarnt‘ either HADOOP_CONF_DIR or YARN_CONF_DIR must be set in the environment.

如上错误是因为: 没有指定hadoop的配置文件目录,所以可以执行
export HADOOP_CONF_DIR=/home/hadoop/etc/hadoop

4. spark 中colease和repartition的差别

一般需要减少partiontion数量的时候,可以直接调用colease,默认是不做shuffle的,而repartition,会做shuffle。

5. 在提交spark任务时,注意设置参数,--executor-cores --total-executor-cores

 

spark