spark采用命令行方式提交的配置说明
以下是关于spark配置的一些参数设置,可以直接复制取用,修改自己个人的路径即可。
关于spark的配置
--master yarn \ #指定 YARN 作为 Spark 的资源管理器。
--deploy-mode client \ #将驱动程序部署在客户端模式下,以便从客户端节点提交 Spark 应用程序。
--driver-memory 2g \ #驱动程序节点的内存大小,此处指定为2G。
--executor-memory 8g \ #执行器节点的内存大小,此处指定为8G。
--num-executors 4 \ #要分配给应用程序的执行器数量,此处为4个。
--executor-cores 6 \ #各个执行器节点上可用于分配任务的 CPU 核心数,此处为6。
--conf spark.default.parallelism=200 \ #默认并行度,即处理数据的并行任务的默认数量。
--archives hdfs:///user/udhuangj/spark/py37.zip#python37 \#指定归档文件,并将其解压缩到 HDFS 上的指定目录中。
--conf "spark.pyspark.driver.python=/usr/bin/python3" \ #指定驱动程序节点上使用的 Python 版本。
--conf "spark.pyspark.python=/usr/bin/python3" \ #指定所有执行器节点上使用的 Python 版本。
--conf "spark.yarn.appMasterEnv.PYSPARK_PYTHON=/usr/bin/python3" \#指定应用程序主节点上使用的 Python 版本。
--conf "spark.yarn.appMasterEnv.PYSPARK_DRIVER_PYTHON=/usr/bin/python3" \#指定应用程序主节点上使用的驱动程序 Python 版本。
--conf "spark.executorEnv.PYSPARK_PYTHON=/usr/bin/python3" \#指定所有执行器节点上使用的 Python 版本。
--conf "spark.executorEnv.PYSPARK_DRIVER_PYTHON=/usr/bin/python3" \#指定所有执行器节点上使用的驱动程序 Python 版本。
--conf spark.executorEnv.PYTHONPATH=pyspark.zip:py4j-0.10.7-src.zip \#设置所有执行器进程的 PYTHONPATH 环境变量,以便让它们能够找到 PySpark 和 Py4J 库。
--conf spark.yarn.dist.files=file:/opt/spark2/python/lib/pyspark.zip,file:/opt/spark2/python/lib/py4j-0.10.7-src.zip \#指定要在 YARN 集群中分发的文件列表,为每个需要分发的文件指定一个 URI。
关于hive的配置
--conf "hive.exec.dynamic.partition=true" \ #启用Hive动态分区。
--conf "hive.exec.dynamic.partition.mode=nonstrict" \#允许Hive动态分区键中包含未在静态分区中定义的值。
--conf "hive.support.concurrency=false" \#禁用Hive并发操作支持。
--conf "hive.exec.max.dynamic.partitions=1000" \#对于Hive动态分区,在一个SQL查询中最多创建的最大分区数。
--conf "hive.exec.max.dynamic.partitions.pernode=1000" \#对于Hive动态分区,每个节点上最多创建的最大分区数。
--conf "hive.mapred.mode=nonstrict" \#启用非严格模式,以允许更容易地执行一些Hive查询。
--conf "hive.exec.parallel=true" \#启用Hive并行执行操作支持。
--conf "hive.exec.parallel.thread.number=8" \#Hive并行执行操作所使用的最大线程数。
--conf "mapred.max.split.size=128000000" \#指定MapReduce输入分割大小限制的最大值(以字节为单位)。
--conf "mapred.min.split.size.per.node=100000000" \#指定每个节点上的MapReduce输入分割大小限制的最小值(以字节为单位)。
--conf "mapred.min.split.size.per.rack=100000000" \#指定每个机架上的MapReduce输入分割大小限制的最小值(以字节为单位)。
--conf "hive.input.format=org.apache.hadoop.hive.ql.io.CombineHiveInputFormat" \#指定使用组合文件输入格式来处理Hive表数据。
--conf "hive.merge.mapfiles=true" \#启用Hive在执行Map端任务时自动合并小文件功能。
--conf "hive.merge.mapredfiles=true" \#启用Hive在执行Reduce端任务时自动合并小文件功能。
--conf "hive.merge.size.per.task=128000000" \#Hive每个任务合并文件时允许的最大大小(以字节为单位)。
--conf "hive.merge.smallfiles.avgsize=100000000" \#Hive自动合并小文件时要求的平均文件大小。