Partage via


Envoyer et gérer des travaux sur un cluster Apache Spark™ dans HDInsight sur AKS

Important

Azure HDInsight sur AKS a été mis hors service le 31 janvier 2025. En savoir plus avec cette annonce.

Vous devez migrer vos charges de travail vers Microsoft Fabric ou un produit Azure équivalent pour éviter l’arrêt brusque de vos charges de travail.

Important

Cette fonctionnalité est actuellement en préversion. Les Conditions d’utilisation supplémentaires pour les préversions Microsoft Azure incluent des termes juridiques supplémentaires qui s’appliquent aux fonctionnalités Azure en version bêta, en préversion ou qui ne sont pas encore publiées en disponibilité générale. Pour plus d’informations sur cette préversion spécifique, consultez informations sur Azure HDInsight sur AKS en préversion. Pour des questions ou des suggestions de fonctionnalités, envoyez une demande sur AskHDInsight avec les détails et suivez-nous pour plus de mises à jour sur Communauté Azure HDInsight.

Une fois le cluster créé, l’utilisateur peut utiliser différentes interfaces pour envoyer et gérer des travaux par

  • utilisation de Jupyter
  • utilisation de Zeppelin
  • à l’aide de ssh (spark-submit)

Utilisation de Jupyter

Conditions préalables

Un cluster Apache Spark™ sur HDInsight sur AKS. Pour plus d’informations, consultez Créer un cluster Apache Spark.

Jupyter Notebook est un environnement de notebook interactif qui prend en charge différents langages de programmation.

Créer un notebook Jupyter

  1. Accédez à la page du cluster Apache Spark™ et ouvrez l’onglet Vue d’ensemble Vue d’ensemble. Cliquez sur Jupyter, il vous demande de vous authentifier et d’ouvrir la page web Jupyter.

    Capture d’écran de la sélection du bloc-notes Jupyter.

  2. Dans la page web de Jupyter, cliquez sur "Nouveau" > PySpark pour créer un notebook.

    Capture d’écran de la nouvelle page PySpark.

    Un bloc-notes créé et ouvert avec le nom Untitled(Untitled.ipynb).

    Note

    En utilisant le noyau PySpark ou Python 3 pour créer un notebook, la session Spark est automatiquement créée pour vous lorsque vous exécutez la première cellule de code. Vous n’avez pas besoin de créer explicitement la session.

  3. Collez le code suivant dans une cellule vide du bloc-notes Jupyter, puis appuyez sur Maj + Entrée pour exécuter le code. Consultez ici pour plus de contrôles sur Jupyter.

    Capture d’écran de la page PySpark avec le contenu.

    %matplotlib inline
    import pandas as pd
    import matplotlib.pyplot as plt
    data1 = [22,40,10,50,70]
    s1 = pd.Series(data1)   #One-dimensional ndarray with axis labels (including time series).
    
    data2 = data1
    index = ['John','sam','anna','smith','ben']
    s2 = pd.Series(data2,index=index)
    
    data3 = {'John':22, 'sam':40, 'anna':10,'smith':50,'ben':70}
    s3 = pd.Series(data3)
    
    s3['jp'] = 32     #insert a new row
    s3['John'] = 88
    
    names = ['John','sam','anna','smith','ben']
    ages = [10,40,50,48,70]
    name_series = pd.Series(names)
    age_series = pd.Series(ages)
    
    data_dict = {'name':name_series, 'age':age_series}
    dframe = pd.DataFrame(data_dict)   
    #create a pandas DataFrame from dictionary
    
    dframe['age_plus_five'] = dframe['age'] + 5   
    #create a new column
    dframe.pop('age_plus_five')
    #dframe.pop('age')
    
    salary = [1000,6000,4000,8000,10000]
    salary_series = pd.Series(salary)
    new_data_dict = {'name':name_series, 'age':age_series,'salary':salary_series}
    new_dframe = pd.DataFrame(new_data_dict)
    new_dframe['average_salary'] = new_dframe['age']*90
    
    new_dframe.index = new_dframe['name']
    print(new_dframe.loc['sam'])
    
  4. Tracer un graphique avec Salaire et âge comme axes X et Y

  5. Dans le même bloc-notes, collez le code suivant dans une cellule vide du bloc-notes Jupyter, puis appuyez sur Maj + Entrée pour exécuter le code.

    %matplotlib inline
    import pandas as pd
    import matplotlib.pyplot as plt
    
    plt.plot(age_series,salary_series)
    plt.show()
    

    Capture d’écran de la sortie du graphique.

