spark
Posted 大球和二憨
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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的主要内容,如果未能解决你的问题,请参考以下文章
spark关于join后有重复列的问题(org.apache.spark.sql.AnalysisException: Reference '*' is ambiguous)(代码片段