Zeppelin源码

简介:

1.概述

  在大数据应用场景中,处理数据分析方面,由于开发者的水平不一样,使用的编程语言也不尽相同,可能会涉及到R、Python、Java、Scala等,数据计算模型也估计不一样,可能涉及的有Spark、Hive、Flink、Kylin等等。本篇博客笔者给大家介绍的内容并不是告诉大家如何去使用。在《Zeppelin使用心得》中有介绍如何使用,这里就不多做赘述了,今天主要是给大家剖析Zeppelin的源码模块。

2.内容

  目前Zeppelin官方已经发布版本为0.7.3,源码带托管在Github上,大家可以先将Zeppelin的源码在Github上下载下来。Zeppelin的项目结构是以Maven的形式存在的,由多个Module构成,分为框架核心Module和其他Interpreter Module,源码结构如下图所示:

  从截图中可以看出,其实Zeppelin到目前为止,集成了很多插件,比如Beam、HBase、ES、Flink、Kylin、Pig等,这些都是平时大数据场景下常用的。

2.1 模块分析

  Zeppelin的入口是ZeppelinServer(在zeppelin-server模块下)这个类下的Main函数,通过Jetty内嵌服务器提供WebSocket服务和Restful服务,还基于Shiro提供了权限认证和用户校验功能,都是使用Java编程语言实现的。在zeppelin-zengine模块下,实现Notebook的持久化和检索功能,同样使用Java语言实现。在zeppelin-interpreter模块下,通过调用zeppelin-zengine中的Thrift服务,来实现解释器的交互功能。在zeppelin-web模块下,用于脚本语言编写以及数据的可视化,使用AngularJS前端框架实现。其他模块详见下表。

名称 说明 实现语言
zeppelin-server 整个系统入口,提供服务器功能、权限认证以及用户校验等功能 Java
zeppelin-zengine 实现Zeppelin中Notebook的持久化和检索功能 Java
zeppelin-interpreter 执行解释器 Java
zeppelin-web 业务脚本语言编写、数据分析界面、数据可视化与结果导出 AngularJS
zeppelin-display 让前端的AngularJS元素与后台数据进行绑定,进行数据交互 Scala
zeppelin-distribution 用于存放编译后的二进制安装包    
zeppelin-examples 示例代码,用于测试  
helium-dev 新特性,让解释器,存储插件加入到Zeppelin中时,不需要重启Zeppelin服务 Java

  Zeppelin项目运用了许多编程语言和框架,属于一个混合项目。

3.源码调试

  明白Zeppelin各个模块的功能和作用后,我们可以尝试去调试一下Zeppelin的源码,这里我们将Zeppelin的源码导入到 IDEA 编辑器,然后找到ZeppelinServer启动,如下图所示:

  然后选择“Run 'ZeppelinServer.main()'”命令即可,等待服务启动完成,启动成功后,会在编辑器控制台打印日志,如下图所示:

  这里,在启动端口默认是8080,在ZeppelinConfiguration类下可以进行编辑,如下图所示:

  然后,我们可以到浏览器预览调试结果,如下图所示:

  一般在二次开发完成Zeppelin的功能后,我们会将源代码重新编译打包,可以使用Maven打包命令,如下所示:

mvn clean package -Pbuild-distr -Dcheckstyle.skip=true -DskipTests

  打包完成后,会在zeppelin-distribution的target目录下生成一个二进制的软件安装包。

4.关系图

  这里笔者给大家整理了Zeppelin-0.7.3的各个Module之间的关系图,如下所示:

5.结束语

  这篇博客就和大家分享到这里,如果大家在研究学习的过程当中有什么问题,可以加群进行讨论或发送邮件给我,我会尽我所能为您解答,与君共勉。

联系方式: 
邮箱:smartloli.org@gmail.com 
Twitter: https://twitter.com/smartloli 
QQ群(Hadoop - 交流社区1): 424769183 
温馨提示:请大家加群的时候写上加群理由(姓名+公司/学校),方便管理员审核,谢谢! 

热爱生活,享受编程,与君共勉!



