• 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

    一般:18080是history server的端口,50070是hadoop webui的端口, 8080 是spark standalone webui的端口,8188(perhaps)是hadoop yarn webui的端口

    6. java.lang.IllegalStateException: Please initialize AllReduceParameter first 

    spark.speculation: default false,If set to "true", performs speculative execution of tasks. This means if one or more tasks are running slowly in a stage, they will be re-launched.

    spark.scheduler.executorTaskBlacklistTime: 默认为0,如果某台worker节点出现了故障,task执行失败后,该executor进入黑名单,然后在executorTaskBlacklistTime时间内不会往该executor上分发任务。而刚失败的任务会在其它节点重试

    使用BIgDL开源框架,同时开启这两项,可能会遇到错误:

    java.lang.IllegalStateException: Please initialize AllReduceParameter first

     7.配置日志

    Spark使用log4j记录日志. 你可以在conf增加一个log4j.properties文件. 其文件夹下有一个log4j的模版.

    8. blockmanager

    每个Driver和Executor都有自己的BlockManager,它管理RDD缓存、Shuffle计算结果、Broadcast存储等.

    当executor 的 blockManager启动创建后会向blockManagerMaster注册,其中blockManagerMaster位于driver上,管理者数据的元数据,比如包含了blockmanagerInfo,blockStatus,当blockManager进行了增删改操作,blockManager会通知blockManagerMaster,blockManagerMaster通过blockManagerInfo内的blockStatus进行元数据的操作。

    blockManager中管理的几种存储级别:内存,磁盘,tachyon,每种存储级别会有对应的类进行数据的操作,分别是memoryStore,diskStore,tachyonStore

    spark 常见错误总结:http://blog.csdn.net/sdujava2011/article/details/51018507

  • 相关阅读:
    加密算法整理
    NSURLConnection类说明
    ios5 中文键盘高度变高覆盖现有ui问题的解决方案(获取键盘高度的方法)
    "ld: library not found for l...." 问题的解决
    ios5 自定义导航条问题
    objectivec 语言知识点
    JSON
    [转]XCode中修改缺省公司名称/开发人员名称
    [转]iPhone开源项目汇总
    清除SQL 数据库日志 欧阳锋
  • 原文地址:https://www.cnblogs.com/lightsun/p/6405140.html
Copyright © 2020-2023  润新知