Я пытаюсь соединить искру с Azure Gen2 datalake. Чтобы подключить его, я вижу, что ему нужны эти 2 класса:
.set("spark.hadoop.fs.AbstractFileSystem.abfss.impl", "org.apache.hadoop.fs.azurebfs.Abfss")
.set("spark.hadoop.fs.abfss.impl", "org.apache.hadoop.fs.azurebfs.SecureAzureBlobFileSystem")
Из репозитория github я вижу, что эти 2 класса включены в версии oop - azure 2.10 и 3. * , Я пытаюсь развернуть на спарк кубернетес оператор, у которого 2.7.3 бинарники В моем maven я добавляю имел oop - azure 3.2.1 и имел oop -общин 3.2.1 , но я получаю исключение,
Exception in thread "main" java.lang.NoSuchMethodError: org.apache.hadoop.security.ProviderUtils.excludeIncompatibleCredentialProviders(Lorg/apache/hadoop/conf/Configuration;Ljava/lang/Class;)Lorg/apache/hadoop/conf/Configuration;
, что указывает на конфликт между oop версиями. Странная вещь в том, что мы также используем блоки данных из некоторых заданий, и у них, похоже, в 2.7.3 были oop двоичные файлы, но все работает. Я попытался добавить все oop зависимостей в моей pom для 3.2.1 версии, но исключение сохраняется.
Как я могу настроить спарк с gen2, так как мне нужно, чтобы 2.10+ имел oop версии, но мой кластер имеет 2.7.3?