spark启动参数性能优化

1.简版

--master yarn-cluster \
--jars mysql-connector-java-8.0.28.jar,sparklens-0.3.2-s_2.11.jar \
--driver-class-path mysql-connector-java-8.0.28.jar  \
--conf spark.executor.extraClassPath=sparklens-0.3.2-s_2.11.jar \
--conf spark.extraListeners=com.qubole.sparklens.QuboleJobListener \
--conf spark.sparklens.reporting.disabled=true \
--conf spark.sparklens.data.dir=/projects/sparklens \
--conf spark.default.parallelism=1900 \
--conf spark.sql.shuffle.partitions=1900 \
--conf spark.dynamicAllocation.maxExecutors=250 \
--conf spark.dynamicAllocation.executorIdleTimeout=120s \
--conf spark.dynamicAllocation.initialExecutors=200 \
--conf spark.dynamicAllocation.minExecutors=200 \
--conf spark.executor.cores=3 \
--conf spark.executor.memory=512m \
--conf spark.executor.memoryOverhead=1g \
--conf spark.blacklist.enabled=true \
--conf spark.yarn.nodemanager.vmem-check-enabled=false \
--conf spark.yarn.nodemanager.pmem-check-enabled=false \
--conf spark.speculation.quantile=0.5 \
--conf spark.speculation.multiplier=1.4 \
--conf spark.yarn.dist.files=hdfs://projects/log4j2.properties#log4j2.propertie \
--conf "spark.driver.extraJavaOptions=-Dlog4j.configuration=file:log4j2.propertie" \
--conf "spark.executor.extraJavaOptions=-Dlog4j.configuration=file:log4j2.propertie" \

2.详细注释版(spark 2.4)

# 给下面的 Spark 启动配置加上注释
--master yarn-cluster \  # 设置 Spark 的运行模式为 yarn-cluster,即在 YARN 集群中运行应用程序
--jars mysql-connector-java-8.0.28.jar,sparklens-0.3.2-s_2.11.jar \  # 添加外部的 JAR 包 mysql-connector-java-8.0.28.jar 和 sparklens-0.3.2-s_2.11.jar
--driver-class-path mysql-connector-java-8.0.28.jar  \  # 设置 Driver 运行时的 classpath,将 mysql-connector-java-8.0.28.jar 添加到 classpath 中
--conf spark.executor.extraClassPath=sparklens-0.3.2-s_2.11.jar \  # 设置 Executor 运行时的 classpath,将 sparklens-0.3.2-s_2.11.jar 添加到 classpath 中
--conf spark.extraListeners=com.qubole.sparklens.QuboleJobListener \  # 启用 QuboleJobListener,用于监控 Spark 作业的性能指标
--conf spark.sparklens.reporting.disabled=true \  # 禁用 SparkLens 的报告功能,避免浪费资源
--conf spark.sparklens.data.dir=/projects/sparklens \  # 指定 SparkLens 存储数据的目录
--conf spark.default.parallelism=1900 \  # 设置默认并行度,即每个任务的分区数,默认值为核数 * 2
--conf spark.sql.shuffle.partitions=1900 \  # 设置 Shuffle 操作的分区数,默认值为核数 * 200
--conf spark.dynamicAllocation.maxExecutors=250 \  # 设置动态分配的最大 Executor 数量
--conf spark.dynamicAllocation.executorIdleTimeout=120s \  # 设置 Executor 空闲时间,超过该时间后将被回收
--conf spark.dynamicAllocation.initialExecutors=200 \  # 设置动态分配的初始 Executor 数量
--conf spark.dynamicAllocation.minExecutors=200 \  # 设置动态分配的最小 Executor 数量
--conf spark.executor.cores=3 \  # 设置每个 Executor 使用的 CPU 核数
--conf spark.executor.memory=512m \  # 设置每个 Executor 的内存大小
--conf spark.executor.memoryOverhead=1g \  # 设置 Executor 的内存 overhead
--conf spark.blacklist.enabled=true \  # 启用 Executor 黑名单功能,避免因 Executor 运行异常导致的作业失败
--conf spark.yarn.nodemanager.vmem-check-enabled=false \  # 禁用虚拟内存检查,避免因虚拟内存检查导致的作业失败
--conf spark.yarn.nodemanager.pmem-check-enabled=false \  # 禁用物理内存检查,避免因物理内存检查导致的作业失败
--conf spark.speculation.quantile=0.5 \  # 设置任务推测执行的百分比
--conf spark.speculation.multiplier=1.4 \  # 设置任务推测执行的倍数
--conf spark.yarn.dist.files=hdfs://projects/log4j2.properties#log4j2.propertie \  # 将日志配置文件log4j2.properties添加到Spark应用程序的classpath
--conf "spark.driver.extraJavaOptions=-Dlog4j.configuration=file:log4j2.propertie" \   # 配置Spark驱动程序(Driver)的日志级别等参数,将log4j2.properties文件作为驱动程序(Driver)的日志配置文件
--conf "spark.executor.extraJavaOptions=-Dlog4j.configuration=file:log4j2.propertie" \  # 配置Spark Executor的日志级别等参数,将log4j2.properties文件作为Executor的日志配置文件

3.详细注释版(spark 3.X)

