Odesílání a správa úloh v clusteru Apache Spark™ ve službě HDInsight v AKS
Důležité
Tato funkce je aktuálně dostupná jako ukázková verze. Doplňkové podmínky použití pro Microsoft Azure Preview obsahují další právní podmínky, které se vztahují na funkce Azure, které jsou v beta verzi, ve verzi Preview nebo ještě nejsou vydány v obecné dostupnosti. Informace o této konkrétní verzi Preview najdete v tématu Azure HDInsight o službě AKS ve verzi Preview. Pokud máte dotazy nebo návrhy funkcí, odešlete prosím žádost na AskHDInsight s podrobnostmi a sledujte nás o dalších aktualizacích v komunitě Azure HDInsight.
Po vytvoření clusteru může uživatel k odesílání a správě úloh používat různá rozhraní.
- s využitím Jupyteru
- pomocí Zeppelinu
- pomocí ssh (spark-submit)
Použití Jupyteru
Požadavky
Cluster Apache Spark™ ve službě HDInsight v AKS. Další informace najdete v tématu Vytvoření clusteru Apache Spark.
Jupyter Notebook je interaktivní prostředí poznámkového bloku, které podporuje různé programovací jazyky.
Vytvoříte poznámkový blok Jupyter Notebooks.
Přejděte na stránku clusteru Apache Spark™ a otevřete kartu Přehled . Klikněte na Jupyter, zobrazí se žádost o ověření a otevření webové stránky Jupyter.
Na webové stránce Jupyter vyberte Nový > PySpark a vytvořte poznámkový blok.
Vytvořil a otevřel se nový poznámkový blok s názvem
Untitled(Untitled.ipynb)
.Poznámka:
Když k vytvoření poznámkového bloku použijete jádro PySpark nebo Python 3, relace Sparku se automaticky vytvoří při spuštění první buňky kódu. Není potřeba relaci vytvářet explicitně.
Do prázdné buňky poznámkového bloku Jupyter Notebook vložte následující kód a stisknutím kombinace kláves SHIFT+ENTER kód spusťte. Další ovládací prvky v Jupyteru najdete tady .
%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'])
Vykreslení grafu s osou X a Y s platem a věkem
Ve stejném poznámkovém bloku vložte následující kód do prázdné buňky jupyter Notebook a stisknutím shift + ENTER kód spusťte.
%matplotlib inline import pandas as pd import matplotlib.pyplot as plt plt.plot(age_series,salary_series) plt.show()
Uložení poznámkového bloku
V řádku nabídek poznámkového bloku přejděte na Příkaz Uložit > soubor a Kontrolní bod.
Vypněte poznámkový blok a uvolněte prostředky clusteru: z řádku nabídek poznámkového bloku přejděte na > Soubor Zavřít a zastavit. Můžete také spustit libovolný poznámkový blok ve složce s příklady.
Použití poznámkových bloků Apache Zeppelin
Clustery Apache Spark ve službě HDInsight v AKS zahrnují poznámkové bloky Apache Zeppelin. Pomocí poznámkových bloků můžete spouštět úlohy Apache Sparku. V tomto článku se dozvíte, jak používat poznámkový blok Zeppelin ve službě HDInsight v clusteru AKS.
Požadavky
Cluster Apache Spark ve službě HDInsight v AKS. Pokyny najdete v tématu Vytvoření clusteru Apache Spark.
Spuštění poznámkového bloku Apache Zeppelin
Přejděte na stránku Přehled clusteru Apache Spark a z řídicích panelů clusteru vyberte Poznámkový blok Zeppelin. Zobrazí výzvu k ověření a otevření stránky Zeppelin.
Vytvořte nový poznámkový blok. V podokně záhlaví přejděte do poznámkového bloku > Vytvořit novou poznámku. Ujistěte se, že záhlaví poznámkového bloku zobrazuje stav připojení. Označuje zelenou tečku v pravém horním rohu.
V poznámkovém bloku Zeppelin spusťte následující kód:
%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'])
Vyberte tlačítko Přehrát pro odstavec a spusťte fragment kódu. Stav v pravém rohu odstavce by měl pocházet od READY, PENDING, RUNNING to FINISHED. Výstup se zobrazí v dolní části stejného odstavce. Snímek obrazovky vypadá jako na následujícím obrázku:
Výstup:
Použití úloh odesílání Sparku
Pomocí následujícího příkazu #vim samplefile.py vytvořte soubor.
Tento příkaz otevře soubor vim.
Do souboru vim vložte následující kód.
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'])
Uložte soubor pomocí následující metody.
- Stiskněte řídicí tlačítko.
- Zadejte příkaz.
:wq
Spuštěním následujícího příkazu spusťte úlohu.
/spark-submit --master yarn --deploy-mode cluster <filepath>/samplefile.py
Monitorování dotazů v clusteru Apache Spark ve službě HDInsight v AKS
Uživatelské rozhraní historie Sparku
Na kartě Přehled klikněte na uživatelské rozhraní serveru historie Sparku.
Vyberte nedávné spuštění z uživatelského rozhraní pomocí stejného ID aplikace.
Prohlédněte si cyklické cykly a fáze úlohy v uživatelském rozhraní serveru Historie Sparku.
Uživatelské rozhraní relace Livy
Pokud chcete otevřít uživatelské rozhraní relace Livy, zadejte do prohlížeče následující příkaz.
https://<CLUSTERNAME>.<CLUSTERPOOLNAME>.<REGION>.projecthilo.net/p/livy/ui
Kliknutím na možnost ovladače v části Protokoly zobrazte protokoly ovladačů.
Uživatelské rozhraní Yarn
Na kartě Přehled klikněte na Yarn a otevřete uživatelské rozhraní Yarn.
Úlohu, kterou jste nedávno spustili, můžete sledovat podle stejného ID aplikace.
Kliknutím na ID aplikace v Yarn zobrazíte podrobné protokoly úlohy.
Reference
- Názvy open source projektů Apache, Apache Spark, Apache Spark a přidružené jsou ochranné známkyslužby Apache Software Foundation (ASF).