目录
一、介绍
官网:http://zeppelin.apache.org/ apache的顶级项目
Zeppelin是什么?Zeppelin是一个大数据交互分析服务软件,可以基于Web界面组合多个大数据分析引擎的处理能力,并内置提供了基于Web的可视化界面,可以连接几乎所有的Apache大数据处理服务系统。
支持:Spark、Hive、Jdbc、HBase、Fink、ES等........多种,每种都有对应的拦截器。他是基于web的Zeppelin。只有打开浏览器,就能进行访问。可以用它进行交互式的查询分析。
功能:Zeppelin可以满足你的数据接入、数据挖掘、数据分析、数据可视化及协同开发的需求。
总之:Zeppelin是一个基于web的大数据分析引擎,里面可以填写很多的“代码片段”的工具,对于排查错误来讲是非常重要的。
二、安装
包Zeppelin-0.8.1-bin-all.tgz的下载,有下面几种方式:
1)直接下载
2)用docker下载
3)下载源码,编译源码(生产上用的)[Build from source](http://zeppelin.apache.org/download.html#build-from-source)
开始进行安装 [install](http://zeppelin.apache.org/docs/0.8.0/quickstart/install.html)。
上传到`~/software`下,解压到`~/app`下。看一下目录结构。因为是一个web项目,所以是一个war包,每创建一个窗口就有一个notebook目录:
如果下载的是源码,可以[编译](http://zeppelin.apache.org/docs/0.8.0/quickstart/install.html#building-zeppelin-from-source)。
启动:
[hadoop@hadoop001 bin]$ ./zeppelin-daemon.sh start
Log dir doesn't exist, create /home/hadoop/app/zeppelin-0.8.1-bin-all/logs
Pid dir doesn't exist, create /home/hadoop/app/zeppelin-0.8.1-bin-all/run
Zeppelin start [ OK ]
启动之后通过jps可以看到有一个对应的进程:`ZeppelinServer`。他有一个默认的配置文件:`conf/zeppelin-site.xml.template`。从默认的配置文件中可以看到,他是可以任何ip进行访问的,提供的端口是8080:
对应的页面,右上角绿色的点,表示连接成功:
对应的日志文件是logs目录。在日志文件中可以看到启动成功了:`zeppelin server started`
可以使用Spark,支持多种默认:
需要修改一个配置文件:
[hadoop@hadoop001 conf]$ cp zeppelin-env.sh.template zeppelin-env.sh
[hadoop@hadoop001 conf]$ vi zeppelin-env.shexport JAVA_HOME=/usr/java/jdk1.8.0_45
#如果Spark需要跑在Yarn上,肯定是要配置hadoop_conf_dir的
export HADOOP_CONF_DIR=/home/hadoop/app/hadoop-2.6.0-cdh5.7.0/etc/hadoop
export SPARK_SUBMIT_OPTIONS="--jars /home/hadoop/lib/mysql-connector-java-5.1.43-bin.jar"
export MASTER=local # 如果跑在yarn上就配置yarn。如果跑在local就写local,这里暂时写local
export SPARK_HOME=/home/hadoop/app/spark-2.4.2-bin-2.6.0-cdh5.7.0
关闭服务的方式:
[hadoop@hadoop001 bin]$ ./zeppelin-daemon.sh stop
Zeppelin stop [ OK ]
重新启动服务:
[hadoop@hadoop001 bin]$ ./zeppelin-daemon.sh start
Zeppelin start [ OK ]
[hadoop@hadoop001 bin]$ jps
3904 NameNode
23190 Jps
4342 ResourceManager
4439 NodeManager
4137 SecondaryNameNode
23130 ZeppelinServer--------->ok
3997 DataNode
[hadoop@hadoop001 bin]$
启动的过程需要联网,所以可能会出现因为网络的原因导致连接的很慢。绿灯就表示连接上了:
三、权限
Zeppelin默认使用的是shiro来控制权限,默认情况是采用anonymous,不需要权限就可以访问的:
如果想添加权限的访问,可以在`conf/shiro.ini.template`这个配置文件中进行控制。默认的用户名/密码、loginUrl、权限:
可以在shiro.ini配置文件中进行用户名、密码、权限的配置 。但是这种方式是写死了。在生产上这个Zeppelin不是单独用的,而是嵌入在数据平台上用的。如果登陆数据平台需要权限,进去之后,里面的Zeppelin还要再进行一次权限,那这个平台就太垃圾了。所以一定有一个数据平台权限和Zeppelin权限的对接。比如现在的数据平台有下面这些功能:离线、实时、可视化、zeppelin。如果登陆这个数据平台的账号想也访问登陆zeppelin,必须有登陆zeppelin的权限。
关于shiro登陆权限的可以参考:http://zeppelin.apache.org/docs/0.8.1/setup/security/shiro_authentication.html
关于NoteBook的权限可以参考:http://zeppelin.apache.org/docs/0.8.1/setup/security/notebook_authorization.html
四、使用/创建noteBook
创建一个noteBook:
这里有很多的拦截器,默认的就是Spark:
1、建立一个md拦截器的noteBook
可以先创建一个md的拦截器类型的:
然后就可以开始写了:
写完之后执行:
跑完之后的效果:
执行的结果:
之后也可以直接在这里改:
实际上就是个占位符,这就是%md的用法,先简单了解。
也可以在前面创建:
如果想修改interpreter的东西,直接点击这里:
比如搜索spark,就会出来一堆spark的配置:
可以直接进行修改:
比如改成local[2]:
但是这里改有点慢,可以直接去zeppelin-env.sh配置文件中改,修改了配置文件之后就重新启动服务。但是关于配置这个,配置文件和页面是不太一致,这是bug。
创建的notebook都在这个目录下:
在日志文件目录下有对应的notebooke,不同拦截器的日志:
可以在这里查看不同的拦截器的日志。
更多的信息可以去看它的文档:http://zeppelin.apache.org/docs/0.8.1/index.html
2、建立一个Spark拦截器的noteBook
创建一个spark:
但是报错:`java.lang.NoSuchMethodError: io.netty.buffer.PooledByteBufAllocator.defaultNumHeapArena()I`
??????????????????????????还未解决
反正就是可以在这里写Spark的测试代码了。
更多的信息可以去看它的文档:http://zeppelin.apache.org/docs/0.8.1/index.html
关于Spark的更多使用,参考:http://zeppelin.apache.org/docs/0.8.1/interpreter/spark.html
关于shiro登陆权限的可以参考:http://zeppelin.apache.org/docs/0.8.1/setup/security/shiro_authentication.html
关于NoteBook的权限可以参考:http://zeppelin.apache.org/docs/0.8.1/setup/security/notebook_authorization.html
3、建立一个jdbc拦截器的noteBook
也可以使用%jdbc拦截器的方式连接数据库。比如连接的是MySQL数据库。首先要找到jdbc拦截器并进行配置:
编辑下面的配置:
并添加MySQL的驱动的依赖:
会联网下载相关的jar包。
现在来创建一个jdbc的notebook,可以看到运行成功的:
缺点就是每次这个窗口只能写一条SQL语句,就连注释的SQL语句也会算一行,这是缺点。
可以写SQL,并且查看SQL的执行结果用表格、柱形图等:
可以下载数据:
默认界面只能展示1000条的结果,如果想修改,就要修改JDBC拦截器的配置:
从这里可以看到这个Zeppelin是支持很多东西的:
需要我们的Linux上的对应的拦截器的服务要开启着。这个东西就是发送并接收结果用来展示的一个工具。不管用HUE,还是用Zeppelin都是可以的。
可以对展示的结果进行修改展示,或者Link把结果图link出去给别人用,这里发生变化的时候,别人link的地方也会发生相应的变化:
更多的信息可以去看它的文档:http://zeppelin.apache.org/docs/0.8.1/index.html
关于Spark的更多使用,参考:http://zeppelin.apache.org/docs/0.8.1/interpreter/spark.html
关于shiro登陆权限的可以参考:http://zeppelin.apache.org/docs/0.8.1/setup/security/shiro_authentication.html
关于NoteBook的权限可以参考:http://zeppelin.apache.org/docs/0.8.1/setup/security/notebook_authorization.html