是否可以使用自定义hadoop版本与EMR?



截至今天(2022-06-28),AWS EMR最新版本为6.6.0,使用Hadoop 3.2.1。

我需要使用不同的Hadoop版本(3.2.2)。我尝试了下面的方法,但它不起作用。可以设置ReleaseLabel或Hadoop版本,但不能同时设置。

client = boto3.client("emr", region_name="us-west-1")
response = client.run_job_flow(
ReleaseLabel="emr-6.6.0",
Applications=[{"Name": "Hadoop", "Version": "3.2.2"}]
)

另一种方法似乎不是一个选项,是加载一个特定的hadoop jar与SparkSession.builder.getOrCreate(),像这样:

spark = SparkSession 
.builder 
.config('spark.jars.packages', 'org.apache.hadoop:hadoop-aws:3.2.2') 
.config('spark.hadoop.fs.s3a.impl', 'org.apache.hadoop.fs.s3a.S3AFileSystem') 
.getOrCreate()

是否有可能使用不同的Hadoop版本运行EMR集群?如果是这样,我们该如何去做呢?

恐怕不行。AWS不希望允许不受支持的Hadoop版本,所以他们总是有点落后,因为他们可能需要时间来测试每个新版本及其与其他Hadoop工具的兼容性。https://docs.aws.amazon.com/emr/latest/releaseguide/emr - 660 release.html。

你必须在EC2中从头开始构建你自己的集群。

你只需要添加脚本引导部分当你自旋向上集群,这个→spark-patch-s3a-fix_emr-6.6.0.sh=) Amazon仅为EMR 6.6.0提供了此修复。

相关内容

  • 没有找到相关文章

最新更新