我正在嘗試運行訪問dynamodb的spark任務,並且實例化dynamoDb客戶端的舊方式已被棄用,現在建議使用客戶端構建器。在EMR中運行spark任務時發生IllegalAccessError
好了,這在當地工作正常,但是當我部署到EMR我得到這個錯誤:
Exception in thread "main" java.lang.IllegalAccessError: tried to access class com.amazonaws.services.dynamodbv2.AmazonDynamoDBClientConfigurationFactory from class com.amazonaws.services.dynamodbv2.AmazonDynamoDBAsyncClientBuilder
我的代碼導致該是:
val dynamoDbClient = AmazonDynamoDBAsyncClientBuilder
.standard()
.withRegion(Regions.US_EAST_1)
.build()
我build.sbt包含:
libraryDependencies += "com.amazonaws" % "aws-java-sdk" % "1.11.114"
和我的火花提交命令如下:
spark-submit --conf spark.eventLog.enabled=false --packages com.typesafe.play:play-json_2.11:2.5.9,com.github.traviscrawford:spark-dynamodb:0.0.6,com.amazonaws:aws-java-sdk:1.11.114 --master yarn --deploy-mode cluster --class Main application.jar
有沒有人有任何想法?我能忽略一些基本的東西嗎
更新
我注意到,EMR正在運行的OpenJDK 1.8和我的本地系統上運行Oracle的Java 1.8。我改變了EMR集羣以匹配我正在運行的java,但仍然沒有改變。
有趣的是,我會給它一個鏡頭並報告回來。至於「無法加載YARN支持...」必須嘗試在客戶端模式下運行才能看到它是否工作? –