apachesparkapi(apachespark中文实战攻略)

技术怎么使用Apache Spark构建分析Dashboard这篇文章主要介绍“怎么使用Apache Spark构建分析Dashboard”,在日常操作中,相信很多人在怎么使用Apache Spark构建分析Dashbo

本文主要介绍“如何使用Apache Spark构建分析仪表盘”。在日常操作中,相信很多人对于如何使用Apache Spark构建分析Dashboard都有疑问。边肖查阅了各种资料,整理出简单易用的操作方法,希望能帮你解答关于如何使用Apache Spark搭建分析Dashboard的疑惑!接下来,请和边肖一起学习!
问题描述
电子商务门户网站(http://www.aaaa.com)希望建立一个实时分析仪表板,以可视化每分钟交付的订单数量,从而优化物流效率。
解决方案
在解决方案之前,请快速查看我们将使用的工具:
Apache Spark ndash通用大规模数据快速处理引擎。Spark的批处理速度比Hadoop的MapReduce快近10倍,而内存中的数据分析速度快近100倍。
Python ndashPython是一种广泛使用的高级、通用、解释性和动态编程语言。
Kafka ndash一个高吞吐量的分布式消息发布和订阅系统。
Node.js ndash事件驱动的I/O服务器端JavaScript环境,运行在V8引擎上。
Socket.io ndash插座。IO是一个用于构建实时Web应用程序的JavaScript库。它支持Web客户端和服务器之间的实时双向通信。
高级图表。网页上的交互式JavaScript图表。
CloudxLab ndash为练习和学习各种工具提供一个真实的基于云的环境。
如何构建数据Pipeline?
下面是数据管道的高层架构图。
怎么使用Apache Spark构建分析Dashboard
数据管道
怎么使用Apache Spark构建分析Dashboard
实时分析Dashboard
让我们从数据管道中每个阶段的描述开始,并完成解决方案的构建。
阶段1
当客户采购系统中的项目或订单管理系统中的订单状态发生变化时,相应的订单ID、订单状态和时间会被推送到相应的卡夫卡主题。
数据集
因为没有真正的线上电商门户,我们打算用CSV数据集来模拟一下。让我们看看数据集:
怎么使用Apache Spark构建分析Dashboard
数据集中有三列:“日期时间”、“订单编号”和“状态”。数据集中的每一行代表订单在特定时间的状态。这里我们用“xxxxx

-xxx”代表订单标识。我们只对每分钟交付的订单数量感兴趣,所以不需要实际的订单ID。

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

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

推送数据集到Kafka

shell脚本将分别从这些CSV文件中获取每一行,并将其推送到Kafka。将一个CSV文件推送至Kafka后,需要等待1分钟才能推送下一个CSV文件,可以模拟实时电商门户环境,其中订单状态会以不同的时间间隔进行更新。在现实世界中,当订单状态发生变化时,相应的订单明细会推送给卡夫卡。

运行我们的shell脚本,将数据推入卡夫卡主题。登录到CloudxLab网络控制台并运行以下命令。

怎么使用Apache  Spark构建分析Dashboard

阶段2

在第一阶段之后,卡夫卡的“订单-数据”主题中的每条信息将如下

怎么使用Apache  Spark构建分析Dashboard

阶段3

trong>

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。现在,由于有了这些基础知识,我们就可以使用上述工具构建更复杂的系统。

到此,关于“怎么使用Apache Spark构建分析Dashboard”的学习就结束了,希望能够解决大家的疑惑。理论与实践的搭配能更好的帮助大家学习,快去试试吧!若想继续学习更多相关知识,请继续关注网站,小编会继续努力为大家带来更多实用的文章!

内容来源网络,如有侵权,联系删除,本文地址:https://www.230890.com/zhan/145801.html

(0)

相关推荐

  • 头顶出汗是怎么回事,头部汗如雨下是怎么回事

    技术头顶出汗是怎么回事,头部汗如雨下是怎么回事头部汗如雨下是怎么回事头部大量出汗的原因分为生理性和病理性两个方面。生理性出汗与身体内外温度头顶出汗是怎么回事、精神因素和饮食有关;病理性出汗常见于甲亢、钙和维生素D缺乏、嗜

    生活 2021年11月1日
  • CF 1500 C

    技术CF 1500 C CF 1500 CCF 1500 C
    题意:
    ? 给你两个 \(n \times m\) 的矩阵 A,B(1 \(\leq\) n,m \(\leq\) 1500),矩阵的元素均

    礼包 2021年11月30日
  • 台式电脑屏幕亮度怎么调节,如何调节台式电脑屏幕亮度

    技术台式电脑屏幕亮度怎么调节,如何调节台式电脑屏幕亮度调节台式电脑屏幕亮度方法:首先鼠标右键单击桌面空白处台式电脑屏幕亮度怎么调节,选择NVIDIA的控制面板。其次需要点击调整桌面颜色设置,在选择颜色设置方式下方,选择使

    生活 2021年10月22日
  • SQL-Hive中Select From怎么用

    技术SQL-Hive中Select From怎么用这篇文章主要介绍了SQL-Hive中Select From怎么用,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解

    攻略 2021年12月10日
  • 图表可视化ppt(ppt如何制作可视化数据图表)

    技术如何用ppt做出惊艳的可视化图表呢这期内容当中小编将会给大家带来有关如何用ppt做出惊艳的可视化图表呢,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。在做年底的总结报告里,总少不了数

    攻略 2021年12月22日
  • 如何理解MySQL 5.5 InnoDB表锁

    技术如何理解MySQL 5.5 InnoDB表锁本篇文章为大家展示了如何理解MySQL 5.5 InnoDB表锁,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。

    攻略 2021年11月16日