2017-04-08 31 views
11

Zainstalowałem Zeppelin 0.7.1. Kiedy próbowałem uruchomić program Przykład zapłonową (który był dostępny z Zeppelin Tutorial notebook), otrzymuję następujący błądUzyskiwanie wyjątku NullPointerException podczas działania kodu Spark w urządzeniu Zeppelin 0.7.1

java.lang.NullPointerException 
    at org.apache.zeppelin.spark.Utils.invokeMethod(Utils.java:38) 
    at org.apache.zeppelin.spark.Utils.invokeMethod(Utils.java:33) 
    at org.apache.zeppelin.spark.SparkInterpreter.createSparkContext_2(SparkInterpreter.java:391) 
    at org.apache.zeppelin.spark.SparkInterpreter.createSparkContext(SparkInterpreter.java:380) 
    at org.apache.zeppelin.spark.SparkInterpreter.getSparkContext(SparkInterpreter.java:146) 
    at org.apache.zeppelin.spark.SparkInterpreter.open(SparkInterpreter.java:828) 
    at org.apache.zeppelin.interpreter.LazyOpenInterpreter.open(LazyOpenInterpreter.java:70) 
    at org.apache.zeppelin.interpreter.remote.RemoteInterpreterServer$InterpretJob.jobRun(RemoteInterpreterServer.java:483) 
    at org.apache.zeppelin.scheduler.Job.run(Job.java:175) 
    at org.apache.zeppelin.scheduler.FIFOScheduler$1.run(FIFOScheduler.java:139) 
    at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511) 
    at java.util.concurrent.FutureTask.run(FutureTask.java:266) 
    at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$201(ScheduledThreadPoolExecutor.java:180) 
    at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:293) 
    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) 

Mam również skonfigurować plik konfiguracyjny (zeppelin-env.sh), aby wskazać na mojej instalacji Spark & konfiguracji Hadoop katalog

export SPARK_HOME="/${homedir}/sk" 
export HADOOP_CONF_DIR="/${homedir}/hp/etc/hadoop" 

wersja Spark używam to 2.1.0 & Hadoop jest 2.7.3

również używam domyślnego Spark Interpreter Configu racja (więc Spark jest gotowy do uruchomienia w Local mode)

Czy brakuje mi tutaj czegoś?

PS: Jestem w stanie połączyć się iskra z terminalu używając spark-shell

Odpowiedz

1

Czy prawo ustawić SPARK_HOME? Wystarczy się zastanawiać, co jest w twoim sk export SPARK_HOME="/${homedir}/sk"

(Chciałem komentarz poniżej swoje pytanie, ale nie mógł z powodu mojego braku reputacji)

+0

Tak, właśnie tam zainstalowałem Spark :). to jest katalog domowy instalacji Spark'a – Raj

7

Wreszcie jestem w stanie znaleźć przyczynę. Kiedy sprawdzałem logi w katalogu ZL_HOME/logs, okazało się, że jest to błąd wiązania sterownika Spark. Dodano następującą właściwość w Spark Interpreter oprawy i działa dobrze teraz ...

enter image description here

PS: Wygląda na to, kwestia ta pojawia się przede wszystkim w przypadku podłączenia do sieci VPN ... i mam połączyć się z siecią VPN

-2

Wygląda na błąd w Zeppelin 0.7.1. Działa poprawnie w wersji 0.7.2.

+1

Myślę, że jest to problem z konfiguracją i stanie się z każdą wersją Zeppelina. Widziałem to w Zeppelin 0.7.2 –

6

Tylko teraz mam rozwiązanie tego problemu dla Zeppelin-0.7.2:

głównej przyczyną jest: Spark próby ustawienia kontekście Hive, ale HDFS usługi nie działa, dlatego stają się nieważne i HiveContext rzucanie null wyjątek wskaźnik.

Rozwiązanie:
1. Setup Saprk Home [opcjonalne] i HDFS.
2. Uruchom usługę HDFS
3. Serwer zeppelin Restart
LUB
1. Przejdź do ustawień tłumacza Zeppelin.
2. Wybierz Spark Interpreter
3. zeppelin.spark.useHiveContext = false

+0

To działa doskonale dla mnie. –

+0

HiveContext zrobił to również dla mnie! –

+0

