zl程序教程

您现在的位置是:首页 >  其他

当前栏目

Apache Storm 衍生项目 & Apache Flink初接触

ampApacheflink项目 storm 接触 衍生
2023-09-14 09:00:25 时间

storm是一个近似于实时的计算框架,甩开hadoop上的原生mapreduce计算框架不只一条街。如果能将storm引入到hadoop中,对存储于hdfs的数据进行分析必然极大的提高处理性能。storm-yarn就是这样一个项目,由yahoo实现,目前已经开源。

除了storm-yarn试图将storm整合进hadoop,以提升hadoop的分析处理能力的尝试之外,Hortonworks也高调宣布在2014年推出整合了storm的hadoop发行版。当然Hortonworks的整合会基于storm-yarn,毕竟它们都属于yahoo系。

整合目的和优势

storm-yarn是来提升hadoop的处理分析能力,是对hadoop的增强,而非相反。

节选自Yahoo!开源运行在Hadoop上的Storm——Storm-YARN


提供了巨大的弹性潜力。实时处理的负载一般不恒定,而且是不可预测的。就其本身而言,为满足需求峰值,Storm会需要更多资源。将 Storm和批处理搭配使用,Storm需要资源时可以从批处理作业那里窃取,当资源需求下降时再把资源还回去。Storm-YARN为实现这一理念奠定 了基础。 很多应用将Storm用于低延时处理,而将Map/Reduce用于批处理,同时,两者之间会共享数据。通过将Storm放到物理上更接近数据源和/或同一流水线中其他组件的地方,可以减少网络传输,进而减少获取数据的总开销。
hadoop common                       共用组件 HDFS                                       文件系统,用于数据存储 hadoop yarn                             进行资源管理 hadoop MapReduce                   计算框架

从下图中可以看出hadoop1到hadoop2的转换

Yarn的架构图如下所示。

Yarn是一个two-tier solution,将资源管理(resource managing)和job monitoring分离开,放到不同的实体上进行处理。在Master Node上,专注于Resource方面的管理(目前仅支持cpu, memory),而将job monitoring由application master来负责。

目前关于yarn的中文资料首推董西成的《Hadoop技术内幕:深入解析YARN架构设计与实现原理》。

如何运行storm-yarn

处理逻辑简介

由yarn来分配nimbus和supervisor的运行时所需要的资源 真正将nimbus和supervisor带起来的是ApplicationMaster

从开始研究storm源码到渐渐开始yarn框架和代码的学习说明当时选择一个小而精的开源入手逐步扩大研究范围的策略还是对的。

Trident-ML

或许谈起storm是大数据实时计算框架已经让你不明觉厉,如果说storm还可以跟机器学习算法(ml)有机的结合在一起,是不是更加觉着高大尚呢。trident-ml就是一个这样让人无限遐想的产品。

其实要讲trident-ml无非是要回答这样几个问题,

什么是ml 什么是trident 为什么要将trident用于ml

trident-ml的官方站点  https://github.com/pmerienne/trident-ml

什么是ml

关于什么是ML(Machine Learning)以及machine learning的常见算法有哪些,详见维基百科中的介绍,要是觉着这解释不过瘾,那就来点有料的来自princeton大学的讲义

什么是trident

这个问题在本博的系列文章中已经屡次提及并有详尽的解释。

为什么要将trident和ml绑定在一块

Machine Learning机器学习库运行在trident之上使得分析的结果更为实时的反映出来,加快了调整步骤。举个例子吧,比如在逛京东或是amazon,通过这个实时的机器学习过程,后台服务可以给客户找到更为精确的推荐产品。

有什么同类的产品么

在软件这个世界里,从来不存在什么唯一,即然有trident-ml,那么就能找到同类的产品。

谈到机器学习,你可能听说过在该领域最牛的处理语言R。到了这里,想必已经料到与trident-ml相竞争的是一个什么东东了,对那就是trident-r。

trident-r的官方地址 https://github.com/quintona/storm-r

与trident-ml相比,trident-r表现的不够活跃,略显沉闷。

关于apache storm,本博已经花了相当的篇幅来聊它的里里外外。从明儿开始,换个话题聊聊了。或者是yarn,或者是linux kernel或者是server application,谁知道呢?

Apache Flink初接触

Apache Flink闻名已久,一直没有亲自尝试一把,这两天看了文档,发现在real-time streaming方面,Flink提供了更多高阶的实用函数。

用Apache Flink实现WordCount 下载Apache Flink 0.10.1

启动local模式

bin/start-local.sh

bin/start-scala-shell.sh remote localhost 6123

Flink中JobManager的默认监听端口是6123


wordcount

val text = env.fromElements("Whether The slings and arrows of outrageous fortune")

val counts = text.flatMap{ _.toLowerCase.split("\\W+")}.map{ (_,1)}.groupBy(0).sum(1)

counts.print

海量数据实时分析引擎 Apache Flink 当系统出现大量或者重大的错误却不被人感知,将会对业务产生影响,从而导致资产损失。当竞争对手实施了新战术,却无法及时感知,跟不上竞争对手的节奏,总是追着对方尾巴走。当要做决策的时候,海量的业务数据增长却无法实时看到聚合结果,决策总是凭借过往经验或者过时的数据分析之上。
官宣|Apache Flink 1.17 发布公告 Apache Flink PMC(项目管理委员)已宣布发布 Apache Flink 1.17.0。Apache Flink 是领先的流处理标准,流批统一的数据处理概念在越来越多的公司中得到认可。
Apache Flink 1.16 功能解读 在本次分享中,将介绍一下 Flink 1.16 的整体情况;然后我们将从三个方面(更稳定易用高性能的 Flink 批处理;持续领先的 Flink 流处理;蓬勃发展的 Flink 生态。)来深入讲解 Flink 1.16 在流批一体的大方向上所做的改进。
《Apache Flink 必知必会》电子版地址 本书不仅有PMC 及 Committer 坐阵,全方位解析 Flink 底层架构、核心功能模块、社区生态等,知其然更知其所以然,还能带你手把手实操演示,轻松掌握 Flink 应用场景与功能实现的生产开发技能!零基础上手实战,7天轻松学会 Flink~
《Apache Flink 案例集(2022版)》电子版地址 希望通过本手册,可以让大家了解到大量来自不同领域的公司在数据集成、数据分析、人工智能、云原生以及企业数字化转型等应用场景中使用 Apache Flink 解决实际生产问题的成功案例,其中既包含传统和新兴的互联网公司,也包含通信、证券、银行等传统企业。