如何在AWS EMR 6.0上配置可正常运行的Apache Sedona引导脚本
EMR 6.x 版本Apache Sedona分布式GIS环境适配引导方案
旧脚本故障根因
- 版本不匹配:你使用的是适配Spark 2.4/Scala 2.11的Sedona 1.0.1版本,EMR 6.0默认搭载Spark 3.0/Scala 2.12,版本完全不兼容
- 依赖冲突:手动拷贝大量Hadoop、Spark原生组件jar包,和EMR自带的同功能jar版本冲突,导致主节点服务、笔记本组件启动异常
- Python包冲突:同时安装已废弃的
geospark旧包和apache-sedona正式包,产生命名空间冲突
适配EMR 6.0的引导脚本
#!/bin/bash # 升级pip并安装Python侧依赖 sudo pip3 install --upgrade pip sudo pip3 install numpy boto3 pandas shapely py4j attrs apache-sedona[spark]==1.5.1 # 提前将适配Spark3.0/Scala2.12的Sedona相关Jar包上传到你的S3存储路径,再批量拷贝到Spark依赖目录,避免公网下载问题 # 所需Jar包清单:sedona-spark-3.0_2.12、sedona-viz-3.0_2.12、postgresql、jts-core、gt-opengis、gt-metadata、gt-referencing sudo aws s3 cp s3://你的S3Jar存储路径/ /usr/lib/spark/jars/ --recursive --exclude "*" --include "*.jar"
集群启动后配置
在EMR Spark配置页(或作业提交参数中)添加如下配置,启用Sedona SQL扩展:
spark.sql.extensions org.apache.sedona.sql.SedonaSqlExtensions spark.sql.catalog.spark_catalog org.apache.spark.sql.sedona_sql.SedonaCatalog
内容的提问来源于stack exchange,提问作者Pritesh Jain
相关产品推荐
相关产品推荐

