zeppelin的介绍与使用
第1章 概述
1.1 什么是zeppelin
Zeppelin是一个基于Web的notebook,提供交互数据分析和可视化。后台支持接入多种数据处理引擎,如spark,hive等。支持多种语言: Scala(Apache Spark)、Python(Apache Spark)、SparkSQL、 Hive、 Markdown、Shell等。
开发者可以通过实现更多的解释器来为Zeppelin添加数据引擎。官方支持的执行引擎用一幅图可以清晰描述执行引擎的作用就是执行笔记中的与引擎相对应的代码,不同的引擎也会有不同的配置,引擎的详细说明参考官方文档:
http://zeppelin.apache.org/docs/0.6.2/manual/interpreters.html
1.2 原理分析
Zeppelin中最核心的概念是Interpreter,interpreter是一个插件允许用户使用一个指定的语言或数据处理器。每一个Interpreter都属于换一个InterpreterGroup,同一个InterpreterGroup的Interpreters可以相互引用,例如SparkSqlInterpreter 可以引用 SparkInterpreter 以获取 SparkContext,因为他们属于同一个InterpreterGroup。当前已经实现的Interpreter有spark解释器,python解释器,SparkSQL解释器,JDBC,Markdown和shell等。下图是Zeppelin官网中介绍Interpreter的原理图。
Interpreter接口中最重要的方法是open,close,interpert三个方法,另外还有cancel,gerProgress,completion等方法。
Open 是初始化部分,只会调用一次。 Close 是关闭释放资源的接口,只会调用一次。 Interpret 会运行一段代码并返回结果,同步执行方式。 Cancel可选的接口,用于结束interpret方法 getPregress 方法获取interpret的百分比进度 completion 基于游标位置获取结束列表,实现这个接口可以实现自动结束。
第2章 部署
2.1下载
为了快速使用Zeppelin,可下载官方编译好的可执行版本,该版本包括两种类型,完整Interpreter版本,基础Interpreter版,下载基础版本即可,以后如有需要,可对Interpreter进行单独安装。
下载地址:http://zeppelin.apache.org/download.html。安装以及启动步骤如下
2.2 Apache Zeppelin安装
解压tar -zxvf zeppelin-0.6.2-bin-netinst.tgz
启动进程:zeppelin-0.6.2-bin-netinst/bin# ./zeppelin-daemon.sh start
访问页面:http://localhost:8080
停止进程:zeppelin-0.6.2-bin-netinst/bin# ./zeppelin-daemon.sh start
2.3 HDP安装
Add service
第3章 使用案例
3.1 集成spark
3.1.1新建一个spark node
本次示例在HDP 上的zeppelin操作,所以创建完spark node 无需其他配置,直接使用即可:
3.1.2创建一个测试文本
[root@node1 module]# vi city_info.txt 1 北京 华北 2 上海 华东 3 深圳 华南 4 广州 华南 5 武汉 华中 6 南京 华东 7 天津 华北 8 成都 西南 9 哈尔滨 东北 10 大连 东北 11 沈阳 东北 12 西安 西北 13 长沙 华中 14 重庆 西南 15 济南 华东 16 石家庄 华北 17 银川 西北 18 杭州 华东 19 保定 华北 20 福州 华南 21 贵阳 西南 22 青岛 华东 23 苏州 华东 24 郑州 华北 25 无锡 华东 26 厦门 华南
上传到HDFS 指定路径:/user/zeppelin/test/city_info.txt 下
3.1.3 运行spark shell语句
val peopleRDD = sc.textFile(“hdfs://node1:8020/user/zeppelin/test/city_info.txt”)
case class People(id:Int,city:String,area:String)
peopleRDD.map{x=> var fields=x.split("\t");People(fields(0).toInt,fields(1),fields(2))}.toDF.show
这样我们就可以在web页面上执行spark-shell的操作了
3.2 集成mysql
3.2.1 创建一个jdbc的node
3.2.2 配置jdbc的Interpreter
如果zeppelin节点没有mysql驱动环境,请注意添加依赖包:
3.2.3 操作库和表数据
3.3 集成hive
3.3.1 创建一个interpreter
配置主要的hive jdbc参数
3.3.2 创建一个hive node
Create New Node – Default Interpreter(选择上一步创建的hive)