写点什么

如何基于 Jupyter notebook 搭建 Spark 集群开发环境

发布于: 刚刚

摘要:本文介绍如何基于 Jupyter notebook 搭建 Spark 集群开发环境。

 

本文分享自华为云社区《基于Jupyter Notebook 搭建Spark集群开发环境》,作者:apr 鹏鹏。

一、概念介绍:


1、Sparkmagic:它是一个在 JupyterNotebook 中的通过 Livy 服务器 Spark REST 与远程 Spark 群集交互工作工具。Sparkmagic 项目包括一组以多种语言交互运行 Spark 代码的框架和一些内核,可以使用这些内核将 Jupyter Notebook 中的代码转换在 Spark 环境运行。


2、Livy:它是一个基于 Spark 的开源 REST 服务,它能够通过 REST 的方式将代码片段或是序列化的二进制代码提交到 Spark 集群中去执行。它提供了以下这些基本功能:提交 Scala、Python 或是 R 代码片段到远端的 Spark 集群上执行,提交 Java、Scala、Python 所编写的 Spark 作业到远端的 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 =yarnlivy.spark.deploy-mode = clusterlivy.impersonation.enabled = falselivy.server.csrf-protection.enabled = falselivy.server.launch.kerberos.keytab=/opt/workspace/keytabs/user.keytablivy.server.launch.kerberos.principal=minerlivy.superusers=miner


修改 livy-env.sh, 配置 SPARK_HOME、HADOOP_CONF_DIR 等环境变量

exportJAVA_HOME=/opt/Bigdata/client/JDK/jdkexport HADOOP_CONF_DIR=/opt/Bigdata/client/HDFS/hadoop/etc/hadoopexport SPARK_HOME=/opt/Bigdata/client/Spark2x/sparkexport SPARK_CONF_DIR=/opt/Bigdata/client/Spark2x/spark/confexport LIVY_LOG_DIR=/opt/workspace/apache-livy-0.7.0-incubating-bin/logsexport LIVY_PID_DIR=/opt/workspace/apache-livy-0.7.0-incubating-bin/pidsexport 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 的配置。关键配置如图所示



其中 url 为 Livy 服务的 ip 和端口,支持 http 和 https 两种协议

六、添加 sparkmagic kernel


PYTHON3_KERNEL_DIR="$(jupyterkernelspec 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 代码验证:



八、访问 Livy 查看当前 session 日志:



点击关注,第一时间了解华为云新鲜技术~

发布于: 刚刚阅读数: 2
用户头像

提供全面深入的云计算技术干货 2020.07.14 加入

华为云开发者社区,提供全面深入的云计算前景分析、丰富的技术干货、程序样例,分享华为云前沿资讯动态,方便开发者快速成长与发展,欢迎提问、互动,多方位了解云计算! 传送门:https://bbs.huaweicloud.com/

评论

发布
暂无评论
如何基于Jupyter notebook搭建Spark集群开发环境