理性谈谈Hue的优缺点
平时做数据开发用的比较多的是CDH的Hue,Hue提供了对接Hadoop平台的UI界面,可以对Hbase数据进行直接操作,执行Mapreducer任务时有可视化的执行界面,进行数据报表和Oozie定时任务,可以说还是非常的方便的。但是用久了就会发现Hue也有许多痛点。
-
数据表不能直接方便地导出Excel,降低了工作效率
-
UDF和函数支持较差,没有自带的数据分析常用UDF函数库,也没有Scala和Python的UDF支持。
-
缺少Job生命状态的进度展示,经常出现job提交后卡死也不知道是卡死在哪个阶段,还需要看日志才能分析出到底是哪个环节出了问题,这点Hue确实做的还不是很好。
开源新秀Scriptis
前不久微众银行的Fintech day开了,抱着对开源技术的尊重和期待,兴致冲冲的去会场看看有没自己感兴趣的开源项目。上午是基本的大会宣传介绍,到了下午就是去了开放平台的展会,了解到了一个最近开源出来的大数据平台开源套件Linkis和Scriptis,借机会介绍下吧。
Linkis是一个打通了多个计算存储引擎如:Spark、Flink、Hive、Python和HBase等,对外提供统一REST/WS/JDBC接口,提交执行SQL、Pyspark、HiveQL、Scala等脚本的数据中间件。
Scriptis是一款支持在线写SQL、Pyspark、HiveQL等脚本,提交给Linkis执行的交互式数据分析Web工具,且支持UDF、函数、资源管控和智能诊断等企业级特性。
可以简单的理解成Linkis对接了大数据集群的中间件,提供请求的统一管理和调度,Scriptis对接了Linkis,为数据分析和开发的用户提供了统一的WEB UI界面。
按照官方的部署文档搭建:
Linkis:https://github.com/WeBankFinTech/Linkis/blob/master/docs/zh_CN/ch1/deploy.md
Scriptis:https://github.com/patinousward/Scriptis/blob/master/docs/zh_CN/ch1/前台部署文档.md
花了点时间装上之后,使用之后的感受就是瞬间圈粉,借用下官方GIT宣传的效果图吧:
- 支持UDF和函数个性化加载,支持函数用户间共享,同时也支持Scala和Python定义UDF和函数
- Job执行进度一目了然,体验绝佳
- 同时也支持一键数据表导出
Sciptis的UI界面也做的非常的简洁,初见界面有种简约而不简单的感觉。作为一名从事数据开发的程序猿,第一印象还是非常nice的。但评价一个系统的好坏,更多的是使用时候的真实体验,一方面是系统的易用性,另一方面是系统是否安全可靠。本着程序猿严谨的工作态度,下面就来仔细探索Scriptis的使用细节。
初见Scriptis
按照以往数据开发的流程,接触新产品时,先大致熟悉下UI界面:最左边的菜单有5大栏目,包括工作空间、数据库、UDF函数、方法函数、HDFS。
首先在工作空间中新建一个脚本试试看吧:可以看到脚本类型非常丰富,包含了数据开发中基本会涉及到的所有类型。
新建一个SQL类型的脚本,写入第一个查询数据库的函数,编写代码时会自动解析语句,出现错误会给出错误定位,具有了IDE的一个优良特性,开发起来也非常舒适
运行查询的程序,不一会儿就返回了运行结果,界面响应没有卡顿的现象,还是非常流畅的
可以在下方的进度栏看到当前任务的进度,绿色代表已完成,黄色代表进行中,在任务运行的过程中不断前进(看到完成的那一刻居然还有点小激动?哈哈)
在运行结果的旁边有着运行的历史记录,可以看到任务执行的ID和时间,以及任务耗时,突然发现在旁边还有非常人性化的日志查看和日志下载,可以说非常方便了
点开查看日志,可以清晰的看到任务运行的过程,出现的错误和警告,方便开发过程的Debug。突然注意到旁边居然还有个过滤的选项
尝试输入select,发现可以过滤出包含关键词的日志行!
通过测试了一个小案例,除了验证了基本的功能以外,惊喜地发现Scriptis还有许多圈粉的小细节,虽然没有在官方文档中出现,但在使用的过程中还是能感受到到开发者的细心和周到。
再来看看Scriptis的其他功能
注意到Scriptis主界面的正上方有个管理台的功能,按照官方文档介绍,控制台主要提供Job历史、资源管理和全局变量的功能,方便用户对整个Scriptis的状态控制。控制台在使用Hue时是没有体验到的功能,本着尝鲜的心态点开试了下,清晰的功能界面,颜色分明的Job信息,详细的Job记录,可以说你想要的他居然都有!在全局历史界面还提供细致的搜索操作,避免Job数太多找不到的尴尬情况。
资源管理器页面提供了目前所有用户占用资源的情况,思考了下应该是为了方便管理员对服务健康状态进行监控,一方面管理员对用户使用集群的健康状况进行评估,另一方面可以查看当前用户的并发数量。
控制台的最后一个功能是提供全局变量的设置,可以方便用户进行复杂的Job开发。
前面测试了基本的数据开发功能以及控制台,功能正常,开发流程能顺利走通,已经能满足数据开发的基本要求。官方给出了许多高级功能暂未一一尝试,在日后的开发过程中应该都会慢慢涉及到。
经过一番初次体验,Scriptis给我带来的感觉除了功能全面,还有开发者在细节上的打磨。总的来说Scriptis非常适合作为一款数据分析工具,作为全新开源的产品,融合了Hue、Zeppelin等开发工具的优点,同时又解决了许多以往存在的不足。
最后,为什么我的CDH不用Hue,改用Scriptis了?
大概是因为Scriptis更懂我吧。