Spark 代码中可使用如下参数配置:
属性名 | 默认值 | 说明 |
spark.hadoop.fs.oss.accessKeyId | 无 | 访问 OSS 所需的 AccessKey ID(可选) |
spark.hadoop.fs.oss.accessKeySecret | 无 | 访问 OSS 所需的 AccessKey Secret(可选) |
spark.hadoop.fs.oss.securityToken | 无 | 访问 OSS 所需的 STS token(可选) |
spark.hadoop.fs.oss.endpoint | 无 | 访问 OSS 的 endpoint(可选) |
spark.hadoop.fs.oss.multipart.thread.number | 5 | 并发进行 OSS 的 upload part copy 的并发度 |
spark.hadoop.fs.oss.copy.simple.max.byte | 134217728 | 使用普通接口进行 OSS 内部 copy 的文件大小上限 |
spark.hadoop.fs.oss.multipart.split.max.byte | 67108864 | 使用普通接口进行 OSS 内部 copy 的文件分片大小上限 |
spark.hadoop.fs.oss.multipart.split.number | 5 | 使用普通接口进行 OSS 内部 copy 的文件分片数目,默认和拷贝并发数目保持一致 |
spark.hadoop.fs.oss.impl | com.aliyun.fs.oss.nat.NativeOssFileSystem | OSS 文件系统实现类 |
spark.hadoop.fs.oss.buffer.dirs | /mnt/disk1,/mnt/disk2,… | OSS 本地临时文件目录,默认使用集群的数据盘 |
spark.hadoop.fs.oss.buffer.dirs.exists | false | 是否确保 OSS 临时目录已经存在 |
spark.hadoop.fs.oss.client.connection.timeout | 50000 | OSS Client 端的连接超时时间(单位毫秒) |
spark.hadoop.fs.oss.client.socket.timeout | 50000 | OSS Client 端的 socket 超时时间(单位毫秒) |
spark.hadoop.fs.oss.client.connection.ttl | -1 | 连接存活时间 |
spark.hadoop.fs.oss.connection.max | 1024 | 最大连接数目 |
spark.hadoop.job.runlocal | false | 当数据源是 OSS 时,如果需要本地调试运行 Spark 代码,需要设置此项为“true”,否则为“false” |
spark.logservice.fetch.interval.millis | 200 | Receiver 向 LogHub 取数据的时间间隔 |
spark.logservice.fetch.inOrder | true | 是否有序消费分裂后的 Shard 数据 |
spark.logservice.heartbeat.interval.millis | 30000 | 消费进程的心跳保持间隔 |
spark.mns.batchMsg.size | 16 | 批量拉取 MNS 消息条数,最大不能超过 16 |
spark.mns.pollingWait.seconds | 30 | MNS 队列为空时的拉取等待间隔 |
spark.hadoop.io.compression.codec.snappy.native | false | 标识 Snappy 文件是否为标准 Snappy 文件,Hadoop 默认识别的是 Hadoop 修改过的 Snappy 格式文件 |
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。
您提到的这些参数配置是用于优化和定制Apache Spark作业与阿里云对象存储服务(OSS)交互时的行为。下面是对这些配置项的简要说明,以及它们如何帮助提升Spark作业在处理OSS数据时的性能和安全性:
访问密钥配置:
spark.hadoop.fs.oss.accessKeyId
和 spark.hadoop.fs.oss.accessKeySecret
: 分别设置访问OSS所需的AccessKey ID和AccessKey Secret,这是认证和授权的基础。spark.hadoop.fs.oss.securityToken
: 如果使用STS临时凭证访问OSS,需要设置此参数。连接和端点配置:
spark.hadoop.fs.oss.endpoint
: 指定OSS服务的访问地址,根据您的OSS实例所在区域选择正确的endpoint。并发和性能优化:
spark.hadoop.fs.oss.multipart.thread.number
: 控制上传或复制大文件时的并发度,提高效率。spark.hadoop.fs.oss.multipart.split.max.byte
和 spark.hadoop.fs.oss.multipart.split.number
: 调整文件分片大小和数量,以优化大文件操作。本地缓存和目录:
spark.hadoop.fs.oss.buffer.dirs
: 设置OSS操作时使用的本地临时文件目录,可以指定多个路径以利用更多磁盘资源。spark.hadoop.fs.oss.buffer.dirs.exists
: 确保指定的临时目录存在。超时和连接管理:
spark.hadoop.fs.oss.client.connection.timeout
和 spark.hadoop.fs.oss.client.socket.timeout
: 配置连接和socket超时时间,避免长时间等待。spark.hadoop.fs.oss.connection.max
: 限制最大连接数,防止过多连接导致资源耗尽。调试和特殊场景:
spark.hadoop.job.runlocal
: 当需要在本地环境调试涉及OSS数据的Spark代码时,应将其设为true
。压缩和格式兼容:
spark.hadoop.io.compression.codec.snappy.native
: 控制是否使用原生Snappy压缩格式,确保与Hadoop生态系统的兼容性。通过细致地调整这些参数,您可以根据实际工作负载和资源情况,优化Spark应用在阿里云OSS上的读写性能、减少延迟,并确保数据处理的安全性和可靠性。记得根据具体需求和测试结果来调整这些配置,以达到最佳效果。