Spark的核心分析栈包括Spark Core、Spark SQL、Spark Streaming、MLlib、GraphX等,面向批处理、流处理、图计算、机器学习等场景,实现了生态融合统一,基于相同的数据结构,可实现不同类型的计算任务。
Zeppelin针对spark提供了强大的语言解释器,常见的解释器包括:
- %spark 运行scala代码,发送至Spark Core引擎执行
- %sql 运行SparkSQL
- %pyspark 运行python代码,发送至Spark Core引擎执行
- %r 运行R代码,发送至SparkR引擎执行
本文以Spark的本地运行模式为例,介绍如何在Zeppelin中连接Spark引擎进行数据分析。
环境及版本信息
操作系统:CentOS 7.2
Zeppelin: 0.8.1
Spark: 2.3.2
配置spark解释器
Zeppelin默认的spark解释器包括%spark , %sql , %dep , %pyspark , %ipyspark , %r等子解释器,在实际应用中根据spark集群的参数修改具体的属性。
进入解释器配置界面,定位到spark解释器,修改master以下属性。
- master
spark的运行模式,默认为local[*],spark采用何种运行模式,参数可做以下配置:
local模式:使用local[*],[]中为线程数,*代表线程数与计算机的CPU核心数一致
standalone模式: 使用spark://master:7077
yarn模式:使用yarn-client或yarn-cluster
mesos模式:使用mesos://zk://zk1:2181,zk2:2182,zk3:2181/mesos或mesos://host:5050
测试
运行Zeppelin自带的Basic Features (Spark)案例。
本案例以银行分析数据bank.csv为例(下载地址https://s3.amazonaws.com/apache-zeppelin/tutorial/bank/bank.csv),分析客户年龄分布特征。