À propos de localhost: 4040 n'est pas accessible après l'exécution de Spark avec Docker

Seule la Spark Web UI de Spark (localhost: 4040) n'a pas pu se connecter pour une raison quelconque, j'ai donc recherché diverses choses, mais il n'y a pas de solution, et si vous n'êtes pas habitué, les personnes qui ont les mêmes problèmes Je pensais qu'il y en avait, alors je le posterai pour la première fois. De plus, en raison d'une erreur survenue pendant le travail, nous ne publions aucun code, etc. Merci de votre compréhension.

environnement

Pont conteneur Python et conteneur Spark (connexion Woker) avec Docker Les environnements Pyspark et java sont installés dans les deux environnements.

Référence pour la construction d'environnement

Jusqu'à ce que vous exécutiez pyspark en élevant un maître et un travailleur de Spark avec docker-compose https://qiita.com/hrkt/items/fe9b1162f7a08a07e812

objectif

Je veux aller dans le Docker Python (docker exec ...), faire un spark-submit et me connecter à localhost: 4040 pour vérifier l'interface Web pendant le traitement.

À propos du problème

Après le démarrage, localhost: 8080 se connecte, mais 4040 ne peut pas se connecter pour une raison quelconque

Solution

  1. Accès à localhost: 4040 uniquement lorsque Spark est en cours de traitement
  2. J'ai écrit le port 4040: 4040 dans le conteneur Spark de docker-compose.yml, mais j'ai dû écrire le port 4040: 4040 du côté Python qui gère les Jobs. (C'est le cas cette fois)

Résumé

Je ne pouvais pas du tout comprendre en lisant StackOverFlow, etc., mais quand j'ai demandé à mes aînés, cela a été résolu d'un seul coup. Je veux être plus fort dans l'infrastructure.

prime

J'exécutais l'exemple de code dans spark, mais quand je df.show () `La tâche initiale n'a accepté aucune ressource; vérifiez l'interface utilisateur de votre cluster pour vous assurer que les travailleurs sont enregistrés et disposent de ressources suffisantes. J'ai changé les paramètres de mémoire car je n'avais pas assez de ressources, mais je n'ai pas pu le résoudre.

J'ai emprunté l'exemple de code d'ici.

Gérer les arguments dans les fichiers de script PySpark https://blog.amedama.jp/entry/2018/03/17/113516

Exemple de code référencé

from pyspark import SparkConf
from pyspark import SparkContext
from pyspark.sql import SparkSession
def main():
    conf = SparkConf()
    conf.setAppName('example')
    sc = SparkContext(conf=conf)
    spark = SparkSession(sc)
    df = spark.sql('SELECT "Hello, World!" AS message')
    df.show()

Solution

conf = SparkConf().setMaster('local')


Recommended Posts

À propos de localhost: 4040 n'est pas accessible après l'exécution de Spark avec Docker
Résolution du problème selon lequel les commandes Rails ne pouvaient pas être utilisées après l'utilisation de l'environnement de développement avec Docker
À propos du fait que le résumé de la torche peut être vraiment utilisé lors de la construction d'un modèle avec Pytorch
À propos du fait que l'objet recompilé peut être utilisé pour le modèle re.match
Correction d'un bug où node.surface ne pouvait pas être obtenu avec python3 + mecab
Matières qui ne peuvent pas être importées avec sklearn
À propos de la question qui s'inquiétait de l'erreur d'échantillonnage
Vous ne pouvez pas changer aspect_ratio avec sympy.plotting? À propos de l'affaire
Le problème que la commande ifconfig ne peut pas être utilisée
Solution de contournement pour Flask-Mail n'envoyant pas de courrier japonais UTF-8 (Python3)
À propos du fait que le contenu de l'impression Python n'est pas visible dans les journaux du docker
À propos du cas où elle est devenue une police chinoise après la mise à jour avec Linux (méthode de correction)
Traiter l'erreur selon laquelle une erreur de récupération HTTP se produit dans gpg et la clé ne peut pas être obtenue
Options lors de l'installation de bibliothèques qui ne peuvent pas être envoyées dans pyenv
Solution lorsque l'image ne peut pas être affichée avec tkinter [python]
Exemples et solutions qui ne peuvent pas être optimisés avec scipy.optimize.least_squares
J'ai étudié le prétraitement qui peut être fait avec PyCaret