课时1:使用Flink实时发现最热Github项目

本文涉及的产品
实时计算 Flink 版,5000CU*H 3个月
简介: 课时1:使用Flink实时发现最热Github项目

Flink-Learning训练营:课时1:使用Flink实时发现最热Github项目

课程地址:https://developer.aliyun.com/trainingcamp/0bcc1ab57cf841a2af632d6252fecbab

使用flink实时发现最热Github项目

 

内容简介

一、实验准备

二、实验内容

 

一、实验准备

在进行实验前,需要我们开通阿里云实时计算flink版免费试用,在开通之后,我将和大家一起通过flink对get hub的实时事件流进行分析,并通过报表直观展示了解git HUB的最新热门趋势。特定仓库或者组织的活跃度,操作完本实验后,您将能够对flink  SQL基础能力和Flink实施处理特性有直观的初步体验

1.开通步骤

图片1.png

要开通实时计算flink版试用,首先我需要我们借用阿里云试用中心链接http://free.aliyun.com/?crowd=enterpise&pipCode=sc ,点击就会出现试用的卡片,然后我们点击立即试用这个按键即可开通试用,当开通试用之后我们就进入产品控制台开始实验本次实验我将会带领,大家介绍一下什么是git hub公开数据集,然后接着通过三个小实验,然后将结果通过报表展示进行分析,看看会不会有一些有意思的结论

2.git hub公开数据集的介绍

图片2.png

git hub公开数据集的链接为http://www.gharchiye.org/  我们点进去就可以跳转到官方地址看啊,在这里我们可以看到一些详细的介绍git hub公开数据集是git hub提供的一个开放数据集合,它包含了每个公共仓库的事件数据,git hub公开数据集的数据可以用与各种类型的研究和分析,例如开源社区的写作情况,开发者的行为特征,编程语言的发展趋势等等,使开发者能更好的了解git hub上的活动和趋势并从中获取有价值的信息,每一条数据都是git hub仓库进行的各种操作活动事件,其中包含了仓库名称用户名组织名称和操作事件类型,操作事件类型的地址GitHub event types,我们点击跳转过去就可以看到有很多种操作事件,比如说我们fork一个仓库的时候就会请求一个fork invent被记录下来,当我们对一个仓库进行star的时候,一个watch invent就会被记录下来。本次实验数据就是将GH数据集的数据实时同步到SLS日志中,以供我们的实验使用

 

二、实验内容

实验一 、如何实施发现GitHub最热项目

接下来我们开始第一项实验,如何实时发现GitHub最热项目,我将和大家一起在vap平台上进行操作。

首先,我们进入vap平台,在进行作业开发之前,我们需要先创建Session集群,只有flink集群存在了,才能执行具体的任务。在本次实验中,我们需要开启circle previews。开启circle preview之后我们就不需要指定具体的think,而是能直接将select结果进行输出,然后通过简单的报表配置,就能够将结果直白的展现出来。只要我们进行作业开发,首先我们通过ddl创建一个ss原表。

这是一个临时表,里面的字段与ss日志里面的字段是一一对应的,我们通过ss connect进行连接,然后指定它的存放数据的ss项目以及对应的lock store,然后指定网络,指定它的连接key,并且每批最多读取500的数据,开始时间为6月1日,这个start time就是消费SSLOG从哪个时间段开始,如果不指定的话就默认消费最新的数据,再进设置的时候数据尽量设置近一点,比如说你要统计一周的数据,你就将数据尽量放在一周偏前面一点点。因为前期无效计算会耗费的时间比较长,结果一直无法输出。我们通过开启mini batch和作业并发,然后加速它的计算速度,我们看看具体的业务代码。因为star数最能反映项目的热度,所以我们这边tab采用是watch event,并且为了统计某个仓库一天之内的数据量,我们就按照天仓库名进行分组,统计一天之内的总量,然后进行排序,选择前五项我们验证一下SQL是否正确验证通过,我们就开始执行。

执行时结果可以多种格式进行输出,比如说我们可以通过简单的报表输出,因为这边是排行榜,我希望更直观的展示我就采用这个y8。使用y8的时候,我需要设置y轴表示是数量x轴我需要转换的是仓库名,所以这边那个group办我就设置成People name就能够直观的展示,然后数据就源源不断的被计算。我们看一看我得到的数据,

图片3.png

可以看到第一名和第五名都是AI视频换脸。第二名和第四名都是大模型相关的。而第三名的是大麦网抢票,可能最近的演唱会比较多,目前由于热度太高,可能创作者担心涉及到侵权,目前已经停止维护。根据这些结果,可以看到,在过去一周内AI是GitHub技术关注的领域,其中最受关注的子方向就是AI视频换脸和大模型。

 

实验二   全球化协作让Apache更有活力

