简介:鉴于有很多企业都无法配备专门的团队来解决FlinkSQL平台化的问题,那么到底有没有一个开源的、开箱即用的、功能相对完善的组件呢?答案就是本文的主角——ApacheZeppelin。
作者:LittleMagic
大数据领域SQL化开发的风潮方兴未艾(所谓EverybodyknowsSQL),Flink自然也不能“免俗”。FlinkSQL是Flink系统内部最高级别的API,也是流批一体思想的集大成者。用户可以通过简单明了的SQL语句像查表一样执行流任务或批任务,屏蔽了底层DataStream/DataSetAPI的复杂细节,降低了使用门槛。
但是,FlinkSQL的默认开发方式是通过Java/ScalaAPI编写,与纯SQL化、平台化的目标相去甚远。目前官方提供的FlinkSQLClient仅能在配备Flink客户端的本地使用,局限性很大。而Ververica开源的FlinkSQLGateway组件是基于RESTAPI的,仍然需要二次开发才能供给上层使用,并不是很方便。
鉴于有很多企业都无法配备专门的团队来解决FlinkSQL平台化的问题,那么到底有没有一个开源的、开箱即用的、功能相对完善的组件呢?答案就是本文的主角——ApacheZeppelin。
FlinkSQLonZeppelin!
Zeppelin是基于Web的交互式数据分析笔记本,支持SQL、Scala、Python等语言。Zeppelin通过插件化的Interpreter(解释器)来解析用户提交的代码,并将其转化到对应的后端(计算框架、数据库等)执行,灵活性很高。其架构简图如下所示。
FlinkInterpreter就是Zeppelin原生支持的众多Interpreters之一。只要配置好FlinkInterpreter以及相关的执行环境,我们就可以将Zeppelin用作FlinkSQL作业的开发平台了(当然,Scala和Python也是没问题的)。接下来本文就逐步介绍FlinkonZeppelin的集成方法。
配置Zeppelin
目前Zeppelin的最新版本是0.9.0-preview2,可以在