Enregistrer le bloc-notes

  1. Dans la barre de menus du bloc-notes, accédez à Fichier > Enregistrer et Point de contrôle.

  2. Arrêtez le bloc-notes pour libérer les ressources du cluster : dans la barre de menus du bloc-notes, accédez à Fichier > Fermer et Arrêter. Vous pouvez également exécuter l’un des blocs-notes sous le dossier exemples.

    Capture d’écran de la façon de sauvegarder les carnets.

Utilisation de notebooks Apache Zeppelin

Les clusters Apache Spark sur AKS dans le service HDInsight incluent des notebooks Apache Zeppelin. Utilisez les notebooks pour exécuter des travaux Apache Spark. Dans cet article, vous allez apprendre à utiliser le notebook Zeppelin sur un cluster HDInsight sur AKS.

Conditions préalables

Un cluster Apache Spark sur HDInsight sur AKS. Pour obtenir des instructions, consultez Créer un cluster Apache Spark.

Lancer un notebook Apache Zeppelin

  1. Accédez à la page Vue d’ensemble du cluster Apache Spark et sélectionnez Bloc-notes Zeppelin dans les tableaux de bord du cluster. Il invite à s’authentifier et à ouvrir la page Zeppelin.

    Capture d’écran de la sélection de Zeppelin.

  2. Créez un bloc-notes. Dans le volet d’en-tête, accédez à Notebook > Créer une note. Vérifiez que l’en-tête du bloc-notes affiche le statut connecté. Il désigne un point vert dans le coin supérieur droit.

    Capture d’écran de la création d’un bloc-notes Zeppelin.

  3. Exécutez le code suivant dans Zeppelin Notebook :

    %livy.pyspark
    import pandas as pd
    import matplotlib.pyplot as plt
    data1 = [22,40,10,50,70]
    s1 = pd.Series(data1)   #One-dimensional ndarray with axis labels (including time series).
    
    data2 = data1
    index = ['John','sam','anna','smith','ben']
    s2 = pd.Series(data2,index=index)
    
    data3 = {'John':22, 'sam':40, 'anna':10,'smith':50,'ben':70}
    s3 = pd.Series(data3)
    
    s3['jp'] = 32     #insert a new row
    
    s3['John'] = 88
    
    names = ['John','sam','anna','smith','ben']
    ages = [10,40,50,48,70]
    name_series = pd.Series(names)
    age_series = pd.Series(ages)
    
    data_dict = {'name':name_series, 'age':age_series}
    dframe = pd.DataFrame(data_dict)   #create a pandas DataFrame from dictionary
    
    dframe['age_plus_five'] = dframe['age'] + 5   #create a new column
    dframe.pop('age_plus_five')
    #dframe.pop('age')
    
    salary = [1000,6000,4000,8000,10000]
    salary_series = pd.Series(salary)
    new_data_dict = {'name':name_series, 'age':age_series,'salary':salary_series}
    new_dframe = pd.DataFrame(new_data_dict)
    new_dframe['average_salary'] = new_dframe['age']*90
    
    new_dframe.index = new_dframe['name']
    print(new_dframe.loc['sam'])
    
  4. Sélectionnez le bouton Lire pour que le paragraphe exécute l’extrait de code. L’état dans le coin supérieur droit du paragraphe doit passer de « READY », « PENDING », « RUNNING » à « FINISHED ». La sortie s’affiche au bas du même paragraphe. La capture d’écran ressemble à l’image suivante :

    Capture d’écran de l’exécution du bloc-notes Zeppelin.

    Sortie:

    Capture d’écran de la sortie du bloc-notes Zeppelin.

