Farewell Livy, Hi Linkis

2023-11-08 22:20
文章标签 hi livy linkis farewell

本文主要是介绍Farewell Livy, Hi Linkis,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

1.数据分析平台搭建的若干主题

        笔者从事大数据功能平台建设若干年,在笔者就职的公司,业务分析人员常使用到如SparkSql, PySpark,hive,python等方式分析数据。搭建一个安全、稳定同时满足所有业务分析人员使用习惯的大数据功能分析功能平台并不是一个简单的任务,因为要考虑的东西比较多,笔者认为通常有以下几点。

  • 1.资源的细粒度以及多维度管控。

  • 2.多租户隔离。

  • 3.多样的执行方式支持。

  • 4.用户使用界面友好。

  • 5.功能平台的稳定与高可用。

2.公司平台的现状以及问题

        公司现在运行的平台主要是基于Zeppelin进行开发。我们同时在一套新的环境部署了Cloudera的一款开源产品——Livy。Livy在一定程度上结合了Spark JobServer和Zeppelin的优点,同时也解决了两者的一些痛点。相较于两位前辈,Livy的一大优势是能够支持Spark的Yarn-Cluster模式,因此有着比前两者有更强的扩展性。我们在技术选型的时候,也是看到了这个新兴开源项目的一些优势,准备在我们的平台进行部署以提升集群的能力。

Livy开放的用户提交作业的接口还是比较丰富的,用户可以通过三种方式进行提交:

  • 1).使用LivyClient进行提交,这个方式需要实现编程接口,对于后台开发者友好,但是对于公司的数据分析人员就显得门槛较高了。

  • 2).使用REST API的session接口提交代码片段,这个接口是数据分析人员最常使用的接口,他们将自己的脚本代码通过REST方式提交到Spark集群,然后从集群中获取作业执行的结果。

  • 3).使用REST API的batch接口提交jar包执行,这个方式一般用来进行跑批任务。

        我们在试用Livy的时候,发现他的优点在我们生产表现并不明显,反而缺点让我们有点头疼。例如它不支持sparksql的提交,同时他对其他类型的大数据作业如hive、单机python等不支持扩展。另外,livy没有提供对用户友好的界面,平台还需要针对接口进行前端的开发,这项工作从开发到调试到维护也是一项颇费人力的事情。另外LivyServer在当前还有单点的风险,这些使用上的缺点让我们组的人员对Livy这个新产品逐渐失去了兴趣。慢慢对Livy的支持也变少了。

