1. 物流车队管理
一家物流公司管理着一支庞大的运输车队,该公司希望收集和分析数据,帮助调度员实时指挥车队。
物流车队管理可以提高运输效率和分配资源。要收集和分析的数据主要来自实时数据,例如车辆位置,数字行车记录仪数据,交通信息,货物详情,到达时间和停车时长。数据格式是非结构化的,包括地理信息,文本,视频和图片。为了避免数据丢失和损坏,有必要转换这些非结构化的处理分析前的数据到结构化数据。这个基础设施的目标是收集和分析用于指导车队的各种来源数据,同时提供实时访问权限。
物流车队数据基础设施包括三个逻辑层:批处理层,流处理层,服务层。批处理层可以很好的处理离线数据,但有很多场景数据不断实时生成,并且需要实时查询处理。流处理层正是用来处理增量的实时数据。服务层用于响应用户的查询请求,合并离线数据查询结果和实时数据结果数据集到最终的数据集。
对于日志记录收集,多个Kafka集群将被使用,数据作为本地缓存存档到Flume中。Kafka是一个分布式消息传递系统,用于收集和传送大量日志数据,低延迟。Kafka在这种情况下的主要贡献是主题分区,它将并行消息传递的负载分散到多个服务器上。Flume作为分布式系统结合Kafka可以有效地从HDFS或HBase收集,聚合和移动大量数据。比较Sqoop和flume, sqoop更专注于结构化数据,因为原始数据通常是非结构化的或半结构化的,所以在本系统中,使用Flume作为数据管道来摄取数据。至于流处理系统中,Spark Streaming将用于分析实时数据和输出将存储在HBase中。Spark Streaming是一个实时的处理系统,具有高吞吐量和容错性,与之相比的另一个实时分析系统Apache Storm,Spark Streaming可以更容易设置基础设施。来自Flume的所有原始数据将存储在HDFS中以供进一步使用处理,例如使用MapReduce和Hive来过滤和聚合数据以对大数据进行挖掘。MapReduce在数据并行方面的性能优于Spark,后者将用于本例中的数据特征构造。在这种情况下,Apache Hive可以将数据组织到表中,存储系统HBase和Hive都可以提供查询的访问权限。
通常,Kafka和Spark Streaming基础结构具有以下优点。该 Spark框架的高效率和低延迟确保了良好的实时性和Spark Streaming操作的性能。而且,与Storm相比, Spark Streaming具有Spark提供的高级API和灵活性框架,它有助于以简单的方式编写更复杂的算法。基础设施的高度一致性使得车队的主管可以轻松完成查询实时数据,它还确保了流处理和批处理的平衡处理。
2. 商业分析:中小企业希望分析社交媒体数据以识别新兴市场可以帮助他们相应调整产品组合的趋势。数据分析的结果将需要被列入一份报告,用于为每月举行的下一次公司董事会会议的战略决策提供信息。
在商业公司中,零售商可以通过分析社交媒体来源来调整未来的产品组合,以识别新兴趋势。使用来自社交媒体网络的客户偏好数据可以使决策者保持内部了解市场趋势。从社交媒体收集的数据通常是JSON格式,易于分析。如下所示,由于历史格式数据,分析类型是批处理,可以确保更高的预测质量。
下面显示的基础结构是批处理。对于分析和预测巨大和高速度的大数据,Apache Hadoop平台在可扩展性和可靠性方面表现良好。具体来说,在这个基础设施中,它将使用flume与Kafka结合,提供从本地数据中心更改数据日志的功能,此外,它还提供将它们加载到集中式Hadoop集群的功能。数据将存储在HDFS中。在清理和处理原始数据之后,它将使用MapReduce和Spark通过人工智能技术进行分析,如时间序列和机器学习来进行预测。最后,计算预测结果并将其存入HBase,HBase将为其他可视化系统提供访问。在数据源层中,如第一个用例中所讨论的,Flume与Kafka结合使用可以很好地进行数据收集并且易于将数据写入HDFS。 HDFS是一个高效的分布式文件系统,提供高度容错和可扩展性,即使有许多类似的现有分布式文件系统,如AFS,NFS和GFS,HDFS显示出比其他更多的优势,它是开源版本并为大批量数据提供更多的可能。
Spark SQL通过使用API,在关系和程序化处理之间提供更紧密的集成。此外,许多用户使用Spark SQL,原因是它使用基于Hive的嵌套数据模型。与现有的数据框架Shark不同,Spark SQL可以准确地为各种来源和格式的数据建模。根据市场应用表现,对于战略业务决策的趋势分析使用MapReduce和Spark表现出色。在这种情况下,MapReduce也将用于特征构造,Spark将用于时间序列分析和机器学习,以预测销售,这是预测系统的核心部分。
3. 信用卡欺诈检测:金融机构需要开发一种检测方法识别信用卡欺诈。鉴于为客户提供可靠服务的重要性,需要开发在交易被阻止之前进行提供自动分析预警和交互式用户输入的功能。
欺诈检测通过预测特定交易或客户账户中欺诈的可能性来帮助提高客户账户安全。 如下所示,欺诈检测模型中使用的批处理数据是从包括信用卡交易特征,持卡人特征和交易历史的历史数据中收集的。对于实时欺诈预测,实时数据是根据信用交易和电子交易的内部数据而获取到,并已转为结构化数据。在欺诈检测流处理期间,系统需要保证低延迟,高容错处理,并且需要对每个数据进行实时精确处理。
解决方案通常分为两个阶段,首先,由历史数据分析和取证分析组成的引擎,其用于构建机器学习模型,同时,明确和经常更新的欺诈指标有助于提高欺诈检测的准确性。 第二阶段将使用第一阶段构建的模型来预测实时数据。由于基础设施主要集中在第二阶段,我们假设机器学习模型已经很好地构建。在流处理过程中,基础设施将使用Kafka存储和汇聚流数据到Storm实现实时数据分析功能。
上图显示了实时欺诈检测解决方案的基础结构。信用卡交易事件通过Flume从服务器获取并存储在Apache Kafka。在此解决方案中,Apache Storm根据模型处理所有原始事件,检测结果将存储在Redis中供实时服务器使用,欺诈检测需要高级别速度系统进行分析,与其他流处理系统相比,使用Storm可能是需要近乎实时处理的工作负载的最佳方式。它可以处理非常大的数据,延迟比其他解决方案更少。Redis作为缓存,可以将数据保存在硬盘上。
此外,Redis提供的功能比其他缓存系统更多,它可以支持多种数据类型和pub-sub模型并提供高可用性的回答。同时,被识别的非欺诈事件和欺诈事件都会存储到HBASE中以供将来分析,对机器学习的模型进行训练和更新。
总的来说,Kafka基于日志文件,可以与Storm高度兼容。 在数据存储阶段,Redis作为缓存数据库在实时环境中具有较高的读写速度,可以满足用户对实时监控和查询的需求。
4. 交通管制和收费:一家公司赢得了开发一个监控一个国家所有主要道路(即高速公路)交通系统的投标。系统不仅应报告交通违规行为,如超速驾驶或冒险驾驶行为,还应提供自动收费计费系统的数据。
交通控制和收费系统可以帮助更好地监控交通违规,例如超速或冒险驾驶行为,还可以将数据传送到自动计费系统。如下所示,各种内容格式和大量快速数据是一个巨大的挑战。 来自道路传感器,GPS设备以及其他数据(如日期,时间和驾驶员ID)的数据将被放入系统中,以提供交通违规的实时摘要。
此架构使用相同的订阅消息传递系统,Kafka来收集流数据。收集的数据将发送到HDFS。 就大量的时间流数据而言,Yarn作为资源管理系统可以提供集群监控和资源访问管理,可以提高处理效率。然后,数据将在批处理层和流处理层中处理。 在批处理层中,它将使用Hive,MapReduce来基本处理原始数据,并存储在HBase中以供进一步使用。 在流处理中,它将使用Spark流来分析实时数据,并存储在Redis中。在HBase和Redis中收集的数据将输入到机器学习模型中以识别哪些车辆超出速度限制或风险驾驶行为,整体结果将被发送到自动收费计费系统。
此集成的关键是使用Kafka作为可扩展和有序的事件存储。在这种情况下,主要的挑战是每秒存储和处理这种数据收集以及包含数十万个链接的地图。 HDFS可以满足上述存储需求。它可以在短时间内处理数千万个文件。HDFS具有文件的一次写入多次访问模型,可简化数据一致性问题并实现高吞吐量数据访问。 Mapreduce完全适合,由于Mapreduce中4000个节点的可扩展限制,它将在执行Mapreduce之前使用YARN作为数据资源管理,因为Mapreduce中提供的资源管理能力需要YARN,这有效地调整了Mapreduce。Mapreduce显示了处理数据的可靠性,它将用于Hadoop进行批处理,从而进行进一步的分析。HBase的使用将在分布式集群中扩展。与Storm和Flink等其他流处理相比,Spark流处理系统可以有效地在数据流上应用机器学习算法。
作者原创,转载请说明。
工作学习大数据的一些输出,欢迎指错提高,作为一名数据产品新人,也欢迎讨论。微信:ren18603342028
网友评论