乐趣区

关于jupyter-notebook:如何基于Jupyter-notebook搭建Spark集群开发环境

摘要: 本文介绍如何基于 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 集群上执行和提交批处理利用在集群中运行

二、根本框架为下图所示:

三、筹备工作:

具备提供 Saprk 集群,本人能够搭建或者间接应用华为云上服务,如 MRS,并且在集群上装置 Spark 客户端。同节点(能够是 docker 容器或者虚拟机)装置 Jupyter Notebook 和 Livy,安装包的门路为:https://livy.incubator.apache…

四、配置并启动 Livy:

批改 livy.conf 参考:https://enterprise-docs.anaco…
增加如下配置:

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 的配置。要害配置如图所示

其中 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 代码验证:

八、拜访 Livy 查看以后 session 日志:

点击关注,第一工夫理解华为云陈腐技术~

退出移动版