Ошибка при запуске потоковой передачи PySpark с использованием kafka - PullRequest
0 голосов
/ 01 мая 2018

Pyspark новичок.

Получение ошибки при выполнении работников pyspark.

Сценарий Pyspark:

import os
os.environ['PYSPARK_SUBMIT_ARGS'] = '--packages org.apache.spark:spark-streaming-kafka-0-8_2.11:2.0.2 pyspark-shell'

from pyspark import SparkContext
from pyspark.streaming import StreamingContext
from pyspark.streaming.kafka import KafkaUtils
import json

sc = SparkContext(appName="PythonSparkStreamingKafka_RM_01")
sc.setLogLevel("WARN")

ssc = StreamingContext(sc, 60)

kafkaStream = KafkaUtils.createStream(ssc, 'localhost:2181', 'test', {'test':1})

parsed = kafkaStream.map(lambda v: v)
parsed.pprint()

ssc.start()
ssc.awaitTermination()

ВЕРСИЯ:

Использование kafka_2.10-0.8.2.1 и Pyspark version 2.3.0 с Python version 3.6.4 os MacOs sierra

Команда Zookeeper:

bin/zookeeper-server-start.sh config/zookeeper.properties

Команда Кафки:

bin/kafka-server-start.sh config/server.properties

Загрузка некоторых данных в очередь с помощью

bin/kafka-console-producer.sh --broker-list localhost:9092 --topic test < /tmp/test_log.log

Проверено, что test очередь действительно получает данные в очереди, выполнив следующую команду (данные действительно были загружены в тестовую очередь)

bin/kafka-console-consumer.sh --zookeeper localhost:2181 --topic test

пример данных test_log.log

2018-05-01 13:29:54,287 30337 log_generator.py 145 log-generator DEBUG (over headset)
2018-05-01 13:29:54,951 30337 log_generator.py 139 log-generator ERROR metallic surface begin to become visible. A large dish antenna
2018-05-01 13:29:55,876 30337 log_generator.py 143 log-generator WARNING worked with him before. Here he comes.
2018-05-01 13:29:56,196 30337 log_generator.py 139 log-generator ERROR (to Artoo)

Теперь, когда я запускаю через spark-submit или python, pysparkStreaming.py получаю

[Stage 0:>                                                          (0 + 1) / 1]2018-05-01 19:43:50 ERROR Executor:91 - Exception in task 0.0 in stage 0.0 (TID 0)
java.lang.AbstractMethodError
:
:
:
    at org.apache.spark.executor.Executor$TaskRunner.run(Executor.scala:345)
    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
    at java.lang.Thread.run(Thread.java:745)
2018-05-01 19:43:50 ERROR TaskSetManager:70 - Task 0 in stage 0.0 failed 1 times; aborting job
2018-05-01 19:43:50 ERROR ReceiverTracker:91 - Receiver has been stopped. Try to restart it.

Полный журнал https://justpaste.it/522fy

1 Ответ

0 голосов
/ 01 мая 2018

Возможно, проблема несовместимости версий.

Если вы используете последнюю версию Spark (2.3), отметьте:

https://spark.apache.org/docs/latest/structured-streaming-programming-guide.html#creating-streaming-dataframes-and-streaming-datasets

Kafka source - Reads data from Kafka. It’s compatible with Kafka broker versions 0.10.0 or higher. See the Kafka Integration Guide for more details.

...