当前位置:首页 >时尚 >关键七步,用Apache Spark构建实时分析Dashboard 从而优化物流的分析效率

关键七步,用Apache Spark构建实时分析Dashboard 从而优化物流的分析效率

2024-07-01 02:15:09 [百科] 来源:避面尹邢网

关键七步,关键七步用Apache Spark构建实时分析Dashboard

作者:Abhinav 大数据 Spark 本文我们将学习如何使用Apache Spark streaming,构建Kafka,分析Node.js,关键七步Socket.IO和Highcharts构建实时分析Dashboard。构建

[[176841]]

本文我们将学习如何使用Apache Spark streaming,分析Kafka,关键七步Node.js,构建Socket.IO和Highcharts构建实时分析Dashboard。分析

关键七步,用Apache Spark构建实时分析Dashboard 从而优化物流的分析效率

问题描述

关键七步,用Apache Spark构建实时分析Dashboard 从而优化物流的分析效率

电子商务门户希望构建一个实时分析仪表盘,关键七步对每分钟发货的构建订单数量做到可视化,从而优化物流的分析效率。

关键七步,用Apache Spark构建实时分析Dashboard 从而优化物流的分析效率

解决方案

解决方案之前,关键七步先快速看看我们将使用的构建工具:

  • Apache Spark – 一个通用的大规模数据快速处理引擎。Spark的分析批处理速度比Hadoop MapReduce快近10倍,而内存中的数据分析速度则快近100倍。更多关于Apache Spark的信息。
  • Python – Python是一种广泛使用的高级,通用,解释,动态编程语言。 更多关于Python的信息。
  • Kafka – 一个高吞吐量,分布式消息发布订阅系统。 更多关于Kafka的信息。
  • Node.js – 基于事件驱动的I/O服务器端JavaScript环境,运行在V8引擎上。 更多关于Node.js的信息。
  • Socket.io – Socket.IO是一个构建实时Web应用程序的JavaScript库。它支持Web客户端和服务器之间的实时、双向通信。
  • Highcharts – 网页上交互式JavaScript图表。 更多关于Highcharts的信息。
  • CloudxLab – 提供一个真实的基于云的环境,用于练习和学习各种工具。你可以通过在线注册立即开始练习。

如何构建数据Pipeline?

下面是数据Pipeline高层架构图

用Apache Spark构建实时分析Dashboard

我们的实时分析Dashboard将如下所示

用Apache Spark构建实时分析Dashboard

实时分析Dashboard

让我们从数据Pipeline中的每个阶段的描述开始,并完成解决方案的构建。

阶段1

当客户购买系统中的物品或订单管理系统中的订单状态变化时,相应的订单ID以及订单状态和时间将被推送到相应的Kafka主题中。