实验二希望从orgnize即从组织的角度出发,看一个组织在一段时间内的和活跃度变化趋势,为了使结果更加明显,我这边选取了GitHub 比较活跃的组织,比如Apache开源组织,比如说阿里巴巴,看他们在一天之内的活跃度变化,总结出一些有意思的规律。我们再次回到VIP平台,首先将上一次的任务停止。我这边之所以停止,是因为我这边C型集群设置的CPU数比较少,一个任务基本就占据的差不多,无法启动第二个任务,如果你这边绑定的CPU数比较多的话,其实是可以同时执行多个任务的,然后进入作业二。

第二个任务的Ttl和第一个任务基本基本相同,唯一的区别就是start time是不相同的。由6月1日变成6月7日,其从最终的结果来看是没有区别的,因为在vr条件中已经将早于一天前的数据进行过滤。虽然结果不同,中间六天的无效数据还是要流经Flink进行计算的,耗费的资源比较长,耗费的无效时间比较长,如果设成6月1日,你会发现很长一段时间内没有数据写入。

那我们来具体看一下circle,我这边统计Apache这个组织从昨天这个时候开始的,事件总量进行count。因为要统计一个总量,这边没有设置具体的事件类型。为什么要这个node呢?这个node其实是个无效值,但是不加这个node的话,仅仅是这两项,输出的结果只有一个值,我希望以折线图的形式来进行展示。所以需要一个历史的累加值,所以说这边设置now之后它会显示一个累加值,我们进行执行。可以发现,数据也没有立马出来,这是因为当前时间已经昨天的下午六点,但这个时间设置成昨天下午两点,所以中间有四个小时的时间来进行无效的数据需要计算,不过也很快可以看确实是从昨天的六点开始计算。我这边希望以折线图的形式更加直观的显示这个变化,所以我们这边需要设置采用折线图。x轴就是时间y轴应该是采用的是事件总量。

因为这count放在这里,然后它就显示了我们想要的结果,可以看到数据是源源不断的过来的,所以说他这个图表是一直在变化的。如果我们想统计阿里巴巴将这边设置成阿里巴巴即可。我可以看到最终的结果,

图片4.png

最终结果Apache的折线图趋势在上面,阿里巴巴的折线图趋势在下面,这张图对比这两张图可以看到Apache作为一个全球化的开源组织,其实他的代码提交它的活跃度,使用量其实比较均匀的。但在阿里巴巴,其实它更多的侧重在在国内。可以看到它的趋势上九点之后,它的变化就非常平缓夜里基本就没有什么变化,在早上九点之后可以看到它的一个增长显著提升。

 

实验三 Flink&park的评论热力图

实验三希望以热度的形式来反映某个仓库或者某个组织在一段时间内的活跃度的具体的分布情况。我们回到VIP平台。

前面的代码基本没有任何区别,唯一的区别就是select语句,我们来具体看一下。所以我们希望反应每个小时的变化情况,所以就统计小时的总量,我们group by的时候根据天和小时进行group by,然后对每个小时进行统计。我们计算是从七天之前开始,早于七天之前的数据,我没将它过滤,统计的仓库是Apache flink,具体这些事件可以看到,不管是push代码还对push进行PR请求,或是对他进行review,企业ashol这些都是与开发者相关的一些动作,所以我们把它给放入其中。我们可以验证一下,失败报数说明表不存在,选定的这些,还有上面的这些detail,所以说如果全局的话,验证是没有问题的然后我们进行执行。执行和刚才一样,因为毕竟他是从两点开始的,如果对到七天前的,至少应该到下午六点,所以他还是需要一定时间的延迟。可以看到数据就开始出现了然后我们这边热力图可以看到group 代表是横轴,我们把它设置为comment date,他们在对着这其实都你是都可以把它设置为其他字段的。这些都是可以设置的,然后它的纵轴通过这个spring split by,我们按照小时来进行分配,然后每一个都代表一个统计的区域,然后数据颜色我们就通过comment countsum的用处不大,因为我们circle里面进行计算了,所以这么一个区域其实是只有一个值,就是具体的总量。其实这个sum就是对这个这一段时间区内出现的总数进行聚合,可以看到从一周前慢慢开始计算,一直计算最新的数据之后就源源不断的拉取新的数据。如果我们想要统计spark,只需要把它改成spark即可。如果统计总量,把这一段去掉即可。我们来看看最终的结果。

图片5.png

第一张表是flink,它的热在过去一周的热力图,第二张是Spark在过去中的热力图,最后一个是所有的仓库的热力图。从整体来看,可以看到白天的话,颜色比较浅,晚上的颜色比较深,所以按这个推断,国外开发者应该是更活跃国外的开发者肯总量加起来是比国内高的我。而spark flink可以看到,国内开发者是比较活跃。与spark相比,flink的开发者其实更侧重于国内,特别是在网上其实是比较淡的,有的甚至数据量非常少。而高峰期基本在下午,下午的两点到六点也符合国内开发者的工作黄金时间。
图片6.png然后6月3日到四日作为周末,可以看到flink基本没人工作,但是spark周末还是有好多人在卷,所以从这样看看起来flink开发者是比Spark开发者更会享受周末本次实验大致就是以上内容。