Drogi @RajeevRathor i @BenjaminBaron, nie zamierzam być niegrzeczny, ale jestem przekonany, że utrzymanie odpowiedzi służy temu samemu celowi co pisanie tych komentarzy. Po najechaniu kursorem na 'dodaj komentarz', wyskakujące okienko mówi:" Unikaj komentarzy typu "+1" lub "dziękuję". 'FYI, to rozwiązanie nie działa dla mnie. –

0

rozwiązany przez dodanie tej linii na szczycie w pliku common.sh w reż zeppelin-0.6.1 następnie bin

otwarty powszechne.sh i dodać polecenie w górnej części zestawu plików:

unset CLASSPATH

0
enterCaused by: java.net.ConnectException: Connection refused (Connection refused) 
     at java.net.PlainSocketImpl.socketConnect(Native Method) 
     at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350) 
     at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206) 
     at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188) 
     at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392) 
     at java.net.Socket.connect(Socket.java:589) 
     at org.apache.thrift.transport.TSocket.open(TSocket.java:182) 
     ... 74 more 
) 
     at org.apache.hadoop.hive.metastore.HiveMetaStoreClient.open(HiveMetaStoreClient.java:466) 
     at org.apache.hadoop.hive.metastore.HiveMetaStoreClient.<init>(HiveMetaStoreClient.java:236) 
     at org.apache.hadoop.hive.ql.metadata.SessionHiveMetaStoreClient.<init>(SessionHiveMetaStoreClient.java:74) 
     ... 71 more 
INFO [2017-11-20 17:51:55,288] ({pool-2-thread-4} SparkInterpreter.java[createSparkSession]:369) - Created Spark session with Hive support 
ERROR [2017-11-20 17:51:55,290] ({pool-2-thread-4} Job.java[run]:181) - Job failed code here 

Wygląda na to usługa Hive Metastore nie zaczęło. Możesz uruchomić usługę Metastore i spróbować ponownie.

0

Otrzymałem dokładnie ten sam wyjątek dla wersji zepelline 0.7.2 w oknie 7. Musiałem wprowadzić wiele zmian w konfiguracji, aby działało.

Najpierw zmień nazwę zeppelin-env.cmd.template na zeppelin-env.cmd. Dodaj zmienną env dla PYTHONPATH. Plik może znajdować się w folderze% ZEPPELIN_HOME%/conf.

set PYTHONPATH=%SPARK_HOME%\python;%SPARK_HOME%\python\lib\py4j-0.10.4-src.zip;%SPARK_HOME%\python\lib\pyspark.zip 

Otwórz zeppelin.cmd Lokalizacja% ZEPPELIN_HOME%/bin, aby dodać% SPARK_HOME% i% ZEPPELIN_HOME%. To będą pierwsze wiersze instrukcji. Wartość% SPARK_HOME% została skonfigurowana jako pusta, ponieważ korzystałem z wbudowanej biblioteki iskier. Dodano% ZEPPELIN_HOME%, aby upewnić się, że to środowisko jest skonfigurowane na początkowym etapie uruchamiania.

set SPARK_HOME= 
set ZEPPELIN_HOME=<PATH to zeppelin installed folder> 

Następnie musimy skopiować cały słoik i pySpark od do zeppeline folderze% spark_home% /.

cp %SPARK_HOME%/jar/*.jar %ZEPPELIN_HOME%/interpreter/spark 
cp %SPARK_HOME%/python/pyspark %ZEPPELIN_HOME%/interpreter/spark/pyspark 

Nie było rozpoczęcie interpreter.cmd podczas uzyskiwania dostępu do notebooka. Powodowało to wyjątek nullpointer. Otworzyłem dwa wiersze poleceń iw jednym cmd zacząłem zeppeline.cmd, aw drugim interpreter.cmd.

Musimy określić dwa dodatkowe port wejściowy i ścieżkę do zeppeline local_repo w linii poleceń. Możesz dostać ścieżkę do local_repo na stronie interpretatora iskry zeppeline. Użyj dokładnie tej samej ścieżki, aby uruchomić interpreter.cmd.

interpreter.cmd -d %ZEPPELIN_HOME%\interpreter\spark\ -p 5050 -l %ZEPPELIN_HOME%\local-repo\2D64VMYZE 

Host i port należy określić na stronie interpretatora iskier w zepelline ui. Wybierz opcję Connect to external Process Po utworzeniu wszystkich tych elementów konfiguracji, w następnym kroku możemy zapisać i ponownie uruchomić interpreter iskry. Utwórz nowy notatnik i wpisz sc.version. Publikuje wersję iskry. Zeppeline 0.7.2 nie obsługuje iskry 2.2.1