я получаю следующее сообщение об ошибке:Спарка 1,6 Кафка потоковых по ошибке py4j dataproc
Py4JError(u'An error occurred while calling o73.createDirectStreamWithoutMessageHandler. Trace:\npy4j.Py4JException: Method createDirectStreamWithoutMessageHandler([class org.apache.spark.streaming.api.java.JavaStreamingContext, class java.util.HashMap, class java.util.HashSet, class java.util.HashMap]) does not exist\n\tat py4j.reflection.ReflectionEngine.getMethod(ReflectionEngine.java:335)\n\tat py4j.reflection.ReflectionEngine.getMethod(ReflectionEngine.java:344)\n\tat py4j.Gateway.invoke(Gateway.java:252)\n\tat py4j.commands.AbstractCommand.invokeMethod(AbstractCommand.java:133)\n\tat py4j.commands.CallCommand.execute(CallCommand.java:79)\n\tat py4j.GatewayConnection.run(GatewayConnection.java:209)\n\tat java.lang.Thread.run(Thread.java:745)\n\n',)
Я использую искровой потоковый Кафка-assembly_2.10-1.6.0.jar (который присутствует в/USR/Библиотека/Hadoop/Библиотека/папки на все мои узлы + мастер)
(EDIT) фактическая ошибка: java.lang.NoSuchMethodError: org.apache.hadoop.yarn.util.Apps.crossPlatformify (Ljava/языки/String;) Ljava/языки/String;
Это произошло из-за неправильной версии hadoop. Поэтому искра должна быть составлена с правильной версией Hadoop:
mvn -Phadoop-2.6 -Dhadoop.version=2.7.2 -DskipTests clean package
Это приведет к банку во внешней/Кафке сборки/целевой папке.
Когда был создан ваш кластер/вы проходили какие-либо флаги -image-version при его создании? Можете ли вы дать некоторый контекст того, как вы вызываете KafkaUtils.createStream() (или, альтернативно, как вы вызываете базовые методы)? –
Кластер был создан только вчера, с изображением версии 1.0 (с искрой 1.6). В данный момент. мы по-прежнему используем изображение версии 0.1 (искра 1.5.0) с искровым потоком-кафкой-assembly_2.10-1.5.0.jar, а также изображение версии 0.2 с той же банкой, что и 1.5.2-баночка , Однако для новейшей версии ни одна из фляг, похоже, не работает. Ошибка вызывается при использовании метода KafkaUtils.createDirectStream. Когда я запускаю код локально с помощью искры 1.6 и jar spark-streaming-kafka-assembly_2.10-1.6.0.jar (с параметром --jars через spark-submit), код, кажется, работает отлично. – bjorndv
Я пытался воспроизвести это сегодня днем и не имел большой удачи. Есть ли вероятность, что Spark 1.5 пробился в ваш кластер Dataproc 1.0 с помощью Spark 1.6 (например, были установлены искры-1.6 и искро-1.5, или, альтернативно, искра-1.5 была упакована вместе с вашей работой)? Я прошел через каждую искрообразующую банку кафки, на которую я мог достать (и построил сборку из источника), и после распаковки проверил KafkaUtilsPythonHelper, чтобы гарантировать, что метод createDirectStreamWithoutMessageHandler существует с правильной подписью. –