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

今天我来讲下如何在 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 直播系列:

  • Flink on Zeppelin: 极致体验(1) 入门 + Batch
    https://ververica.cn/developers/flink-training-course3/
  • Flink on Zeppelin: 精致体验(2) Streaming + 高级应用
    https://ververica.cn/developers/flink-training-course3/

准备工作

首先你需要安装 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://archive.ics.uci.edu/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

原文链接
本文为云栖社区原创内容,未经允许不得转载。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/516627.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

五个问答,告诉你阿里云对象存储如何助力钉钉战胜业务洪峰

“基于OSS在弹性扩容、跨省容灾、多租户管理以及传输加速方面的基础能力,钉钉在此次战役过程中,实现了一键切换写入区域,拆分业务到多个区域的功能,同时钉钉在跨区域的图片处理、文档预览的并发处理量上有了10倍速的提升。”——钉…

知乎高赞:一行代码凭什么躺普通程序员的10年工资?

笔者这两天闲逛知乎,看到了这个帖子:匿名答题,发表于2014年,此外没有留下任何多余信息。2年躺赚200万,相当于普通程序员10年的工资。没想到Pyhon这么强大,怪不得有人说“除了不会生孩子,Python什…

第九弹 - 脚本模式与参数视图

MaxCompute(原ODPS)是阿里云自主研发的具有业界领先水平的分布式大数据处理平台, 尤其在集团内部得到广泛应用,支撑了多个BU的核心业务。 MaxCompute除了持续优化性能外,也致力于提升SQL语言的用户体验和表达能力,提高…

在家“隔离”这1个月,阿里云视频云这些工程师都经历了什么?

战"疫”当前,没有谁会置身事外。从1月底开始,一场全民疫情阻击战拉开帷幕,企业停工、学校停课、商场停业,城市街道分外冷清,相反的是,无法出门的数亿网民却在互联网上掀起了一阵不小的流量热潮。距离2…

让安全威胁无所遁形,全方位掌握攻击“前世今生”的黑科技来了

作者 | 伍杏玲出品 | CSDN(ID:CSDNnews)据启明星辰发布的《2019~2020网络安全态势观察报告》显示,在过去一年多时间里,勒索攻击由 2014 年的广泛无目的的传播阶段到2017 年 WannaCry 带来的大规模自动化传播阶段,如今已…

docker mysql 日志在哪里_docker容器启动后日志在哪里

docker容器启动后日志在哪里? docker启动后日志会在以下位置 /var/lib/docker/containers/容器ID/容器ID-json.log 也可以使用以下命令查看日志: docker logs 容器ID使用docker-compose可以通过配置把日志记录到本地文件中 实战,演示以mys…

数据价值挖掘利器!阿里云实时数仓AnalyticDB PG

目的 随着数字经济时代的到来,越来越多的应用依赖数据分析来挖掘数据的价值。作为大数据存储、在线分析的重要基础系统,分析型数据库(OLAP)为数据价值的在线化提供重要的技术平台。 阿里巴巴OLAP团队经过调研发现,现…

美国AI博士指出:60天掌握Python全栈需要...

我见过市面上很多的 Python 讲解教程和书籍,他们大都这样讲 Python 的:先从 Python 的发展历史开始,介绍 Python 的基本语法规则,Python 的 list, dict, tuple 等数据结构,然后再介绍字符串处理和正则表达式&#xff0…

别琢磨了,企业高效灵活运作的秘密拿走:企业邮箱5折起!分享会场抽取苹果手机和猫超卡!

办了公司没个官方邮箱怎么行?还在用私人邮箱联系业务吗? - 不专业! 业务多了维护客户人脉关系怎么整?还在靠数名片管客户?- 太费劲! 公司大了管理维护难?还指望能靠人力运营&#x…

docker 配置nginx镜像出现 403 Forbidden的问题

(1)docker 配置nginx镜像的时候,将映射文件配置到当前宿主机上,启动nginx镜像,,通过域名访问,出现 403 查看nginx error.log日志,发现出现 (2)nginx镜像文件的配置: 启…

一套 SQL 搞定数据仓库?Flink有了新尝试

数据仓库是公司数据发展到一定规模后必然需要提供的一种基础服务,也是“数据智能”建设的基础环节。迅速获取数据反馈不仅有利于改善产品及用户体验,更有利于公司的科学决策,因此获取数据的实时性尤为重要。 目前企业的数仓建设大多是离线一套…

17 年安全界老兵,专注打造容器安全能行吗?

作者 | 伍杏玲出品 | CSDN(ID:CSDNnews)容器作为云原生的代表技术,很多人认为是容器技术掀起云原生的变革:2004 年,谷歌开始使用容器技术,并在2006年发布进程容器,将容器虚拟化基础设施引入 Lin…

“开源”vs“商业”,差别到底有多大?这篇测试一目了然

近些年来在数据分析领域,涌现出很多开源的技术方案,例如Presto、Spark、Impala等。面对多种选择,客户往往会比较困惑、无从下手。此外,MySQL生态非常火热,但对于数据分析类场景,使用此类关系型数据库是否合…

docker: Error response from daemon: driver failed programming external connectivity

docker: Error response from daemon: driver failed programming external connectivity 解决方案 (重新启动docker) systemctl restart docker

该买哪家二手手机呢?程序员爬取京东告诉你!

作者 | AJ Gordon责编 | 李雪敬出品 | CSDN(ID:CSDNnews)当你手头有一件闲置的物品时,最好的办法不是放在家里积灰,而是拿到二手网站上进行拍卖,例如淘宝的闲鱼,京东的拍拍等等。有这方面经验的…

服务3000万制造企业 阿里云数字工厂诚邀合伙人

阿里云工业互联网平台(数字工厂)通过整合阿里云资源可提供从产品研发、生产制造、销售、物流仓储、能源管理等链路中所需要的全部应用。为大型制造企业提供工业大数据分析以实现更高层次的价值挖掘,赋能中小制造企业用云化工具以较低成本实现…

大厂面试录取通过率不到3%,我真是太太太难了......

对今年应届毕业生来说,这个毕业季太难了,今年应届生总人数 874 万多,再创历史新高,各大招聘单位不仅缩减了招聘岗位,还取消了线下春招。最近在后台看到不少吐槽,很多同学反映自己面试一面就挂,有…

springbot微服务打包docker镜像

1.新建springboot项目 2.打包项目 3.编写Dockerfile 4.构架镜像 5.发布运行 6.上传至私服 7.拉取私服镜像运行 1.新建springboot项目 通过idea创建一个项目,新建一个HelloController 并新增一个hello方法便与测试 package com.gblfy.hello.controller;import org.…

NUAA-云计算-考试

19级期末 问题 答案: md格式 自己想办法看 # 随堂测验#### 一、请简述GFS 的系统架构和特点。**1. 系统架构**- GFS将整个系统节点分为三类角色:- Client(客户端):Client是GFS提供给应用程序的访问接口,以库文件的…

启迪公交:DRDS助力城市公交系统智能化

公司介绍 启迪公交(北京)科技股份有限公司以下简称“启迪公交”,成立于2018年6月26日,是国内领先的智慧公交系统方案提供商和服务运营商。通过承接公交信息化和智慧化项目建设,应用最先进的互联网商业模式&#xff0c…