2017-09-09 2 views
2

Je suis (très) nouvelle à étincelle, donc des excuses si cela est une question stupide.Spark: exécution Kinesis python en streaming par exemple

Je suis en train d'exécuter l'étincelle (2.2.0) étincelle python de streaming par exemple, mais je continue à courir dans la question ci-dessous:

Traceback (most recent call last): 
    File "/Users/rmanoch/Downloads/spark-2.2.0-bin-hadoop2.7/kinesis_wordcount_asl.py", line 76, in <module> 
    ssc, appName, streamName, endpointUrl, regionName, InitialPositionInStream.LATEST, 2) 
    File "/Users/rmanoch/Downloads/spark-2.2.0-bin-hadoop2.7/python/lib/pyspark.zip/pyspark/streaming/kinesis.py", line 92, in createStream 
    File "/Users/rmanoch/Downloads/spark-2.2.0-bin-hadoop2.7/python/lib/py4j-0.10.4-src.zip/py4j/java_gateway.py", line 1133, in __call__ 
    File "/Users/rmanoch/Downloads/spark-2.2.0-bin-hadoop2.7/python/lib/py4j-0.10.4-src.zip/py4j/protocol.py", line 323, in get_return_value 
py4j.protocol.Py4JError: An error occurred while calling o27.createStream. Trace: 
py4j.Py4JException: Method createStream([class org.apache.spark.streaming.api.java.JavaStreamingContext, class java.lang.String, class java.lang.String, class java.lang.String, class java.lang.String, class java.lang.Integer, class org.apache.spark.streaming.Duration, class org.apache.spark.storage.StorageLevel, null, null, null, null, null]) does not exist 
     at py4j.reflection.ReflectionEngine.getMethod(ReflectionEngine.java:318) 
     at py4j.reflection.ReflectionEngine.getMethod(ReflectionEngine.java:326) 
     at py4j.Gateway.invoke(Gateway.java:272) 
     at py4j.commands.AbstractCommand.invokeMethod(AbstractCommand.java:132) 
     at py4j.commands.CallCommand.execute(CallCommand.java:79) 
     at py4j.GatewayConnection.run(GatewayConnection.java:214) 
     at java.lang.Thread.run(Thread.java:745) 

Le tarball J'ai téléchargé sur le site de l'étincelle ne comprend pas le dossier externe en elle (semble comme il y a une question de licence), donc c'est la commande que j'ai essayé d'exécuter (après avoir téléchargé kinesis_wordcount_asl.py de github)

bin/spark-submit --packages org.apache.spark:spark-streaming-kinesis-asl_2.11:2.2.0 kinesis_wordcount_asl.py sparkEnrichedDev relay-enriched-dev https://kinesis.us-west-2.amazonaws.com us-west-2 

Heureux de fournir des détails supplémentaires si nécessaire.

Répondre

1

Sur la base de l'exception, il semble qu'il y ait une incompatibilité de version entre le noyau Spark/Spark streaming et spark-kinesis. API modifiée entre Spark 2.1 et 2.2 (SPARK-19405) et une incompatibilité de version provoquerait une erreur similaire.

Cela me fait penser que vous soumettez en utilisant les binaires incorrectes (juste un guess) - il peut être PATH, PYTHONPATH ou SPARK_HOME problème si vous utilisez le mode local. Parce que vous obtenez une discordance de signature, nous pouvons supposer que spark-kinesis est chargé correctement et org.apache.spark.streaming.kinesis.KinesisUtilsPythonHelper est présent sur le CLASSPATH.