Zeppelin与Linkis、Scriptis的实践对比

       最近部门打算构建个小规模的数据平台, 基础平台部分就用Hadoop、hive、spark这套,相对比较成熟了,交互分析这块儿的交给我来做个poc。刚好上周听说微众银行要开源他们的数据平台,跟老大请了半天假 过去听了下,貌似挺牛逼等。这里有宣传感兴趣的可以看下https://fintech.webank.com/wedatasphere?from=groupmessage&isappinstalled=0

       考虑到我们这边很多数据开发同事擅长的技术不同,交互分析需要支持sql、Python、Scala,就到到GitHub社区逛了下,其中有两个工具比较适合我们,一个是Apache的zeppelin(https://github.com/apache/zeppelin,官网http://zeppelin.apache.org/  ),还有一个就是上周微众银行刚刚开源的工具 Scriptis,基于linkis,代码和资料都放出来了,这两个工具都支持在线编写sqlPythonScala,还具备部分管理功能。具体地址:https://github.com/WeBankFinTech/Linkis

https://github.com/WeBankFinTech/Scriptis不过看介绍,各有千秋,zeppelin后台主要是解释器组成,支持的引擎非常多,jdbcsparkPythonflinkhdfs等,管理功能稍弱,Scriptis后台要对接微众的linkis,看起来是一个中间件,提供了Pythonsparkhive访问的客户端,引擎似乎少了点,但是管理功能比较强,特别是多租户隔离、资源管控,高可用这块儿对我们来说很重要。先不多说 先搞起来看看怎么玩的吧。

先搭建个zeppelin  直接到官网下载安装包,最新版本是0.8.1,下载链接

http://mirrors.tuna.tsinghua.edu.cn/apache/zeppelin/zeppelin-0.8.1/zeppelin-0.8.1-bin-all.tgz

安装步骤:

首先安装Hadoop hive  spark等基础组件,版本的话我这边选的是 Hadoop2.7.2、 hive1.2.1 、spark2.1.0 、zeppelin0.8.1,这个基础组件安装网上大把我这里就省略了,重点介绍下zeppelin和linkisscriptis

一、配置

1、shiro.ini

2、zeppelin-env.sh

 

   3、zeppelin-site.xml 

 

 

4、修改用户环境变量添加zeppelin的环境配置

 

5、Zeppelin启动

zeppelin-daemon.sh start

 

二、测试。

1、Spark解释器

 

 

2、Jdbc 测试

记得加下面的几个包  坑死我了。

3、Python测试

 

 

4、Shell测试

5、Shell下执行正常

解释器还有一大堆,晚点再测,我们主要用上面这几个。

 zeppelin的管理部分,用户管理默认是用shiro,还支持LDAP,这部分挺不错的,可以结合公司的UM管理用户名、密码,不过角色授权部分可能比较麻烦 需要对接新系统。

Notebook支持协作这个功能也挺好,很多开发工作需要协作才能完成。比如数据预处理到数据挖掘、机器学习这个过程 步骤还挺多的,可视化部分也不错。

不过 资源管理部分似乎没有,全靠解释器的配置了,高可用的特性似乎目前也不支持。用户似乎看不到自己任务的关键执行进度,在用户资源上面没有整体大盘的概念。

接下来我们研究下微众这边scriptis 貌似要先安装linkis,我们先装上。

三、Linkis搭建

参考GitHub上安装文档即可步骤

安装包

https://github.com/WeBankFinTech/Linkis/releases/download/0.5.0/wedatasphere-linkis-0.5.0-dist.tar.gz

步骤

https://github.com/WeBankFinTech/Linkis/blob/master/docs/zh_CN/ch1/deploy.md

我这里只讲下注意点

注意 安装的脚本 db.sh 和 config.sh 要转成unix格式,(dos2unix config.sh,dos2unix db.sh) 不然可能有莫名其名的报错

    

1、启动服务:

sh  ./bin/start-all.sh

2、Jps查看进程:

 

3、查看服务

 

 

3、安装scriptis

安装包

https://github.com/WeBankFinTech/Scriptis/releases/download/0.5.0/wedatasphere-scriptis-0.5.0-dist.zip

安装文档

https://github.com/WeBankFinTech/Scriptis/blob/master/docs/zh_CN/ch1/%E5%89%8D%E5%8F%B0%E9%83%A8%E7%BD%B2%E6%96%87%E6%A1%A3.md

前端安装没有坑 很简单

 

 

4、浏览器访问

http://ip:8088/

 

四、体验

 

1、Python执行没问题

2、Hivesql执行也没问题

 

3、Sparksql

 

4、Spark-Scala

5、Pyspark

这几个重点功能都没啥问题,能满足我们等需求,我们再来看看 这个资源管理、多租户隔离、高可用部分

6、资源管理服务:

这个地方对用户参数有限制,无用不可以随便设置多大的参数,或者提交多少任务。功能还是不错的。

 

7、多租户隔离:

每个用户都是单独的spark或则hive任务互相不影响,这个功能跟zeppelin的差不多吧。

这里就不演示了。

8、任务高可用测试

执行spark任务期间 后台模拟,

9、服务端高可用测试:

这个需要搭建两套linkis服务,暂时还没有测。

 

10、Scriptis 这里貌似还有些 贴心功能  udf函数和全局变量,这个开发的话用着很爽,很多功能做udf就调用就行。

 

 

任务管理器,引擎管理器 队列管理器







 

 

(微众的哥们儿 好热情啊,中间各种小白问题 都一一帮忙解决了,在此表示感谢)

综合上述测试

个人感觉:

1、都支持 多语言 多引擎,可视化(scriptis可视化发布到另外一个系统,还没有开源呢,坐等)。

2、Linkis+scriptis 前后端分离,相对轻量级些。

   Zeppelin前后端融合在了一起,比较重量级,特别是解释器比较多,覆盖面广。

3、企业级特性:scriptis和linkis更具备企业特性,比较专注、实用性强。

4、用户透明 和可扩展性: linkis可以搭建多台,对用户无感,zeppelin的话搭建多台实例,用户是真正隔离开了。

5、多租户隔离 :用户单机执行Python的话 很有可能把zeppelin服务搞死,linkis是基于具体的某个微服务引擎,独立于web服务器。 zeppelin支持共享和隔离两张形式,linkis则每个用户完全独立。

6、Scriptis和linkis在一些细节上做的比较贴心,智能诊断,实时进度,udfs函数等,另外资源管控,多租户,高可用方面,也很强大,这些功能是我们的痛点,小规模集群,数据又敏感。听他们 说要把他们公司大数据套件全部开源,这是个好事,毕竟数据平台的组建,不止一个zeppelin或者说scriptis+linkis,需要一整套服务

晚点再深入了解下 。

微众这边也给了个对比图,欢迎大家拍砖,如果参与贡献也不错,有啥问题都可以问,微信群里的人非常open,真的很佩服这家公司的格局,还有做这个平台的人。

https://github.com/WeBankFinTech/Linkis

https://github.com/WeBankFinTech/Scriptis

Scriptis

Linkis

 

  • 10
    点赞
  • 28
    收藏
    觉得还不错? 一键收藏
  • 3
    评论
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值