本文转自哥不是小萝莉博客园博客,原文链接:http://www.cnblogs.com/smartloli/,如需转载请自行联系原作者

相关文章
|
3月前
|
供应链 安全 网络协议
从Silver Fox新变种看2026年网络钓鱼的攻防进化
2026年初,德企Hexastrike披露“银狐”团伙利用AtlasCross RAT木马,通过伪造Zoom、Signal等知名软件域名实施精准钓鱼。攻击融合拼错域名、盗用代码签名证书、无文件内存注入及针对性反杀软技术,严重威胁亚洲商务与财务人员安全。
391 3
|
敏捷开发 Java 测试技术
探索自动化测试的奥秘:从Selenium到Appium
【9月更文挑战第14天】软件测试,这个看似枯燥乏味却至关重要的领域,正经历着一场革命。随着技术的进步,自动化测试工具如Selenium和Appium已成为质量保证的利器。本文将带你一探这些工具的神秘面纱,了解它们如何简化测试流程、提升效率,并确保软件产品的质量。准备好,我们将深入自动化测试的世界,解锁其背后的原理和实践技巧。
|
JSON 缓存 API
随机天文图[NASA官方]免费API接口教程
此接口用于随机获取NASA官方发布的宇宙图像,支持POST或GET请求。需提供用户ID、用户KEY、返回格式(JSON/TXT)和图像质量(高清/普清)。返回状态码及图片地址或错误信息。示例ID与KEY有调用限制,建议使用个人ID与KEY。
547 0
|
存储 分布式计算 资源调度
在kubernetes上运行apache spark:最佳实践和陷阱
阿里云高级技术专家范振为大家带来在kubernetes上运行apache spark的介绍。内容包括Data Mechanic平台介绍,Spark on k8s,以及EMR团队云原生的思考和实践。以下由Spark+AI Summit中文精华版峰会的精彩内容整理。
4867 0
在kubernetes上运行apache spark:最佳实践和陷阱
|
存储 弹性计算 固态存储
阿里云4核8G服务器ECS配置报价、性能参数对照表
阿里云服务器4核8G配置可选s6、u1、c6、c7及hfc7等多种ECS实例规格,云服务器s6优惠价75.06元3个月、1200.96元一年,4核8G云服务器c6实例4核8G配置91.50元3个月、1464.00元一年,云服务器c7一年2085.08元,4核8G云服务器u1价格83.53元3个月、1336.51元一年
3371 0
阿里云4核8G服务器ECS配置报价、性能参数对照表
JDK源码(7)-Boolean
JDK源码(7)-Boolean
285 1
JDK源码(7)-Boolean
计算机考研408每日一题 day156
计算机考研408每日一题 day156
283 0
计算机考研408每日一题 day156
|
存储 自然语言处理 搜索推荐
ES开发指南|如何快速上手ElasticSearch
前言ElasticSearch不只是全文检索引擎的领头羊,现在也是各个大厂标配的大数据平台之一,被广泛用于搜索加速,用户标签、画像系统、向量搜索等领域,它不是传统的关系型数据库,但这个信...
686 0
|
8天前
|
存储 弹性计算 缓存
阿里云服务器租赁费用:新版租赁收费标准及活动报价参考
本文更新了2026年阿里云全系列云服务器租赁活动报价,所有特惠资源均可前往阿里云活动中心选购,整体覆盖从个人入门到企业级高性能场景的全梯度需求。其中轻量应用服务器主打极致性价比,2核2G峰值200M带宽配置每日10点、15点限时抢购价仅38元/年,2核4G配置379元/年起;高性价比的经济型e实例、通用算力型u2i实例覆盖2核4G至4核32G全档位,适配开发测试与中小型企业业务;搭载英特尔至强6处理器的第九代c9i企业级实例算力较上代提升20%,支撑高并发生产环境,不同实例规格价差清晰,用户可根据自身业务负载与预算灵活选型。
1790 117
阿里云服务器租赁费用:新版租赁收费标准及活动报价参考
缓存 安全 IDE
1411 2

热门文章

最新文章