一、概念介绍:

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,安装包的路径为:

四、配置并启动livy:

修改livy.conf参考:

添加如下配置:

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日志:

到此这篇关于基于jupyter notebook搭建spark集群开发环境的详细过程的文章就介绍到这了,更多相关基于jupyter notebook搭建spark集群开发环境内容请搜索www.887551.com以前的文章或继续浏览下面的相关文章希望大家以后多多支持www.887551.com!