2016-05-04 12 views
0

Ich versuche, SAP HANA Vora Installation auf HDP 2.3 mit Ambari 2.2 auf einem 5-Knoten-Cluster mit 1 Verwaltungsknoten, 1 Master-Knoten, 2 Arbeiterknoten und 1 Sprungbox-Knoten. Nach der Installation aller Vora-Dienste habe ich versucht, meine Installation zu validieren. Wie im SAP-HANA-Vora-Dokument muss ich eine Vora-Tabelle (Tabelle mit com.sap.spark.vora) von spark-sql erstellen, aber ich bekomme Exception. Stapeln Sie die Spur unten.SAP Hana Vora: Kann keine Vora-Tabelle erstellen

scala> import org.apache.spark.sql.SapSQLContext 
import org.apache.spark.sql.SapSQLContext 

scala> val vc = new SapSQLContext(sc) 
16/05/04 06:54:32 INFO SapSQLContext: SapSQLContext [version: 1.2.33] created 
vc: org.apache.spark.sql.SapSQLContext = [email protected] 

scala> val testsql = """ 
    | CREATE TABLE table001 (a1 double, a2 int, a3 string) 
    | USING com.sap.spark.vora 
    | OPTIONS (tablename "table001", paths "/user/vora/test.csv")""" 
testsql: String = 
" 
CREATE TABLE table001 (a1 double, a2 int, a3 string) 
USING com.sap.spark.vora 
OPTIONS (tablename "table001", paths "/user/vora/test.csv")" 

scala> vc.sql(testsql) 
OperationException{statusCode=500, statusMessage='Internal Server Error', statusContent='No cluster leader'} 
     at com.ecwid.consul.v1.health.HealthConsulClient.getHealthServices(HealthConsulClient.java:96) 
     at com.ecwid.consul.v1.health.HealthConsulClient.getHealthServices(HealthConsulClient.java:80) 
     at com.ecwid.consul.v1.ConsulClient.getHealthServices(ConsulClient.java:324) 
     at com.sap.spark.vora.discovery.ConsulDiscoveryClient$ConsulDiscoveryClient.lookupService(ConsulDiscoveryClient.scala:45) 
     at com.sap.spark.vora.config.VoraConfiguration$.apply(VoraConfiguration.scala:37) 
     at com.sap.spark.vora.DefaultSource.buildConfiguration(DefaultSource.scala:403) 
     at com.sap.spark.vora.DefaultSource.createRelation(DefaultSource.scala:149) 
     at org.apache.spark.sql.execution.datasources.CreateTableUsingTemporaryAwareCommand.resolveDataSource(CreateTableUsingTemporaryAwareCommand.scala:73) 
     at org.apache.spark.sql.execution.datasources.CreateTableUsingTemporaryAwareCommand.run(CreateTableUsingTemporaryAwareCommand.scala:31) 
     at org.apache.spark.sql.execution.ExecutedCommand.sideEffectResult$lzycompute(commands.scala:57) 
     at org.apache.spark.sql.execution.ExecutedCommand.sideEffectResult(commands.scala:57) 
     at org.apache.spark.sql.execution.ExecutedCommand.doExecute(commands.scala:69) 
     at org.apache.spark.sql.execution.SparkPlan$$anonfun$execute$5.apply(SparkPlan.scala:140) 
     at org.apache.spark.sql.execution.SparkPlan$$anonfun$execute$5.apply(SparkPlan.scala:138) 
     at org.apache.spark.rdd.RDDOperationScope$.withScope(RDDOperationScope.scala:147) 
     at org.apache.spark.sql.execution.SparkPlan.execute(SparkPlan.scala:138) 
     at org.apache.spark.sql.SQLContext$QueryExecution.toRdd$lzycompute(SQLContext.scala:933) 
     at org.apache.spark.sql.SQLContext$QueryExecution.toRdd(SQLContext.scala:933) 
     at org.apache.spark.sql.DataFrame.<init>(DataFrame.scala:144) 
     at org.apache.spark.sql.DataFrame.<init>(DataFrame.scala:129) 
     at org.apache.spark.sql.DataFrame$.apply(DataFrame.scala:51) 
     at org.apache.spark.sql.SQLContext.sql(SQLContext.scala:725) 
     at $iwC$$iwC$$iwC$$iwC$$iwC$$iwC$$iwC$$iwC.<init>(<console>:27) 
     at $iwC$$iwC$$iwC$$iwC$$iwC$$iwC$$iwC.<init>(<console>:32) 
     at $iwC$$iwC$$iwC$$iwC$$iwC$$iwC.<init>(<console>:34) 
     at $iwC$$iwC$$iwC$$iwC$$iwC.<init>(<console>:36) 
     at $iwC$$iwC$$iwC$$iwC.<init>(<console>:38) 
     at $iwC$$iwC$$iwC.<init>(<console>:40) 
     at $iwC$$iwC.<init>(<console>:42) 
     at $iwC.<init>(<console>:44) 
     at <init>(<console>:46) 
     at .<init>(<console>:50) 
     at .<clinit>(<console>) 
     at .<init>(<console>:7) 
     at .<clinit>(<console>) 
     at $print(<console>) 
     at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) 
     at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) 
     at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) 
     at java.lang.reflect.Method.invoke(Method.java:497) 
     at org.apache.spark.repl.SparkIMain$ReadEvalPrint.call(SparkIMain.scala:1065) 
     at org.apache.spark.repl.SparkIMain$Request.loadAndRun(SparkIMain.scala:1340) 
     at org.apache.spark.repl.SparkIMain.loadAndRunReq$1(SparkIMain.scala:840) 
     at org.apache.spark.repl.SparkIMain.interpret(SparkIMain.scala:871) 
     at org.apache.spark.repl.SparkIMain.interpret(SparkIMain.scala:819) 
     at org.apache.spark.repl.SparkILoop.reallyInterpret$1(SparkILoop.scala:857) 
     at org.apache.spark.repl.SparkILoop.interpretStartingWith(SparkILoop.scala:902) 
     at org.apache.spark.repl.SparkILoop.command(SparkILoop.scala:814) 
     at org.apache.spark.repl.SparkILoop.processLine$1(SparkILoop.scala:657) 
     at org.apache.spark.repl.SparkILoop.innerLoop$1(SparkILoop.scala:665) 
     at org.apache.spark.repl.SparkILoop.org$apache$spark$repl$SparkILoop$$loop(SparkILoop.scala:670) 
     at org.apache.spark.repl.SparkILoop$$anonfun$org$apache$spark$repl$SparkILoop$$process$1.apply$mcZ$sp(SparkILoop.scala:997) 
     at org.apache.spark.repl.SparkILoop$$anonfun$org$apache$spark$repl$SparkILoop$$process$1.apply(SparkILoop.scala:945) 
     at org.apache.spark.repl.SparkILoop$$anonfun$org$apache$spark$repl$SparkILoop$$process$1.apply(SparkILoop.scala:945) 
     at scala.tools.nsc.util.ScalaClassLoader$.savingContextLoader(ScalaClassLoader.scala:135) 
     at org.apache.spark.repl.SparkILoop.org$apache$spark$repl$SparkILoop$$process(SparkILoop.scala:945) 
     at org.apache.spark.repl.SparkILoop.process(SparkILoop.scala:1059) 
     at org.apache.spark.repl.Main$.main(Main.scala:31) 
     at org.apache.spark.repl.Main.main(Main.scala) 
     at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) 
     at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) 
     at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) 
     at java.lang.reflect.Method.invoke(Method.java:497) 
     at org.apache.spark.deploy.SparkSubmit$.org$apache$spark$deploy$SparkSubmit$$runMain(SparkSubmit.scala:685) 
     at org.apache.spark.deploy.SparkSubmit$.doRunMain$1(SparkSubmit.scala:180) 
     at org.apache.spark.deploy.SparkSubmit$.submit(SparkSubmit.scala:205) 
     at org.apache.spark.deploy.SparkSubmit$.main(SparkSubmit.scala:120) 
     at org.apache.spark.deploy.SparkSubmit.main(SparkSubmit.scala) 