--master yarn-cluster \
--jars mysql-connector-java-8.0.28.jar \
--driver-class-path mysql-connector-java-8.0.28.jar  \
--conf spark.default.parallelism=5000 \
--conf spark.sql.shuffle.partitions=5000 \
--conf spark.dynamicAllocation.maxExecutors=1000 \
--conf spark.dynamicAllocation.executorIdleTimeout=120s \
--conf spark.dynamicAllocation.initialExecutors=100 \
--conf spark.dynamicAllocation.minExecutors=100 \
--conf spark.executor.cores=1 \
--conf spark.executor.memory=10g \
--conf spark.executor.memoryOverhead=1g \
--conf spark.shuffle.memoryFraction=0.2 \
--conf spark.excludeOnFailure.enabled=true \
--conf spark.yarn.nodemanager.vmem-check-enabled=false \
--conf spark.yarn.nodemanager.pmem-check-enabled=false \
--conf spark.speculation.quantile=0.5 \
--conf spark.speculation.multiplier=1.4 \
--conf spark.rss.enabled=true \
--conf spark.shuffle.io.clientThreads=16 \
--conf spark.yarn.dist.files=hdfs://R2/a.conf#aa.conf,hdfs://R2/a/log4j.properties#log4j-first.properties \
--conf "spark.driver.extraJavaOptions=-Dlog4j.configuration=file:log4j-first.properties" \
--conf "spark.executor.extraJavaOptions=-Dlog4j.configuration=file:log4j-first.properties" \

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: CDH(Cloudera's Distribution for Hadoop)是Cloudera公司针对Hadoop生态系统进行的一系列软件包和工具的集成,其中包括Hive on Spark配置。 Hive是一个建立在Hadoop之上的数据仓库基础架构,它提供了类似于SQL的查询语言HiveQL,方便用户使用SQL语言对存储在Hadoop中的大型数据集进行查询和分析。Spark是一个快速、通用的数据处理引擎,具有内存计算的特性,能在内存中高效地处理大规模数据。 在CDH中配置Hive on Spark需要进行以下步骤: 1. 确保CDH集群已经正确安装和配置,并且已经启动了Hive服务和Spark服务。 2. 在CDH管理界面中,选择Hive服务,然后点击“配置”选项卡。 3. 在配置页面中,找到“Hive 服务”下的“Ancillary Service Configuration”部分。在“Spark”部分中,填写正确的Spark主节点地址和端口号。 4. 点击“保存并重启”以应用配置更改。 5. 在CDH管理界面中,选择Spark服务,然后点击“配置”选项卡。 6. 在配置页面中,找到“Spark 特定”的部分。在“Spark 实例模式”中选择“Standalone”,表示将使用独立的Spark集群。 7. 在“Spark 主节点地址”中填写正确的Spark主节点的地址。 8. 点击“保存并重启”以应用配置更改。 9. 配置完成后,可以使用HiveQL语句在Hive中使用Spark进行查询和分析数据。在Hive命令行或Hue界面中,编写需要的查询语句并执行。 通过以上步骤,就可以在CDH上成功配置Hive on Spark。这样就可以同时利用Hive和Spark的强大功能,实现对大规模数据的高效分析和处理。 ### 回答2: CDH配置Hive on Spark是指在CDH平台上配置使用Spark作为Hive的计算引擎。下面是具体的步骤: 1. 首先,确保已经在CDH平台上安装了Hive和Spark组件。 2. 在Hive的配置文件中,需要添加以下参数来启用Hive on Spark: hive.execution.engine = spark hive.spark.client.connect.timeout = 300s hive.spark.client.server.connect.timeout = 300s 3. 在Spark配置文件中,需要增加以下参数来支持Hive on Sparkspark.master = yarn-client spark.deploy.mode = client spark.submit.deployMode = client spark.yarn.queue = default spark.executor.instances = 10 spark.executor.memory = 4G spark.executor.cores = 2 spark.driver.memory = 4G 4. 然后,重启Hive和Spark的服务。 5. 运行Hive脚本或者Hive命令时,可以在Hive中使用"hive.execution.engine=spark"设置为Spark引擎,或者在命令行中使用"--engine=spark"参数配置完成后,Hive会将相应的作业提交给Spark来执行,利用Spark的分布式计算能力加速Hive查询的执行速度。需要注意的是,配置Hive on Spark需要确保CDH平台中的Hive和Spark是兼容的,并且调整Spark的资源配置以满足计算需求。 总之,通过CDH配置Hive on Spark可以充分发挥Spark的并行处理能力,提高Hive查询的执行效率和性能。 ### 回答3: CDH是一种大数据解决方案,用于配置Hive on Spark的步骤如下: 1. 首先,确保已安装CDH集群并启动了Hive和Spark组件。如果还没有安装,请按照CDH文档进行安装和配置。 2. 检查Hive和Spark的版本兼容性。Hive on Spark需要Hive和Spark版本之间的兼容性,查看CDH文档以了解哪些版本适用于您的集群。 3. 在Hive配置文件中启用Hive的Spark支持。打开Hive配置文件(hive-site.xml),设置hive.execution.engine为spark。 4. 配置Spark属性。在Spark配置文件(spark-defaults.conf)中,设置spark.master为yarn-client或yarn-cluster,这取决于您的CDH集群配置。还可以通过设置其他属性来优化Spark执行引擎的性能。 5. 启动Hive服务。重启Hive服务以使配置更改生效。您可以使用以下命令重新启动Hive服务: sudo service hive-server2 restart 6. 测试Hive on Spark。使用Hive命令行或其他Hive客户端,运行一些Hive查询并确认它们是否在Spark上执行。 配置Hive on Spark可以提供更好的性能和资源利用率。而且,使用Spark作为执行引擎还可以充分利用Spark提供的丰富的数据处理功能和API。通过使用CDH的Hive on Spark配置,您可以更好地处理和分析大规模的数据集。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值