spark-submit не работает с моей флягой, расположенной в hdfs - PullRequest
0 голосов
/ 15 октября 2019

Вот моя ситуация:

Apache spark версия 2.4.4

Hadoop версия 2.7.4

Фляга моего приложения находится в hdfs.

Мой иск-отправка выглядит так:

/software/spark-2.4.4-bin-hadoop2.7/bin/spark-submit \
--class com.me.MyClass --master spark://host2.local:7077 \
--deploy-mode cluster \
hdfs://host2.local:9000/apps/myapps.jar

Я получаю эту ошибку:

Exception in thread "main" java.lang.NoSuchMethodError: org.apache.hadoop.tracing.SpanReceiverHost.get(Lorg/apache/hadoop/conf/Configuration;Ljava/lang/String;)Lorg/apache/hadoop/tracing/SpanReceiverHost;
    at org.apache.hadoop.hdfs.DFSClient.<init>(DFSClient.java:634)
    at org.apache.hadoop.hdfs.DFSClient.<init>(DFSClient.java:619)
    at org.apache.hadoop.hdfs.DistributedFileSystem.initialize(DistributedFileSystem.java:149)
    at org.apache.hadoop.fs.FileSystem.createFileSystem(FileSystem.java:2598)
    at org.apache.hadoop.fs.FileSystem.access$200(FileSystem.java:91)
    at org.apache.hadoop.fs.FileSystem$Cache.getInternal(FileSystem.java:2632)
    at org.apache.hadoop.fs.FileSystem$Cache.get(FileSystem.java:2614)
    at org.apache.hadoop.fs.FileSystem.get(FileSystem.java:370)
    at org.apache.spark.deploy.DependencyUtils$$anonfun$resolveGlobPaths$2.apply(DependencyUtils.scala:144)
    at org.apache.spark.deploy.DependencyUtils$$anonfun$resolveGlobPaths$2.apply(DependencyUtils.scala:139)
    at scala.collection.TraversableLike$$anonfun$flatMap$1.apply(TraversableLike.scala:241)
    at scala.collection.TraversableLike$$anonfun$flatMap$1.apply(TraversableLike.scala:241)
    at scala.collection.IndexedSeqOptimized$class.foreach(IndexedSeqOptimized.scala:33)
    at scala.collection.mutable.WrappedArray.foreach(WrappedArray.scala:35)
    at scala.collection.TraversableLike$class.flatMap(TraversableLike.scala:241)
    at scala.collection.AbstractTraversable.flatMap(Traversable.scala:104)
    at org.apache.spark.deploy.DependencyUtils$.resolveGlobPaths(DependencyUtils.scala:139)
    at org.apache.spark.deploy.DependencyUtils$$anonfun$resolveAndDownloadJars$1.apply(DependencyUtils.scala:61)
    at org.apache.spark.deploy.DependencyUtils$$anonfun$resolveAndDownloadJars$1.apply(DependencyUtils.scala:64)
    at scala.Option.map(Option.scala:146)
    at org.apache.spark.deploy.DependencyUtils$.resolveAndDownloadJars(DependencyUtils.scala:60)
    at org.apache.spark.deploy.worker.DriverWrapper$.setupDependencies(DriverWrapper.scala:96)
    at org.apache.spark.deploy.worker.DriverWrapper$.main(DriverWrapper.scala:60)
    at org.apache.spark.deploy.worker.DriverWrapper.main(DriverWrapper.scala)

Любой указатель, как решить эту проблему, пожалуйста? Спасибо.

Ответы [ 2 ]

1 голос
/ 15 октября 2019

Нет необходимости переносить jar в кластер, вы можете запустить jar из своего локального идентификатора с разрешением на выполнение. Как только ваше приложение будет создано, перенесите .jar в свою учетную запись пользователя unix и предоставьте ему права на выполнение. Посмотрите на приведенную ниже искру submit: -

spark-submit --master yarn --deploy-mode cluster --queue default --files "полный путь к файлу ваших свойств" --driver-memory 4G--num-executors 8 --executor-cores 1 --executor-memory 4G --class "имя основного класса"
"полный путь к банке, которую вы передали локальному идентификатору Unix"

Вы можете использовать другие параметры конфигурации, если хотите. Обратите внимание, что в некоторых версиях вы должны использовать spark2-submit вместо spark-submit, если задействовано несколько версий spark.

0 голосов
/ 16 октября 2019

--deploy-mode cluster поможет в этом случае. доставка банок в кластер будет осуществляться кластером пряжи.

...