Bitte helfen Sie mir mit diesem Problem ...

Antwort

0

Die Fehlermeldung No cluster leader zeigt an, dass die Vora Discovery Service nicht ordnungsgemäß ausgeführt wird. Sie benötigen mindestens 3 Discovery Server auf 3 verschiedenen Knoten und Discover Clients auf allen anderen Knoten (führen Sie niemals Client und Server auf demselben Knoten aus; sie schließen sich gegenseitig aus, da sie den gleichen Port 8500 verwenden). Die Discovery-Server wählen einen Anführer untereinander - der Nachricht zufolge ist dieser Schritt nicht erfolgt. Wahrscheinliche Ursache ist, dass < 3 Server korrekt ausgeführt werden.

Um das Problem zu lösen, führen Sie mindestens 3 Discovery-Server aus. Da Sie einen Master und zwei Worker haben, möchten Sie wahrscheinlich einen Discovery-Server auf jedem der drei Knoten ausführen (keine Discovery-Clients auf Knoten, auf denen Discovery-Server ausgeführt werden). Die Sprungbox sollte einen DiscoveryClinet bekommen. (‚Wie zu‘ Abschnitt -> Wie Sie den Status des Vora Discovery-Dienstes überprüfen?) Informationen zur Fehlerbehebung finden Sie in die Vora Installation and Administration Guide und die Troubleshooting Blog sehen

+0

Hallo Frank, Vielen Dank für Ihre schnelle Antwort auf diese. Ich habe jedoch überprüft, dass ich den Vora Discovery-Dienst auf allen Knoten installiert habe (auf 3 Knoten im Servermodus und auf 2 im Clientmodus). Bei keinem der Knoten wird der Dienst sowohl im Server- als auch im Clientmodus installiert. Auch alle Knoten und Dienste sind gut und laufen gut. Das einzige Problem, das ich sehen kann, ist, dass unter den 3 Server-Knoten, keiner der Knoten wurde zu einem Führer (Führer Wahl nicht geschehen oder Knoten versuchen, das Split-Brain-Szenario nach Konsul Dokumentation zu verhindern). –

+0

Ich habe sogar versucht, den Cluster manuell zu starten, aber half nicht. –

+0

Es scheint, dass die 3 Discovery-Server nicht korrekt installiert sind. Könnten Sie bitte ein Ticket mit SAP in der Komponente HAN-VO öffnen. –