2016-12-02 1 views
0

Ich versuche memsql-spark-connector testen und dafür habe ich einen MemSQL-Cluster-Knoten-Cluster auf AWS (https://docs.memsql.com/docs/quick-start-with-amazon-webservices) erstellt.Remote-Zugriff auf Blatt-Knoten bei Verwendung von Memsql-Funke-Connector

Auf meinem Laptop möchte ich eine Spark-Anwendung im lokalen Modus ausführen. Diese Anwendung sollte einfach Dataframe für eine Tabelle erstellen und alle Zeilen sammeln. Hier ist der Code:

val conf = new SparkConf() 
    .setAppName("Test App") 
    .setMaster("local[*]") 
    .set("memsql.host", "x.x.x.x") 
    .set("memsql.port", "3306") 
    .set("memsql.user", "root") 
    .set("memsql.password", "1234") 
    .set("memsql.defaultDatabase", "dataframes_test") 

val sc = new SparkContext(conf) 

val memsql = new MemSQLContext(sc) 

val df = memsql.table("person") 

df.collect().foreach(println(_)) 

wo x.x.x.x ist die Adresse meiner AWS-Instanz.

Das Problem ist, obwohl ich von meinem Laptop eine Verbindung zum MemSQL-Server herstellen kann, memsql-spark-connector versucht, Blattknoten direkt zugreifen (d. H. Verbindung zu Port 3307 statt 3306). Und wenn dies geschieht bekomme ich folgende Fehlermeldung:

java.sql.SQLException: Access denied for user 'root'@'108.208.196.149' (using password: YES) 

Aber root Benutzer tatsächlich alle Berechtigungen haben:

memsql> show grants for 'root'@'%'; 
+--------------------------------------------------------------------------------------------------------------------------------+ 
| Grants for [email protected]%                            | 
+--------------------------------------------------------------------------------------------------------------------------------+ 
| GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY PASSWORD '*A49656EC00D74D3524072F3452C1FBA7A1F3B561' WITH GRANT OPTION | 
+--------------------------------------------------------------------------------------------------------------------------------+ 
1 row in set (0.00 sec) 

Ist es möglich, Berechtigungen Blattknoten zu gewähren, so dass diese Verbindung zu x.x.x.x:3307 erfolgreich auch?

Ich weiß, dass es wahrscheinlich nicht so ist, wie es entworfen wurde, aber ich möchte es nur zum Testen machen. Es ist praktisch zu debuggen, wenn alles in einer einzigen JVM ist, und ich möchte mich jetzt nicht um die Installation von Spark kümmern. Ich könnte MemSQL lokal installieren, um mein Problem zu lösen, aber ich kann das nicht auf Mac machen (ist das richtig, BTW?).

Jede Hilfe wird geschätzt!


UPDATE: habe gerade versucht, lokal auf dem Server zu verbinden und immer noch nicht funktioniert:

ist richtig, es ist eine Instanz-ID auf AWS
[email protected]:~$ memsql -P 3307 -u root -p 
Enter password: 
ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: YES) 

Passwort Ich Bereitstellung, so sehr schwer einen Fehler zu machen.

Dies bedeutet, dass es nicht funktionieren würde, selbst wenn ich Spark Executor auf der gleichen Instanz mit dem Blattknoten hätte. Fühlt sich an, als ob etwas mit meinem Setup nicht stimmt, aber ich habe tatsächlich keine Einstellungen geändert, alle sind Standardwerte.

Sollen Masterknoten und Blattknoten dieselben Anmeldeinformationen verwenden? Gibt es eine Möglichkeit, sie separat für das Blatt einzurichten?

Antwort

0

Dieser Fehler bedeutet, dass die Anmeldung verweigert wurde, d. H. Inkorrekter Benutzername/falsches Passwort (nicht dass der Benutzer nicht genügend Berechtigungen hat). Stellen Sie sicher, dass das Kennwort, das Sie im Zündungskonnektor verwenden, mit dem Kennwort auf allen Knoten übereinstimmt.

+0

Es passt überein. Ich kann nicht einmal lokal mit 'memsql -P 3307 -u root -p' verbinden, indem ich das gleiche Passwort benutze, das ich überall benutze (bei AWS ist es die Instanz-ID, daher ist es sehr schwer, einen Fehler zu machen). Sollen Masterknoten und Blattknoten dieselben Anmeldeinformationen verwenden? –

+1

Ja, das bedeutet, dass der Benutzer/das Passwort, den Sie verwenden möchten, auf diesem Knoten falsch ist. Beachten Sie, dass jeder Knoten über eigene unabhängige Anmeldeinformationen verfügt. In diesem Fall haben Ihre Master- und Blattknoten offenbar unterschiedliche Kennwörter. –

+0

OK, ich habe es herausgefunden. Das Passwort für den Blattknoten ist leer. Offenbar wird bei der Installation von AWS Marketplace das standardmäßige root-Passwort für den Master-Knoten geändert, nicht jedoch für den Blattknoten. Seltsam, aber es ist was es ist. Danke für die Hilfe! –

Verwandte Themen