Utilisation des soumissions Spark

  1. Créez un fichier à l’aide de la commande suivante « #vim samplefile.py »

  2. Cette commande ouvre le fichier vim

  3. Collez le code suivant dans le fichier vim

    import pandas as pd
    import matplotlib.pyplot as plt
    
    From pyspark.sql import SparkSession
    Spark = SparkSession.builder.master('yarn').appName('SparkSampleCode').getOrCreate()
    # Initialize spark context
    data1 = [22,40,10,50,70]
    s1 = pd.Series(data1)   #One-dimensional ndarray with axis labels (including time series).
    
    data2 = data1
    index = ['John','sam','anna','smith','ben']
    s2 = pd.Series(data2,index=index)
    
    data3 = {'John':22, 'sam':40, 'anna':10,'smith':50,'ben':70}
     s3 = pd.Series(data3)
    
    s3['jp'] = 32     #insert a new row
    
    s3['John'] = 88
    
    names = ['John','sam','anna','smith','ben']
    ages = [10,40,50,48,70]
    name_series = pd.Series(names)
    age_series = pd.Series(ages)
    
    data_dict = {'name':name_series, 'age':age_series}
    dframe = pd.DataFrame(data_dict)   #create a pandas DataFrame from dictionary
    
    dframe['age_plus_five'] = dframe['age'] + 5   #create a new column
    dframe.pop('age_plus_five')
    #dframe.pop('age')
    
    salary = [1000,6000,4000,8000,10000]
    salary_series = pd.Series(salary)
    new_data_dict = {'name':name_series, 'age':age_series,'salary':salary_series}
    new_dframe = pd.DataFrame(new_data_dict)
    new_dframe['average_salary'] = new_dframe['age']*90
    
    new_dframe.index = new_dframe['name']
    print(new_dframe.loc['sam'])
    
  4. Enregistrez le fichier avec la méthode suivante.

    1. Appuyez sur le bouton Échappement
    2. Entrez la commande :wq
  5. Exécutez la commande suivante pour exécuter le travail.

    /spark-submit --master yarn --deploy-mode cluster <filepath>/samplefile.py

    Capture d’écran montrant comment exécuter un travail d’envoi Spark.

Surveiller les requêtes sur un cluster Apache Spark dans HDInsight sur AKS

Interface utilisateur de l’historique Spark

  1. Cliquez sur l’interface utilisateur du serveur d’historique Spark dans l’onglet Vue d’ensemble.

    capture d’écran montrant l’interface utilisateur Spark.

  2. Sélectionnez l’exécution récente à partir de l’interface utilisateur à l’aide du même ID d’application.

    Capture d’écran montrant comment exécuter l’interface utilisateur Spark.

  3. Affichez le Graphe Dirigé Acyclique et les étapes de la tâche dans l'interface utilisateur du serveur Spark History.

    Capture d’écran du cycle DAG.

de l’interface utilisateur de session Livy

  1. Pour ouvrir l’interface utilisateur de session Livy, tapez la commande suivante dans votre navigateur https://<CLUSTERNAME>.<CLUSTERPOOLNAME>.<REGION>.projecthilo.net/p/livy/ui

    Capture d’écran de l’ouverture de l’interface utilisateur de session Livy.

  2. Affichez les journaux du pilote en cliquant sur l’option de pilote sous journaux.

de l’interface utilisateur Yarn

  1. Dans l’onglet Vue d’ensemble, cliquez sur Yarn et ouvrez l’interface utilisateur Yarn.

    Capture d’écran de la sélection de l’interface utilisateur Yarn.

  2. Vous pouvez suivre le travail que vous avez récemment exécuté par le même ID d’application.

  3. Cliquez sur l’ID d’application dans Yarn pour afficher les journaux détaillés du travail.

    afficher les journaux.

Référence