个人建网站成本,网站优化公司谷歌优化,网站模板怎么修改logo,前端网站如何做全景图1#xff1a;Spark1.0.0属性配置方式Spark属性提供了大部分应用程序的控制项#xff0c;而且能够单独为每一个应用程序进行配置。在Spark1.0.0提供了3种方式的属性配置#xff1a;SparkConf方式 SparkConf方式能够直接将属性值传递到SparkContext#xff1b;SparkConf能够对… 1Spark1.0.0属性配置方式 Spark属性提供了大部分应用程序的控制项而且能够单独为每一个应用程序进行配置。 在Spark1.0.0提供了3种方式的属性配置 SparkConf方式 SparkConf方式能够直接将属性值传递到SparkContextSparkConf能够对某些通用属性直接配置如master使用setMasterappname使用setAppName也能够使用set()方法对属性进行键-值对配置如set(spark.executor.memory, 1g) 。命令行參数方式 这样的方式是在使用spark-submit或spark-shell提交应用程序的时候。用命令行參数提交这样的方式能够比較灵活的配置各个应用程序的执行环境能够通过spark-submit --help 或 spark-shell –help显示出属性的完整列表。文件配置方式 该方式是将属性配置项以键值对方式写入文本文件里一个配置项占一行该文件默觉得conf/spark-defaults.conf。spark-submit在提交应用程序的时候会检查是否存在该文件有的话就将相关的属性配置加载该文件能够在 spark-submit的命令參数--properties-file定义不同的位置。优先权 SparkConf方式 命令行參数方式 文件配置方式查看Spark属性配置 通过应用程序的webUI地址http://driver:4040能够查看Spark属性配置从而检查属性配置是否正确。仅仅是显示通过上面三种方式显式指定的属性配置。对于其它属性能够假定使用默认配置对于大多数内部控制属性系统已经提供了合理的默认配置。 2Spark1.0.0中通用属性 A应用程序属性 属性名称 默认 含义 spark.app.name 无应用程序名称 spark.master 无要连接的群集管理器 spark.executor.memory 512 m每一个executor使用的内存总量 spark.serializer org.apache.spark.serializer. JavaSerializer在网络数据传送或缓存时使用的序化器默认的序化器是Java序化器尽管这样的序化器对不论什么Java对象能够使用兼容性好可是处理速度相当的慢。假设要追求处理速度的话建议使用org.apache.spark.serializer.KryoSerializer序化器。当然也能够随意是定义为org.apache.spark.Serializer 子类的序化器。 spark.kryo.registrator 无假设要使用 Kryo序化器。须要创建一个继承KryoRegistrator的类并设置系统属性spark.kryo.registrator指向该类。 spark.local.dir /tmp用于暂存空间的文件夹。该文件夹用于保存map输出文件或者转储RDD。该文件夹位于快速的本地磁盘上或者位于使用逗号分隔的多个不同磁盘上的文件夹。注意 在Spark 1.0 及更高版本号这属性将被群集管理器配置的环境变量 SPARK_LOCAL_DIRS Standalone、Mesos 或 LOCAL_DIRS YARN 取代。 spark.logConf falseSparkContext 启动时记录有效 SparkConf信息。 B执行时环境 属性名称 默认 含义 spark.executor.memory 512 m分配给每一个executor进程总内存使用类似512m、2g格式) spark.executor.extraJavaOptions 无要传递给executor的额外 JVM 选项注意不能使用它来设置Spark属性或堆大小设置。 spark.executor.extraClassPath 无追加到executor类路径中的附加类路径主要为了兼容旧版本号的Spark。通常不须要用户设置。 spark.executor.extraLibraryPath 无 启动executor JVM 时要用到的特殊库路径。 spark.files.userClassPathFirst falseexecutor在载入类的时候是否优先使用用户自己定义的JAR包而不是Spark带有的JAR包。此功能能够用于解决Spark依赖包和用户依赖包之间的冲突。眼下该属性仅仅是一项试验功能。 CShuffle 操作 属性名称 默认 含义 spark.shuffle.consolidateFiles false假设设置为true在shuffle时就合并中间文件对于有大量Reduce任务的shuffle来说。合并文件能够提高文件系统性能。假设使用的是ext4 或 xfs 文件系统。建议设置为true对于ext3。因为文件系统的限制设置为true反而会使内核8的机器减少性能。 spark.shuffle.spill true假设设置为true在shuffle期间通过溢出数据到磁盘来减少了内存使用总量。溢出阈值是由spark.shuffle.memoryFraction指定的。 spark.shuffle.spill.compress true是否压缩在shuffle期间溢出的数据假设压缩将使用spark.io.compression.codec。 spark.shuffle.compress true是否压缩map输出文件压缩将使用spark.io.compression.codec。 spark.shuffle.file.buffer.kb 100每一个shuffle的文件输出流内存缓冲区的大小以KB为单位。这些缓冲区能够降低磁盘寻道的次数也降低创建shuffle中间文件时的系统调用。 spark.reducer.maxMbInFlight 48每一个reduce任务同一时候获取map输出的最大大小 以兆字节为单位。因为每一个map输出都须要一个缓冲区来接收它。这代表着每一个 reduce 任务有固定的内存开销。所以要设置小点除非有非常大内存。 DSpark UI 属性名称 默认 含义 spark.ui.port 4040应用程序webUI的port spark.ui.retainedStages 1000在GC之前webUI保留的stage数量 spark.ui.killEnabled true同意在webUI将stage和对应的job杀死 spark.eventLog.enabled false是否记录Spark事件用于应用程序在完毕后重构webUI。 spark.eventLog.compress false是否压缩记录Spark事件前提spark.eventLog.enabled为true。 spark.eventLog.dir file:///tmp/spark-events假设spark.eventLog.enabled为 true该属性为记录spark事件的根文件夹。在此根文件夹中Spark为每一个应用程序创建分文件夹。并将应用程序的事件记录到在此文件夹中。用户能够将此属性设置为HDFS文件夹以便history server读取历史记录文件。 E压缩和序化 属性名称 默认 含义 spark.broadcast.compress true是否在发送之前压缩广播变量。 spark.rdd.compress false是否压缩序化的RDD分区 ,能够节省大量空间。但会消耗一些额外的CPU时间。 spark.io.compression.codec org.apache.spark.io.LZFCompressionCodec用于压缩内部数据如 RDD 分区和shuffle输出的编码解码器。Spark提供两个编解码器 org.apache.spark.io.LZFCompressionCodec和org.apache.spark.io.SnappyCompressionCodec。当中Snappy提供更高速的压缩和解压缩而LZF提供了更好的压缩比。 spark.io.compression.snappy .block.size 32768使用Snappy编码解码器时编码解码器使用的块大小 以字节为单位 。 spark.closure.serializer org.apache.spark.serializer.JavaSerializer用于闭包的序化器眼下仅仅有支持Java序化器。 spark.serializer. objectStreamReset 10000使用 org.apache.spark.serializer.JavaSerializer序化时。序化器缓存对象以防止写入冗余数据这时停止这些对象的垃圾收集。通过调用重置序化器刷新该信息就能够收集旧对象。若要关闭这重定期重置功能将其设置为 0 。默认情况下每10000个对象将重置序化器。 spark.kryo.referenceTracking true当使用Kryo序化数据时。是否跟踪对同一对象的引用。假设你的对象图有回路或者同一对象有多个副本。有必要设置为true。其它情况下能够禁用以提高性能。 spark.kryoserializer.buffer.mb 2在Kryo 里同意的最大对象大小Kryo会创建一个缓冲区至少和序化的最大单个对象一样大 。假设Kryo 出现缓冲区限制超出异常报错添加这个值。注意。每一个worker的每一个core仅仅有一个缓冲区。 F运行操作 属性名称 默认 含义 spark.default.parallelism本地模式 本地机器内核数 Mesos精细模式 8 其它 全部executor的core总数 或者2以较大者为准 假设用户没设置系统使用集群中执行shuffle操作的默认任务数groupByKey、 reduceByKey等。 spark.broadcast.factoryorg.apache.spark.broadcast.HttpBroadcastFactory广播的实现类 spark.broadcast.blockSize 4096TorrentBroadcastFactory块大小以kb为单位。太大值在广播时减少并行性 使速度变慢。太小值 BlockManager性能可能会受到冲击。 spark.files.overwrite false通过 SparkContext.addFile() 加入的文件在目标中已经存在而且内容不匹配时是否覆盖目标文件。 spark.files.fetchTimeout false在获取由driver通过SparkContext.addFile() 加入的文件时是否使用通信时间超时。 spark.storage.memoryFraction 0.6Java堆用于cache的比例 spark.tachyonStore.baseDir System.getProperty(java.io.tmpdir)用于存储RDD的techyon文件夹tachyon文件系统的URL由spark.tachyonStore.url设置。也能够是逗号分隔的多个techyon文件夹。 spark.storage. memoryMapThreshold 8192以字节为单位的块大小用于磁盘读取一个块大小进行内存映射。这能够防止Spark在内存映射时使用非常小块普通情况下对块进行内存映射的开销接近或低于操作系统的页大小。 spark.tachyonStore.url tachyon://localhost:19998基于techyon文件的URL。 spark.cleaner.ttl 无限spark记录不论什么元数据stages生成、task生成等的持续时间。定期清理能够确保将超期的元数据遗忘。这在执行长时间任务是非常实用的如执行24/7的sparkstreaming任务。注意RDD持久化在内存中的超期数据也会被清理。 G网络通信 属性名称 默认 含义 spark.driver.host 本地主机名执行driver的主机名或 IP 地址。 spark.driver.port 随机driver侦听的port。 spark.akka.frameSize 10以MB为单位的driver和executor之间通信信息的大小设置值越大。driver能够接受更大的计算结果。 spark.akka.threads 4用于通信的actor线程数在大型集群中拥有很多其它CPU内核的driver能够添加actor线程数。 spark.akka.timeout 100以秒为单位的Spark节点之间通信超时时间。 spark.akka.heartbeat.pauses 600以下3个參数是用于设置akka自带的故障探測器设置非常大值的话。能够停用故障探測器。假设想启用故障探測器。以秒为单位设置这3个參数。一般是在特殊须要的情况下开启故障探測器。一个敏感的故障探測器有助于恶意的executor的定位而对于因为GC暂停或网络滞后引起的情况下不须要开启故障探測器另外故障探測器的开启会导致因为心跳信息的频繁交换而引起的网络泛滥。 本參数是设置可接受的心跳停顿时间。 spark.akka.failure-detector.threshold 300.0相应AKKA的akka.remote.transport-failure-detector.threshold spark.akka.heartbeat.interval 1000心跳间隔时间 H调度 属性名称 默认 含义 spark.task.cpus 1为每一个任务分配的内核数。 spark.task.maxFailures 4job放弃task前该task的失败次数该值1 spark.scheduler.mode FIFOSparkContext对job进行调度所採用的模式。 对于多用户可採用FAIR模式。 spark.cores.max 未设置当应用程序执行在Standalone集群或者粗粒度共享模式Mesos集群时应用程序向集群请求的最大CPU内核总数不是指每台机器而是整个集群。假设不设置对于Standalone集群将使用spark.deploy.defaultCores中数值而Mesos将使用集群中可用的内核。 spark.mesos.coarse false假设设置为true。在Mesos集群中执行时使用粗粒度共享模式。 spark.speculation false下面几个參数是关于Spark猜測运行机制的相关參数。此參数设定是否使用猜測运行机制假设设置为true则spark使用猜測运行机制对于Stage中拖后腿的Task在其它节点中又一次启动并将最先完毕的Task的计算结果最为终于结果。 spark.speculation.interval 100Spark多长时间进行检查task执行状态用以猜測。以毫秒为单位。 spark.speculation.quantile 0.75猜測启动前。Stage必需要完毕总Task的百分比。 spark.speculation.multiplier 1.5比已完毕Task的执行速度中位数慢多少倍才启用猜測 spark.locality.wait 3000下面几个參数是关于Spark数据本地性的相关參数。 本參数是以毫秒为单位启动本地数据task的等待时间假设超出就启动下一本地优先级别的task。该设置相同能够应用到各优先级别的本地性之间本地进程 - 本地节点 - 本地机架 - 随意节点 当然也能够通过spark.locality.wait.node等參数设置不同优先级别的本地性。 spark.locality.wait.process spark.locality.wait 本地进程级别的本地等待时间 spark.locality.wait.node spark.locality.wait本地节点级别的本地等待时间 spark.locality.wait.rack spark.locality.wait本地机架级别的本地等待时间 spark.scheduler.revive.interval 1000复活又一次获取资源的Task的最长时间间隔毫秒发生在Task由于本地资源不足而将资源分配给其它Task执行后进入等待时间假设这个等待时间内又一次获取足够的资源就继续计算。 I安全 属性名称 默认 含义 spark.authenticate falseSpark是否启用内部身份验证。 spark.authenticate.secret 无设置Spark用于组件之间进行身份验证的密钥。假设不是YARN上执行而且spark.authenticate为true时须要设置密钥。 spark.core.connection. auth.wait.timeout 30Spark用于组件时间进行身份认证的超时时间。 spark.ui.filters 无Spark web UI 要使用的以逗号分隔的筛选器名称列表。筛选器要符合javax servlet Filter标准每一个筛选器的參数能够通过设置java系统属性来指定spark.class name of filter.paramsparam1value1,param2value2比如-Dspark.ui.filterscom.test.filter1-Dspark.com.test.filter1.paramsparam1foo,param2testing spark.ui.acls.enable falseSpark webUI存取权限是否启用。假设启用。在用户浏览web界面的时候会检查用户是否有訪问权限。 spark.ui.view.acls 空以逗号分隔Spark webUI訪问用户的列表。默认情况下仅仅有启动Spark job的用户才有訪问权限。 JSpark Streaming 属性名称 默认 含义 spark.streaming.blockInterval 200在时间间隔内毫秒Spark Streaming接收器将接收数据合并成数据块并存储在Spark。 spark.streaming.unpersist true假设设置为true强迫将SparkStreaming持久化的RDD数据从Spark内存中清理相同的SparkStreaming接收的原始输入数据也会自己主动被清理假设设置为false则同意原始输入数据和持久化的RDD数据可被外部的Streaming应用程序訪问由于这些数据不会自己主动清理。 3集群特有的属性 AStandalone特有属性 Standalone还能够通过环境变量文件conf/spark-env.sh来设置属性相关的配置项是 SPARK_MASTER_OPTS 配置master使用的属性SPARK_WORKER_OPTS 配置worker使用的属性SPARK_DAEMON_JAVA_OPTS 配置master和work都使用的属性 配置的时候使用类似的语句 export SPARK_MASTER_OPTS-Dx1y1 -Dx2y2# - 当中x代表属性y代表属性值 当中SPARK_MASTER_OPTS所支持的属性有 属性名称 默认 含义 spark.deploy.spreadOut trueStandalone集群管理器是否自由选择节点还是固定到尽可能少的节点前者会有更好的数据本地性。后者对于计算密集型工作负载更有效 spark.deploy.defaultCores 无限假设没有设置spark.cores.max该參数设置Standalone集群分配给应用程序的最大内核数假设不设置应用程序获取全部的有效内核。注意在一个共享的集群中。设置一个低值防止攫取了全部的内核影响他人的使用。 spark.worker.timeout 60master由于没有收到心跳信息而觉得worker丢失的时间秒 当中SPARK_WORKER_OPTS所支持的属性有 属性名称 默认 含义 spark.worker.cleanup.enabled false是否定期清理worker的应用程序工作文件夹。仅仅适用于Standalone模式不适用于YARN模式。清理的时候将无视应用程序是否在执行。 spark.worker.cleanup.interval 1800 清理worker本地过期的应用程序工作文件夹的时间间隔秒 spark.worker.cleanup.appDataTtl 7*24*3600 worker保留应用程序工作文件夹的有效时间。该时间由磁盘空间、应用程序日志、应用程序的jar包以及应用程序的提交频率来设定。 当中SPARK_DAEMON_JAVA_OPTS所支持的属性有 属性名称 含义 spark.deploy.recoveryMode以下3个參数是用于配置zookeeper模式的master HA。 设置为ZOOKEEPER表示启用master备用恢复模式默觉得NONE。 spark.deploy.zookeeper.urlzookeeper集群URL spark.deploy.zookeeper.dirzooKeeper保存恢复状态的文件夹。缺省为/spark spark.deploy.recoveryMode设成FILESYSTEM启用master单节点恢复模式缺省值为NONE spark.deploy.recoveryDirectorySpark保存恢复状态的文件夹 BYARN特有属性 YARN特有属性的配置应该是支持SparkConf方式和conf/spark-defaults.conf文件配置方式。 属性名称 默认 含义 spark.yarn.applicationMaster.waitTries 10RM等待Spark AppMaster启动次数也就是SparkContext初始化次数。超过这个数值启动失败。 spark.yarn.submit.file.replication 3应用程序上载到HDFS的文件的复制因子 spark.yarn.preserve.staging.files false设置为true在job结束后将stage相关的文件保留而不是删除。 spark.yarn.scheduler.heartbeat.interval-ms 5000Spark AppMaster发送心跳信息给YARN RM的时间间隔 spark.yarn.max.executor.failures 2倍于executor数导致应用程序宣告失败的最大executor失败数 spark.yarn.historyServer.address 无Spark history server的地址不要加http://。这个地址会在Spark应用程序完毕后提交给YARN RM然后RM将信息从RM UI写到history server UI上。