专栏首页麒思妙想Zeppelin整合Flink采坑实录

Zeppelin整合Flink采坑实录

I.前言

前两天转了章大的zeppelin系列教程(以下简称“教程”),我也好好的研究学习了一波。

我曾无数次鼓吹基于Jupyter的应用,也相信在未来数据分析领域,他会有自己的一席之地. 对话式的管家服务,真是谁用谁知道...

以下内容摘自“教程”:

下面是Zeppelin和Flink的故事。

Flink问:虽然我提供了多种语言支持,有SQL,Java,Scala还有Python,但是每种语言都有自己的入口,用户很难多种语言混着用。比如在sql-client中只能运行Sql,不能写UDF,在pyflink shell里,只能用python的udf,不能用scala和java的udf。有没有谁能帮我把这些语言全部打通。

Zeppelin答:我可以。

Flink问:我的一个很大的使用场景是实时大屏,但是我一个人办不到,往往需要借助第三方存储,还需要前端开发,有没有谁能让用户不用写前端代码就实现实时大屏

Zeppelin答:我可以。

Flink问:我的Sql已经很强大了,但是用户在sql-client里不能写comment,而且不支持运行多条sql语句,有谁能帮我把这些功能补齐下。

Zeppelin答:我可以。

Flink问:好多初学者说要跑一个flink job实在是太难了,好多东西需要配置,还要学习各种命令行,有没有谁能让用户更容易得提交和管理Flink Job。

Zeppelin答:我可以。

Flink问:Flink Job提交目前只能一个个提交,一个job跑完跑另外一个,有些用户想并行执行多个Flink Job,谁能帮我搞定这个需求?

Zeppelin答:我可以。

Flink问:我有丰富的connector,但是用户每次都要把connector打包到uber jar里,或者copy到flink的lib下,但是这样会把各种connector jar混在一起,容易发生冲突,很难管理,有谁能提供一个干净点的方案?

Zeppelin答:我可以。

II.填坑

Zepplin 0.9版本虽然已经做的足够出色了,但是还是有很多隐含的条件(坑),对新人还是不那么友好的,我在研习“教程”的时候,也就稍微总结了一下:

  • 版本:

目前zepplin 0.9 preview 整合flink,只能使用 Apache Flink 1.10.1 for Scala 2.11 ,不能使用scala2.12

  • 环境: 实验的话,需要在linux下尝试,windows是不支持,尽管他都有windows下的启动脚本.
  • FLINK_HOME

在interpret里设置FLINK_HOME,指向你的Flink,切记1.10.1 scala2.11版本

  • Kafka Connect Datagen 使用提供的docker镜像来做kafka集群,提供数据,安装docker不在这里说了,可能启动正常,但是没有datagenconnector

说明,docker-compose.yml里这两句没起作用

- ./plugins:/tmp/connect-plugins

- ./data:/tmp/data

执行下面语句就ok了。

setenforce 0

另外,默认配置里

KAFKA_ADVERTISED_LISTENERS: 'PLAINTEXT://broker:9092'

CONNECT_BOOTSTRAP_SERVERS: '192.168.16.3:9092'

可能不生效,使用下面语句,找到broker的ip,替换broker

docker exec -it ID/NAMES ip addr

创建kafka connector时,使用官方语句可能不太好事,可以使用UI即本机IP:8000 来进行配置,原文提供的 connect.source.datagen.json 也有些不太好使,我修改了一下,如下:

{

"connector.class": "com.github.xushiyan.kafka.connect.datagen.performance.DatagenConnector",

"tasks.max": "1",

"random.fields": "status:foo|bar|baz, direction:up|down|left|right",

"event.timestamp.field": "event_ts",

"poll.size": "10",

"key.converter.schemas.enable": "false",

"poll.interval.ms": "5000",

"value.converter.schemas.enable": "false",

"topic.name": "generated.events",

"value.converter": "org.apache.kafka.connect.storage.StringConverter",

"message.template": "{\"status\":\"foo\",\"direction\":\"up\"}",

"key.converter": "org.apache.kafka.connect.storage.StringConverter"

}

如下图所示

可以在Topic UI里可以看到数据,就证明这里配置ok了

  • Streaming ETL

记住先执行:

%flink.conf# You need to run this paragraph first before running any flink code.flink.execution.packages org.apache.flink:flink-connector-kafka_2.11:1.10.1,org.apache.flink:flink-connector-kafka-base_2.11:1.10.1,org.apache.flink:flink-json:1.10.1

上面的坑都填好了,就能愉快的玩耍了

目前只踩到这里,继续加油,奥利给!!!

本文分享自微信公众号 - 麒思妙想(qicai1612),作者:dafei1288

原文出处及转载信息见文内详细说明,如有侵权,请联系 yunjia_community@tencent.com 删除。

原始发表时间:2020-07-03

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • 再谈Flink

    前一阵痴迷于calcite,打算写一些streaming sql相关的东西,正好时逢置办年货,就买了本书《Flink基础教程》,打开看了一下,就放不下了,一口气...

    麒思妙想
  • 尝尝Blink

    期待 Flink 1.9 整合 Flink 和 Blink 的版本。突然心血来潮,打算自己编一版 Blink 玩玩,这篇文章分为两个部分:

    麒思妙想
  • 手动编译 Flink 1.9 踩坑实录

    大家期盼已久的1.9已经剪支有些日子了,兴冲冲的切换到跑去编译,我在之前的文章《尝尝Blink》里也介绍过如何编译,本文只针对不同的地方以及遇到的坑做一些说明,...

    麒思妙想
  • 《从0到1学习Flink》—— Mac 上搭建 Flink 1.6.0 环境并构建运行简单程序入门

    2、在 Mac OS X 上安装 Flink 是非常方便的。推荐通过 homebrew 来安装。

    zhisheng
  • Flink on yarn初步讲解

    对于flink的基本概念和基本运行模式讲解的内容请参考这篇文章《Flink流式处理概念简介》。本文主要是讲解flink on yarn的运行原理及基本使用,后面...

    Spark学习技巧
  • Flink 1.9 实战:使用 SQL 读取 Kafka 并写入 MySQL

    北京理工大学硕士毕业,2015 年加入阿里巴巴,参与阿里巴巴实时计算引擎 JStorm 的开发与设计。2016 年开始从事阿里新一代实时计算引擎 Blink S...

    用户6259908
  • 妈妈再也不用担心,我学不会大数据 flink 啦

    面对霸气侧漏的业务需求,由于没有大数据知识储备,咱心里没底,咱也不敢问,咱也不敢说,只能静下来默默储备、默默寻觅解决方案。

    一猿小讲
  • 一文入门流处理开发

    Apache Flink 是一个开源的分布式流处理和批处理系统。Flink 的核心是在数据流上提供数据分发、通信、具备容错的分布式计算。同时,Flink 在流处...

    数据社
  • 【flink1.7官方文档翻译】DataStream API Tutorial

    在本指南中,我们将从头开始,从设置Flink项目到在Flink集群上运行stream分析程序。

    皮皮熊
  • Apache Beam的Docker Demo

    Apache Beam 是统一的批/流数据处理的编程模型。本文主要是参考官方文档,用 Docker 来快速跑起来一个用 Beam 来构建的 Flink 程序来处...

    runzhliu

扫码关注云+社区

领取腾讯云代金券