数据集36大数据(http://www.36dsj.com/)

由于没有真实的在线电子商务门户网站,我们准备用CSV文件的数据集来模拟。让我们看看数据集:

用Apache Spark构建实时分析Dashboard

数据集包含三列分别是:“DateTime”、“OrderId”和“Status”。数据集中的每一行表示特定时间时订单的状态。这里我们用“xxxxx-xxx”代表订单ID。我们只对每分钟发货的订单数感兴趣,所以不需要实际的订单ID。

可以从CloudxLab GitHub仓库克隆完整的解决方案的源代码和数据集。

数据集位于项目的spark-streaming/data/order_data文件夹中。

推送数据集到Kafka

shell脚本将从这些CSV文件中分别获取每一行并推送到Kafka。推送完一个CSV文件到Kafka之后,需要等待1分钟再推送下一个CSV文件,这样可以模拟实时电子商务门户环境,这个环境中的订单状态是以不同的时间间隔更新的。在现实世界的情况下,当订单状态改变时,相应的订单详细信息会被推送到Kafka。

运行我们的shell脚本将数据推送到Kafka主题中。登录到CloudxLab Web控制台并运行以下命令。

用Apache Spark构建实时分析Dashboard

阶段2

在第1阶段后,Kafka“order-data”主题中的每个消息都将如下所示

用Apache Spark构建实时分析Dashboard

阶段3

Spark streaming代码将在60秒的时间窗口中从“order-data”的Kafka主题获取数据并处理,这样就能在该60秒时间窗口中为每种状态的订单计数。处理后,每种状态订单的总计数被推送到“order-one-min-data”的Kafka主题中。

请在Web控制台中运行这些Spark streaming代码

用Apache Spark构建实时分析Dashboard

阶段4

在这个阶段,Kafka主题“order-one-min-data”中的每个消息都将类似于以下JSON字符串

用Apache Spark构建实时分析Dashboard

阶段5

运行Node.js server

现在我们将运行一个node.js服务器来使用“order-one-min-data”Kafka主题的消息,并将其推送到Web浏览器,这样就可以在Web浏览器中显示出每分钟发货的订单数量。

请在Web控制台中运行以下命令以启动node.js服务器

用Apache Spark构建实时分析Dashboard

现在node服务器将运行在端口3001上。如果在启动node服务器时出现“EADDRINUSE”错误,请编辑index.js文件并将端口依次更改为3002…3003…3004等。请使用3001-3010范围内的任意可用端口来运行node服务器。

用浏览器访问

启动node服务器后,请转到http://YOUR_WEB_CONSOLE:PORT_NUMBER访问实时分析Dashboard。如果您的Web控制台是f.cloudxlab.com,并且node服务器正在端口3002上运行,请转到http://f.cloudxlab.com:3002访问Dashboard。

当我们访问上面的URL时,socket.io-client库被加载到浏览器,它会开启服务器和浏览器之间的双向通信信道。

阶段6

一旦在Kafka的“order-one-min-data”主题中有新消息到达,node进程就会消费它。消费的消息将通过socket.io发送给Web浏览器。

阶段7

一旦web浏览器中的socket.io-client接收到一个新的“message”事件,事件中的数据将会被处理。如果接收的数据中的订单状态是“shipped”,它将会被添加到HighCharts坐标系上并显示在浏览器中。

我们还录制了一个关于如何运行上述所有的命令并构建实时分析Dashboard的视频。

我们已成功构建实时分析Dashboard。这是一个基本示例,演示如何集成Spark-streaming,Kafka,node.js和socket.io来构建实时分析Dashboard。现在,由于有了这些基础知识,我们就可以使用上述工具构建更复杂的系统。

责任编辑:未丽燕 来源: 36大数据 Apache Spark大数据

(责任编辑:时尚)

    推荐文章
    • 现代传播(00072.HK)预计年度由盈转亏逾6500万元 集团广告收益下降

      现代传播(00072.HK)预计年度由盈转亏逾6500万元 集团广告收益下降现代传播(00072.HK)发布公告,公司预计截至2020年12月31日止年度录得公司综合亏损不少于约人民币6500万元,较上年度公司净利润(合共约人民币220万元)大幅减少。亏损乃主要归因于集团广告 ...[详细]
    • 如何释放被子的静电

      如何释放被子的静电被子起静电怎么办?被子全是静电可以采用以下方法进行处理。1.将有静电的被子放置在太阳下晒1-3小时。2.用喷雾在被子上撒上适量的水,后用加热毯,加热40-60分钟。3.将被子用清。被子上有静电,怎么弄 ...[详细]
    • 水杯壁很多气泡能喝吗

      水杯壁很多气泡能喝吗保温杯盖里面是泡沫健康吗?如果纯净水存放时间太长了,使其水变质了,倒入,这样的水是不可以喝的,会对健康造成危害,容易造成肠胃的疾病,出现腹痛、。水杯壁很多气泡能喝吗-业百科如果是加工过程中材质不均匀 ...[详细]
    • 水性笔是什么笔

      水性笔是什么笔水性笔是什么笔?水性笔水性笔使用油墨为纯水性,纸对其的吸收性强。水性笔一般使用在吸收面上,即使涂在非吸收面上,也可以擦去,书写在纸上一般没有背痕。优点是书写手感与书。水性笔是中性笔吗?水笔是写小楷用的 ...[详细]
    • 正商实业(00185.HK)年度纯利跌32.0% 每股基本盈利为人民币7.04分

      正商实业(00185.HK)年度纯利跌32.0% 每股基本盈利为人民币7.04分正商实业(00185.HK)公布年度业绩,截至2020年12月31日止年度,公司收益约为人民币80.691亿元,较2019年减少约9.2%;毛利约为人民币17.463亿元,较2019年减少约23.6% ...[详细]
    • 炒包菜丝怎么做好吃

      炒包菜丝怎么做好吃包菜丝怎么炒好吃?素炒包菜这样炒才好吃,做法步骤:1.把包菜的叶子剥下来,放到清水中投洗干净,沥净水分,再把包菜切成丝。2.西红柿切去果蒂,再把西红柿切成三角块,尖椒去蒂。包心菜切丝怎么炒好吃-九州醉 ...[详细]
    • 九总槟榔

      九总槟榔前言:答:张新发槟榔性价比是极高的,百年老字号,不仅用料讲究,采用非遗传承工艺和自己秘制的配方,槟榔产品味道很正,口感醇厚,不烧口,品质和创意在业内是数一数二的。企业回答:价格只是购买产品或服务过程中 ...[详细]
    • 普通却自信是什么梗

      普通却自信是什么梗那么普通又那么自信什么梗?“明明那么普通却又那么自信”这句话,可以用来吐槽网上那些明明在现实中很平庸,却在网上很嚣张的人,也可以用来调侃一个人本来没有什么能力,却又迷之自信,一...我很自信是什么梗? ...[详细]
    • 波音公司是哪个国家的 波音公司创始人是威廉爱德华波音吗?

      波音公司是哪个国家的 波音公司创始人是威廉爱德华波音吗?一起空难事件,再一次让波音公司推上了舆论热潮。波音公司作为全球航空航天业的领袖公司,同时也是世界上最大的民用和军用飞机制造商之一。那么,波音公司是哪个国家的?创始人是谁?资料显示,波音公司是美国的航空 ...[详细]
    • 我的金轮是什么梗

      我的金轮是什么梗金轮的意思是什么啊?知道的请说下!金轮的解释:佛教语。"轮"(梵语Cakra)﹐是印度古代战争用的一种武器。印度古传说中征服四方的转轮王出生时﹐空中自然出现此轮宝﹐预示他将来的无敌 ...[详细]
    热点阅读