- 背景
Zeppelin一个强大的可视化数据分析工具。它是基于Web的笔记本,可通过SQL,Scala等实现数据驱动的交互式数据分析和协作文档。功能及其强大,可以快速接入Spark,Python,R等数据分析语言工具。数据源可以接入MySQL,Kylin,Hive等几十种数据源。
在现在实时处理神器Flink如火如荼的当下,将Zeppelin接入Flink,实现实时,批数据处理,报表生成,对数据开发分析人员,无疑是一个有力的助力。
Flink接入阿里开源生态后,版本迭代的非常迅速,功能也提升的比较多。阿里Jeff Zhang 简锋主持的Zeppelin社区对Flink支持力度也很大,在Flink+Zeppelin的诱惑和社区的支持下,开始了基于现有集群的Zeppelin+Flink实践。
- 现有集群情况
现在手头已有集群的架构情况如下:
基于 HDP-2.4.2.0搭建的大数据集群。
Hadoop版本是2.7。
- 搭建过程
下载最新的flink安装包并解压。下载Zeppelin官方网站的最新SNAP2 版本,直接解压。配置也非常简单。
按安装文档里说的,将conf/zeppelin-site.xml.template重新命名为zeppelin-site.xml.将hadoop配置通过环境变量设置好。这样可以省去在Zeppelin解释器里设置的问题。
然后直接bin/zeppelin-daemon.sh start启动即可。
访问对应链接,激动人心的Zeppelin就出来了。

- 实际使用问题
如果需要使用当前集群,需要设置如下变量到环境变量里。本例参数是以我们实际集群为例,需要大家根据自己情况修改。
export HADOOP_CONF_DIR="/usr/hdp/2.4.2.0-258/hadoop/conf"
export HIVE_CONF_DIR="/usr/hdp/2.4.2.0-258/hive/conf"
export FLINK_HOME="/data4/soft/flink-1.11"
export HADOOP_CLASSPATH=`hadoop classpath`
这版zeppelin还是很用心的,基本上用到的库都打包了,所以,在使用zepplin+flink时候,设置为local模式后,运行例子一点没有问题。

运行自带的flink例子都很流畅。来看下flink和可视化的结果,诱惑下大家。

但是在实际生产环境中,flink+yarn方式才是真正的生产配置。但设置为yarn模式后,问题就出来了,即使跑最简单的例子,也出问题。

怎么办?在经过查看集群日志和奋力解决后,还是没搞定,这时候,就得向有力的zeppelin社区求助了。
- 第一次尝试解决:
在Zeppelin社区里,反馈了这个问题。并且说明了具体的hadoop配置和对应的 jersey包版本不对的问题,按群里Zhang老大建议是下载钉钉群里的最新版本后升级为最新版。
这里要提示下Zeppelin的爱好者,Zeppelin社区有一个专属的钉钉群,在群里有Jeff zhang老大的亲自指导,还有最新的
Zeppelin安装版。为防止平台禁止二维码,需要参加的请私信我,我私下给你。 - 第二次尝试解决:
信心满满的把群里Zeppelin最新版下载解压。运行起来,结果发现问题依旧。
赶紧把问题再次反馈给群里,寻求支援。
Jeff老大发来了终极解决方法。
“缺少timeline的jar,1是找到相应的jar放到classpath里,二是disable timeline,在yarn-site里设置 yarn.timeline-service.enabled 为false”
我也上网查了下原因,原来是这样:
在yarn的client提交作业时,会调用createTimelineClient,此时由于缺少相关jar包抛出异常,而如果之前有调用export HADOOP_CLASSPATH,则hdp自身的hadoop版本中包含有相关jar包,则可以正常运行。
最后按Jeff老大的解决方案重新配置了下。发现最后一点很关键,"在yarn-site里设置 yarn.timeline-service.enabled 为false"。
将集群里yarn.timeline-service.enabled设置为false,重启Yarn后。
再重启Zeppelin,问题解决。
终于看到在Yarn模式下,Zeppelin已经可以完美的运行了。下一步准备结合Zeppelin client来真正实现 Zeppelin上的代码运行在调度系统里。
感谢Zeppelin社区,感谢Jeff zhang!
本文介绍了如何在HDP-2.4.2.0大数据集群上集成Zeppelin和Flink,以及在遇到Flink运行于Yarn模式时的问题和解决过程。作者详细阐述了环境配置、启动步骤以及在Yarn模式下遇到的timeline服务相关错误。最终,通过社区的帮助,解决了缺少timeline jar和调整yarn配置的问题,使得Zeppelin能够在Yarn模式下顺利运行Flink作业。

被折叠的 条评论
为什么被折叠?



