如何基於Jupyter notebook搭建Spark叢集開發環境

華為雲開發者社群發表於2021-10-12
摘要:本文介紹如何基於Jupyter notebook搭建Spark叢集開發環境。

本文分享自華為雲社群《基於Jupyter Notebook 搭建Spark叢集開發環境》,作者:apr鵬鵬。

一、概念介紹:

1、Sparkmagic:它是一個在Jupyter Notebook中的通過Livy伺服器 Spark REST與遠端Spark群集互動工作工具。Sparkmagic專案包括一組以多種語言互動執行Spark程式碼的框架和一些核心,可以使用這些核心將Jupyter Notebook中的程式碼轉換在Spark環境執行。

2、Livy:它是一個基於Spark的開源REST服務,它能夠通過REST的方式將程式碼片段或是序列化的二進位制程式碼提交到Spark叢集中去執行。它提供了以下這些基本功能:提交Scala、Python或是R程式碼片段到遠端的Spark叢集上執行,提交Java、Scala、Python所編寫的Spark作業到遠端的Spark叢集上執行和提交批處理應用在叢集中執行

二、基本框架為下圖所示:

如何基於Jupyter notebook搭建Spark叢集開發環境

三、準備工作:

具備提供Saprk叢集,自己可以搭建或者直接使用華為雲上服務,如MRS,並且在叢集上安裝Spark客戶端。同節點(可以是docker容器或者虛擬機器)安裝Jupyter Notebook和Livy,安裝包的路徑為:https://livy.incubator.apache.org/download/

四、配置並啟動Livy:

修改livy.conf 參考:https://enterprise-docs.anaconda.com/en/latest/admin/advanced/config-livy-server.html

新增如下配置:

livy.spark.master = yarn
livy.spark.deploy-mode = cluster
livy.impersonation.enabled = false
livy.server.csrf-protection.enabled = false
livy.server.launch.kerberos.keytab=/opt/workspace/keytabs/user.keytab
livy.server.launch.kerberos.principal=miner
livy.superusers=miner

修改livy-env.sh, 配置SPARK_HOME、HADOOP_CONF_DIR等環境變數

export JAVA_HOME=/opt/Bigdata/client/JDK/jdk
export HADOOP_CONF_DIR=/opt/Bigdata/client/HDFS/hadoop/etc/hadoop
export SPARK_HOME=/opt/Bigdata/client/Spark2x/spark
export SPARK_CONF_DIR=/opt/Bigdata/client/Spark2x/spark/conf
export LIVY_LOG_DIR=/opt/workspace/apache-livy-0.7.0-incubating-bin/logs
export LIVY_PID_DIR=/opt/workspace/apache-livy-0.7.0-incubating-bin/pids
export LIVY_SERVER_JAVA_OPTS="-Djava.security.krb5.conf=/opt/Bigdata/client/KrbClient/kerberos/var/krb5kdc/krb5.conf -Dzookeeper.server.principal=zookeeper/hadoop.hadoop.com -Djava.security.auth.login.config=/opt/Bigdata/client/HDFS/hadoop/etc/hadoop/jaas.conf -Xmx128m"

啟動Livy:

./bin/livy-server start

五、安裝Jupyter Notebook和sparkmagic

Jupyter Notebook是一個開源並且使用很廣泛專案,安裝流程不在此贅述

sparkmagic可以理解為在Jupyter Notebook中的一種kernel,直接pip install sparkmagic。注意安裝前系統必須具備gcc python-dev libkrb5-dev工具,如果沒有,apt-get install或者yum install安裝。安裝完以後會生成$HOME/.sparkmagic/config.json檔案,此檔案為sparkmagic的關鍵配置檔案,相容spark的配置。關鍵配置如圖所示

如何基於Jupyter notebook搭建Spark叢集開發環境

其中url為Livy服務的ip和埠,支援http和https兩種協議

六、新增sparkmagic kernel

PYTHON3_KERNEL_DIR="$(jupyter kernelspec list | grep -w "python3" | awk '{print $2}')"
KERNELS_FOLDER="$(dirname "${PYTHON3_KERNEL_DIR}")"
SITE_PACKAGES="$(pip show sparkmagic|grep -w "Location" | awk '{print $2}')"
cp -r ${SITE_PACKAGES}/sparkmagic/kernels/pysparkkernel ${KERNELS_FOLDER}

七、在Jupyter Notebook中執行spark程式碼驗證:

如何基於Jupyter notebook搭建Spark叢集開發環境

八、訪問Livy檢視當前session日誌:

如何基於Jupyter notebook搭建Spark叢集開發環境

 

點選關注,第一時間瞭解華為雲新鮮技術~

相關文章