Zeppelin社区给力支持下,解决Zeppelin上的Flink生产环境运行问题

本文介绍了如何在HDP-2.4.2.0大数据集群上集成Zeppelin和Flink,以及在遇到Flink运行于Yarn模式时的问题和解决过程。作者详细阐述了环境配置、启动步骤以及在Yarn模式下遇到的timeline服务相关错误。最终,通过社区的帮助,解决了缺少timeline jar和调整yarn配置的问题,使得Zeppelin能够在Yarn模式下顺利运行Flink作业。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

  • 背景


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!
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值