3.意外的邂逅-Linkis

        淘沙邂逅得黄金,莫便沙中著意寻。如诗所言,我在github上面搜索关于大数据IDE前端的相关开源项目时,看到微众银行最新开源的Scriptis项目(https://github.com/WeBankFinTech/Scriptis) 的演示(https://www.oschina.net/p/scriptis)。觉得他们做的这款前端IDE产品几乎完美符合我们的业务分析人员的需求,操作友好,页面简洁,还有日志、进度这些用户关心内容的返回,瞬间被圈粉。深入了解之后,发现他与微众银行另一个开源的产品——Linkis(https://github.com/WeBankFinTech/Linkis )是配合使用的,当时就一个感觉,这么爽,直接可以打包使用啊。

        Linkis官方文档介绍自己说是用了微服务的架构方式,向用户暴露了REST和websocket两种接口。内部将执行的微服务抽象成了 Entrance、EngineManager和Engine 三个微服务,我理解Entrance应该是用户作业的管理者,Engine是用户作业真正的执行者,EngineManager是Engine的启动者和管理者。Linkis还直接开源了Spark(sql、pyspark、scala)、hive、python、pipeline等四个Engine,支持的执行作业内容涵盖了我们公司平台的使用范围。

        除了上面三个抽象,我觉得最吸引我的还是要属他们更细粒度和多维度的资源管理器,从事大数据平台建设这些年里,我觉得很头疼的一件事就是集群资源的管控,有时候也会出现队列资源被某些用户占光的问题。Linkis自身实现了一套资源管控的方案,他能将用户启动的Engine进行控制,这个功能非常瞩目。

        另外,我要考察了他们多租户隔离的方案,他们的方案是用户启动Engine的时候,是要以服务器上的实名用户进行启动,这样启动的进程就是在该用户的权限下,该进程能够接触的数据也只能局限在该用户能操作的数据。

4.Linkis的测试试用

        既然Linkis自己吹的这么好,还是有必要试一下的 ,趁着一个周末,我将他们最新的后台release包下载了下来,好家伙,将近500M,果然是一个很大的工程。

        他们的安装还是比较简单的,需要配置好微服务的IP和端口,同时设定好一些必要的path,另外还有数据库的一些配置,执行他们的install.sh,执行完之后,start-all一下,然后去自己的Eureka地址那里看一下是否启动成功。当然启动并不是那么顺利,如果失败了,还是需要自己去查看一下日志,毕竟这个是第一个release版本,肯定有兼容问题。根据笔者的经验,需要启动的微服务有Gateway,datasource, publicService,PythonEntrance,PythonEngineManager(如果要执行python),要执行spark的话,需要spark的entrance和EM。

                                image.png

然后需要装上Scriptis,Scriptis的安装比较简单,只需要将gateway的ip和端口指定到nginx的配置文件中就可以了,然后直接启动成功。

用浏览器打开Scriptis的部署的ip和port之后,首先会需要登录,Linkis文档告诉我们他们使用的是LDAP的登陆方式,同时也开放了一个超级用户登录,就是这个linkis项目的部署用户,我用的是hadoop用户部署的,同时密码也是hadoop,然后直接登陆。登陆之后报了一个错,说是根目录不存在,查看日志后发现是需要为用户创建一个根目录,这个问题我觉得是微众银行应该是在用户管理的时候,首先会为用户新建根目录,然后用户才能有资格访问这个系统。不过没有问题,我们直接在服务器本地创建了一个目录就行。建好之后,刷新页面,如下面所示。

                                        image.png

然后我迫不及待地新建了一个python脚本进行执行,因为毕竟这个最简单,不需要多余的环境变量配置。写完一个简单的脚本测试,经过一系列的过程之后,成功跑出了结果(* ̄︶ ̄)。日志、进度、状态等信息也是返回的很精确。

                                image.png

                                image.png

                                image.png

当然,单机的python能运行并不能说明问题,毕竟集群运行的spark和hive才是关键,新建了一个spark sql的脚本,然后点击运行,不出意外的,果然报错了(怎么可能会这么顺利的嘛),查看日志,我发现是spark在启动Engine去请求队列的资源的时候,报了一个队列不存在的问题,但是这个队列明明是存在的。

自己排查很久之后,没有能够解决。后来,我加入了他们的微信群,把这个问题提了出来,群里的工作人员让我排查了我的fair-scheduler.xml是不是正确的,最后才发现我们的hadoop版本是不一样的,我的hadoop版本是2.8+的,返回的json是他们的RM不能解析的,他们公司内部使用的是2.7.2,这个小小的兼容性问题让我和微众银行的同行也搞了好久。

后来解决之后,点击运行开始执行任务,他们引擎启动方式也是默认yarn-client方式,这次算是成功执行了(幸好我的spark版本是2.1.0),可以直接运行,结果也是正确的。

                                image.png

                                image.png

5.简单的总结

        当然对一个刚刚开源的产品来说,Linkis是不可能直接拿来就用的,因为不知道这种重型后台项目能不能抗住生产性能的问题,还有各种安全的问题,需要在测试环境上做很多的验证才行。

        另外Linkis本身对非微众银行的环境兼容性问题也是比较大的一个挑战,毕竟这个产品在他们银行能够跑得很好,其他的公司就不一定了。

        当然,他的优势还是很明显的,前后台同时开源,独特的资源管理功能,使用了当下最新的微服务架构,这个架构模式对于技术人员来说,不论是学习还是使用,都有很大的借鉴意义,我觉得这个系统会在我们公司的测试环境先运行一两个月,查看一下Linkis的性能和兼容、安全问题,毕竟这是一款值得尝试和学习的好产品。

这篇关于Farewell Livy, Hi Linkis的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/372855

相关文章

hihocoder1114 小Hi小Ho的惊天大作战:扫雷·一

1114 : 小Hi小Ho的惊天大作战:扫雷·一 时间限制:10000ms 单点时限:1000ms 内存限制:256MB 故事背景:密室、监视器与充满危机的广场 “我们还是循序渐进,先来考虑这样一个简单化问题:”小Hi思索片刻,道:“在一个大小为2*N的广场,其中第一行里的某一些格子里可能会有至多一个地雷,而第二行的格子里全都为数字,表示第一行中距离与这个格子不超过2的格子里总共有多少个

hi 平台 opencv4.8 交叉编译

echo "参数是 'arm_hi'"         current_path=$(pwd)         nproc=32         # arm-linux-gnueabihf-gcc, Cross-Toolchain PATH         export PATH="/opt/aarch64-v01c01-linux-musl-gcc/bin:$PATH"

Linkis踩坑记录

从WeDataSphere的docker镜像中把代码和配置拷贝到普通环境运行,结果linkis提交任务总是报错: Failed to execute task TaskID_1_otJobI d_astJob_0_codeExec_0 org.apache.linkis.orchestrator.ecm.exception.ECMPluginErrorException: errCode: 12

Initializing connection provider org springframework orm hi

分享一下我老师大神的人工智能教程!零基础,通俗易懂!http://blog.csdn.net/jiangjunshow 也欢迎大家转载本篇文章。分享知识,造福人民,实现我们中华民族伟大复兴!  Initializing connection provider: org.springframework.orm.hibernate3.LocalDataSourceConnectionPro

window下注册服务的命令(转自:http://hi.baidu.com/lijunliang/blog/item/cca6fb19179d306cdbb4bdf7.html)

命令SC.使用方式如下:   1. 描述:     SC 是用于与服务控制管理器通信的命令行程序 。    用法:         sc <server> [command] [service name] <option1> <option2>...         选项 <server> 的格式为         可以键入 "sc [command]"以获得命令的进一步帮助

一份详尽的IPC$资料 转载自:http://hi.baidu.com/h4ck3rsbr/blog/item/bf4282c328b73751b319a89b.html

网上关于ipc$入侵的文章可谓多如牛毛,而且也不乏优秀之作,攻击步骤甚至可以说已经成为经典的模式,因此也没人愿意再把这已经成为定式的东西拿出来摆弄。 不过话虽这样说,但我个人认为这些文章讲解的并不详细,对于第一次接触ipc$的菜鸟来说,简单的罗列步骤并不能解答他们的许多迷惑(你随便找一个hack论坛搜一下ipc,看存在的疑惑有多少). 因此我写了这篇相当于解惑的教程.想把一些容易混淆,容易迷惑

phpmyadmin爆路径 http://hi.baidu.com/h4ck3rsbr/blog/item/c5642ce9122dc73cb80e2dc0.html

phpmyadmin爆路径 2007年12月09日 星期日 18:10 phpmyadmin爆路径方法 weburl+phpmyadmin/themes/darkblue_orange/layout.inc.php 测试地址: http://bbs.pjhome.net/phpmyadmin/themes/darkblue_orange/layout.inc.php Fatal e

phpmyadmin的提权 http://hi.baidu.com/h4ck3rsbr/blog/item/725d00f5ca4c9a21bd31094e.html

phpmyadmin的提权 2007年12月21日 星期五 15:05 一: 暴路径: libraries/lect_lang.lib.php themes/darkblue_orange/layout.inc.php 二:提权 选择一个Database.运行以下语句.----start code---Create TABLE a (cmd text NOT NULL);Inser

【Android工具】高端DLNA音乐播放器Hi-Fi Cast 来自play

好久没分享安卓手机上好用的应用了,今天分享一个DLNA音乐播放器,这款软件不仅界面高大上,重点是他支持DLNA功能,可以实现随时播放音乐,而不占用设备的存储空间(只占用一个设备的存储空间) 说到DLNA功能,大家可以参考: 【Android工具】安卓魔力播放器moliplayer绿色无广告,手机DLNA播放器 先说一下为啥要整这个播放器:     上次给大家分享了300+首抖音神曲:

ACM 粗心永远AC不了系列——小Hi的烦恼|“五维数点”问题

问题来源:hiho一下第147周 小Hi的烦恼 题目1 : 小Hi的烦恼 时间限制: 5000ms 单点时限: 1000ms 内存限制: 1024MB 描述 小Hi从小的一大兴趣爱好就是学习,但是他发现尽管他认真学习,依旧有学神考的比他好。 小Hi在高中期间参加了市里的期末考试,一共五门:语文、数学、英语、物理、化学。 成绩出来之后,小Hi发现有些同学,所有科目