清远建设工程招投标网站,江阴规划建设局网站,买公司 网站建设,品牌建设的主要内容官网地址#xff1a;spark 参数
在代码中设置参数
spark-default.conf 命令行 代码内部设置参数#xff0c; 对于一常用的参数可以放在配置文件#xff0c;对于一些个性化参数则通过 命令行传递比较好。
命令行
命令行传递参数#xff0c;有一些快捷方式…官网地址spark 参数
在代码中设置参数
spark-default.conf 命令行 代码内部设置参数 对于一常用的参数可以放在配置文件对于一些个性化参数则通过 命令行传递比较好。
命令行
命令行传递参数有一些快捷方式比如 --driver-memory 类似的参数 其实这只是对特别常用的参数做了额外的精简化 除此之外还有另一种最底层的传递方式那就是 --conf kv
Spark Properties
Spark Properties 控制大多数应用程序设置并可为每个应用程序单独配置。支持的参数可以在本文最上方的连接处找到
val conf new SparkConf().setMaster(local[2]).setAppName(CountingSheep).set(任意支持的key,value)
val sc new SparkContext(conf)动态加载参数
动态加载参数意思就是通过命令行动态的为程序设置运行参数这也是最为灵活的一种。也是开发中最常见的一般需要以下两个步骤。
代码中要有 val sc new SparkContext(new SparkConf()) val sc new SparkContext(conf) 这样命令行传递的参数会被sparkConf 对象接收自动设置。命令行传递参数 命令行传递有两种写法一种是快捷方式通过spark-submit --help 可以查到支持的快捷方式比如spark-submit --name test, 这就将我们的程序名称设置为了test, 除此之外就是用–conf kv 这种方式支持所有的底层参数 比如上面的写法可以改成 spark-submit --conf spark.app.nametest 这两种写法是等效的。所有的快捷方式都有对应的底层方式 再举几个例子 –conf spark.executor.memory2g –conf spark.driver.memory2g 等同于 –driver-memory 4g –executor-memory 2g 文章开始的连链接就是官网支持的所有底层参数 感兴趣的可以查看。 下面是我常用的命令仅供参考
spark-submit
--master yarn
-deploy-mode cluster
--class com.boke.entry.Main
--conf spark.shuffle.service.enabledtrue #开启shuffer
--conf spark.dynamicAllocation.enabledFalse #是否开启动态资源分配
--conf spark.dynamicAllocation.minExecutors1 #最小分配数量
--conf spark.dynamicAllocation.maxExecutors4 #最大分配数量
--conf spark.dynamicAllocation.executorIdleTimeout60s #超时检测
--conf spark.dynamicAllocation.initialExecutors3 #初始化分配数量
--conf spark.driver.memory2g #等同于--driver-memory
--conf spark.executor.memory2g # 等同于--executor-memory
--conf spark.executor.instances4# 等同于--num-executors
--conf spark.app.nameSparkTest # 等同于 --name SparkTest
--conf spark.yarn.jarshdfs://xxx:9000/yarn-jars/*.jar
/usr/local/alg/graph-algorithm-1.0-SNAPSHOT.jar 重点说下 spark.yarn.jars 这个参数的意思是放弃读取spark安装目录下的…/jars/目录转而读取hadoop的目录要求将 spark安装目录中的…/jars/下的所有jar包上传到指定的hdfs目录此目录也可以放别的依赖jar 比如jdbc的包或者任何你代码中用到的第三方的jar好处是jar容易管理 打包的时候不需要将第三方的依赖jar打进去 只需要源码包即可 注意我的集群用的是9000端口你可能用的是8020。 请在hdfs-site.xml 找到 propertynamedfs.namenode.rpc-address.hdfs-cluster.nn1/namevaluexxx:9000/value/property目前大多数的集群都是8020端口