相关实践学习
基于Hologres轻松玩转一站式实时仓库
本场景介绍如何利用阿里云MaxCompute、实时计算Flink和交互式分析服务Hologres开发离线、实时数据融合分析的数据大屏应用。
Linux入门到精通
本套课程是从入门开始的Linux学习课程,适合初学者阅读。由浅入深案例丰富,通俗易懂。主要涉及基础的系统操作以及工作中常用的各种服务软件的应用、部署和优化。即使是零基础的学员,只要能够坚持把所有章节都学完,也一定会受益匪浅。
相关文章
|
2月前
|
文字识别 异构计算 Python
关于Github中开源OCR项目的实验过程与思考
新手尝试Git clone Python OCR项目,遇到各种报错。测试了Paddle OCR、Tesseract OCR和EasyOCR。Paddle OCR因平台限制未能在Notebook部署,Tesseract OCR在Colab成功但无法复现。EasyOCR最终在阿里云天池和Colab部署成功,但天池GPU资源不足。建议使用魔搭社区的实例,阿里云提供免费OCR服务。寻求简单OCR项目推荐。附EasyOCR安装和使用代码。
90 2
|
2月前
|
前端开发
Github项目分享——免费的画图工具drow,最新前端面试题整理
Github项目分享——免费的画图工具drow,最新前端面试题整理
|
7天前
|
搜索推荐 开发者 SEO
CSDN 大规模抓取 GitHub 上的项目到 GitCode,伪造开发者主页引公愤
后续影响和发展方向 GitCode是CSDN开发的一个代码托管平台,为了快速获得搜索引擎流量,CSDN采用了惯用的手段,直接搬运大量内容进行填充。接下来,他们很可能会通过SEO农场来污染搜索引擎,以获得更多的流量。这种操作不仅对开发者极不尊重,也对整个互联网环境造成了严重的污染。 写在最后 GitCode 已经出来有挺长时间了,期间没闹出过什么问题。近期,不知道 GitCode 内部的哪位领导脑子被驴踢了,做出搬运 GitHub 的仓库来丰富自己平台内容的决定。 这种无视开发者权益、恶意搬运项目的行为,必将受到开发者社区的强烈谴责,尊重开发者的劳动成果,维护开源社区的良好氛围。开发者们也应团结
|
17天前
|
Kubernetes JavaScript 前端开发
OpenSource项目Github Trending一周回顾
OpenSource项目Github Trending一周回顾
告别龟速,从GitHub快速下载项目的技巧分享,简单又高效!
告别龟速,从GitHub快速下载项目的技巧分享,简单又高效!
|
2月前
|
Oracle Java 关系型数据库
实时计算 Flink版产品使用合集之在同步Oracle数据时,需要下载并添加到项目中的jar包主要包括哪些
实时计算Flink版作为一种强大的流处理和批处理统一的计算框架,广泛应用于各种需要实时数据处理和分析的场景。实时计算Flink版通常结合SQL接口、DataStream API、以及与上下游数据源和存储系统的丰富连接器,提供了一套全面的解决方案,以应对各种实时计算需求。其低延迟、高吞吐、容错性强的特点,使其成为众多企业和组织实时数据处理首选的技术平台。以下是实时计算Flink版的一些典型使用合集。
|
1月前
|
算法 程序员 开发工具
GitHub上新!14个Python项目详细教程(附完整代码)
Python作为程序员的宠儿,越来越得到人们的关注,使用Python进行应用程序开发的也越来越多。 今天给小伙伴们分享的这份项目教程完整代码已上传至GitHub,你可以选择跟着这份教程一段一段的手敲出来这几个项目,也可以直接从GitHub上copy下来。
|
2月前
|
SQL 关系型数据库 Java
实时计算 Flink版操作报错之在阿里云DataHub平台上执行SQL查询GitHub新增star仓库Top 3时不显示结果,是什么原因
在使用实时计算Flink版过程中,可能会遇到各种错误,了解这些错误的原因及解决方法对于高效排错至关重要。针对具体问题,查看Flink的日志是关键,它们通常会提供更详细的错误信息和堆栈跟踪,有助于定位问题。此外,Flink社区文档和官方论坛也是寻求帮助的好去处。以下是一些常见的操作报错及其可能的原因与解决策略。
|
21天前
|
前端开发 微服务 Python
轻松搜寻GitHub宝藏!掌握这些技巧快速找到理想项目
轻松搜寻GitHub宝藏!掌握这些技巧快速找到理想项目
|
23天前
|
Shell 开发工具 git
如何将本地项目上传到github上
如何将本地项目上传到github上

热门文章

最新文章

相关产品

  • 实时计算 Flink版