make spark verwendet die Datei / etc / hosts für die Bindung im YARN-Cluster-Modus

8

Lassen Sie ein Funke-Cluster-Setup auf einem Computer mit zwei Inet, einem öffentlichen anderen privaten. Die Datei / etc / hosts im Cluster hat die interne IP-Adresse aller anderen Maschinen im Cluster, so.

  

interner_ip FQDN

Wenn ich jedoch einen SparkContext über pyspark im YARN-Client-Modus ( pyspark --master yarn --deploy-mode client ) anfordere, bindet sich akka an die öffentliche IP-Adresse und es tritt ein Timeout auf.

%Vor%

Wie aus dem Protokoll ersichtlich, wird private IP vollständig ignoriert. Wie kann ich YARN und spark verwenden, um die private IP-Adresse zu verwenden, die in der hosts-Datei angegeben ist?

Der Cluster wurde mit Ambari (HDP 2.4) bereitgestellt.

    
HackToHell 08.11.2015, 06:33
quelle

2 Antworten

0

Dies ist derzeit ein Problem in Spark, die einzige Möglichkeit, Funken zu bekommen, um an die richtige Schnittstelle zu binden, ist die Verwendung von benutzerdefinierten Nameservern.

Spark sucht im Wesentlichen nach einem Hostnamen und verwendet die IP-Adresse, die er findet, um mit Akka zu binden. Problemumgehung besteht darin, eine benutzerdefinierte Bindungszone zu erstellen und einen Nameserver auszuführen.

Ссылка

    
HackToHell 18.05.2016, 10:26
quelle
1

+1 für die Frage.

Spark verwendet Akka für die Kommunikation.

Es ist also eher eine Akka Frage als Spark.

  

Wenn Sie Ihre Netzwerkschnittstelle an eine andere Adresse binden müssen -   verwenden akka.remote.netty.tcp.bind-Hostnamen und   akka.remote.netty.tcp.bind-Port-Einstellungen.

Ссылка

    
Tagar 27.04.2016 23:26
quelle