当前位置: 首页 > news >正文

优秀网站专题无锡专业网站推广

优秀网站专题,无锡专业网站推广,青岛网站建设小公司,网站设计公司 广州在这张架构图中#xff0c;大数据平台里面向用户的在线业务处理组件用褐色标示出来#xff0c;这部分是属于互联网在线应用的部分#xff0c;其他蓝色的部分属于大数据相关组件#xff0c;使用开源大数据产品或者自己开发相关大数据组件。 典型互联网大数据平台架构 首先我…在这张架构图中大数据平台里面向用户的在线业务处理组件用褐色标示出来这部分是属于互联网在线应用的部分其他蓝色的部分属于大数据相关组件使用开源大数据产品或者自己开发相关大数据组件。 典型互联网大数据平台架构 首先我们来看一个典型的互联网大数据平台的架构如下图所示 在这张架构图中大数据平台里面向用户的在线业务处理组件用褐色标示出来这部分是属于互联网在线应用的部分其他蓝色的部分属于大数据相关组件使用开源大数据产品或者自己开发相关大数据组件。 你可以看到大数据平台由上到下可分为三个部分数据采集、数据处理、数据输出与展示。 数据采集 将应用程序产生的数据和日志等同步到大数据系统中由于数据源不同这里的数据同步系统实际上是多个相关系统的组合。数据库同步通常用 Sqoop日志同步可以选择 Flume打点采集的数据经过格式化转换后通过 Kafka 等消息队列进行传递。 不同的数据源产生的数据质量可能差别很大数据库中的数据也许可以直接导入大数据系统就可以使用了而日志和爬虫产生的数据就需要进行大量的清洗、转化处理才能有效使用。 数据处理 这部分是大数据存储与计算的核心数据同步系统导入的数据存储在 HDFS。MapReduce、Hive、Spark 等计算任务读取 HDFS 上的数据进行计算再将计算结果写入 HDFS。 MapReduce、Hive、Spark 等进行的计算处理被称作是离线计算HDFS 存储的数据被称为离线数据。在大数据系统上进行的离线计算通常针对(某一方面的)全体数据比如针对历史上所有订单进行商品的关联性挖掘这时候数据规模非常大需要较长的运行时间这类计算就是离线计算。 除了离线计算还有一些场景数据规模也比较大但是要求处理的时间却比较短。比如淘宝要统计每秒产生的订单数以便进行监控和宣传。这种场景被称为大数据流式计算通常用 Storm、Spark Steaming 等流式大数据引擎来完成可以在秒级甚至毫秒级时间内完成计算。 数据输出与展示 大数据计算产生的数据还是写入到 HDFS 中但应用程序不可能到 HDFS 中读取数据所以必须要将 HDFS 中的数据导出到数据库中。数据同步导出相对比较容易计算产生的数据都比较规范稍作处理就可以用 Sqoop 之类的系统导出到数据库。 这时应用程序就可以直接访问数据库中的数据实时展示给用户比如展示给用户关联推荐的商品。 除了给用户访问提供数据大数据还需要给运营和决策层提供各种统计报告这些数据也写入数据库被相应的后台系统访问。很多运营和管理人员每天一上班就是登录后台数据系统查看前一天的数据报表看业务是否正常。如果数据正常甚至上升就可以稍微轻松一点;如果数据下跌焦躁而忙碌的一天马上就要开始了。 将上面三个部分整合起来的是任务调度管理系统不同的数据何时开始同步各种 MapReduce、Spark 任务如何合理调度才能使资源利用最合理、等待的时间又不至于太久同时临时的重要任务还能够尽快执行这些都需要任务调度管理系统来完成。 上面讲的这种大数据平台架构也叫 Lambda 架构是构建大数据平台的一种常规架构原型方案。Lambda 架构原型请看下面的图。 Lambda 架构 Lambda 架构(Lambda Architecture)是由 Twitter 工程师南森·马茨(Nathan Marz)提出的大数据处理架构。这一架构的提出基于马茨在 BackType 和 Twitter 上的分布式数据处理系统的经验。 Lambda 架构使开发人员能够构建大规模分布式数据处理系统。它具有很好的灵活性和可扩展性也对硬件故障和人为失误有很好的容错性。 Lambda 架构总共由三层系统组成批处理层(Batch Layer)速度处理层(Speed Layer)以及用于响应查询的服务层(Serving Layer)。 在 Lambda 架构中每层都有自己所肩负的任务。 批处理层存储管理主数据集(不可变的数据集)和预先批处理计算好的视图。 批处理层使用可处理大量数据的分布式处理系统预先计算结果。它通过处理所有的已有历史数据来实现数据的准确性。这意味着它是基于完整的数据集来重新计算的能够修复任何错误然后更新现有的数据视图。输出通常存储在只读数据库中更新则完全取代现有的预先计算好的视图。 速度处理层会实时处理新来的大数据。 速度层通过提供最新数据的实时视图来最小化延迟。速度层所生成的数据视图可能不如批处理层最终生成的视图那样准确或完整但它们几乎在收到数据后立即可用。而当同样的数据在批处理层处理完成后在速度层的数据就可以被替代掉了。 本质上速度层弥补了批处理层所导致的数据视图滞后。比如说批处理层的每个任务都需要 1 个小时才能完成而在这 1 个小时里我们是无法获取批处理层中最新任务给出的数据视图的。而速度层因为能够实时处理数据给出结果就弥补了这 1 个小时的滞后。 所有在批处理层和速度层处理完的结果都输出存储在服务层中服务层通过返回预先计算的数据视图或从速度层处理构建好数据视图来响应查询。 例如广告投放预测这种推荐系统一般都会用到Lambda架构。一般能做精准广告投放的公司都会拥有海量用户特征、用户历史浏览记录和网页类型分类这些历史数据的。业界比较流行的做法有在批处理层用Alternating Least Squares (ALS)算法也就是Collaborative Filtering协同过滤算法可以得出与用户特性一致其他用户感兴趣的广告类型也可以得出和用户感兴趣类型的广告相似的广告而用k-means也可以对客户感兴趣的广告类型进行分类。 这里的结果是批处理层的结果。在速度层中根据用户的实时浏览网页类型在之前分好类的广告中寻找一些top K的广告出来。最终服务层可以结合速度层的top K广告和批处理层中分类好的点击率高的相似广告做出选择投放给用户。 Lambda 架构的不足 虽然 Lambda 架构使用起来十分灵活并且可以适用于很多的应用场景但在实际应用的时候Lambda 架构也存在着一些不足主要表现在它的维护很复杂。 使用 Lambda 架构时架构师需要维护两个复杂的分布式系统并且保证他们逻辑上产生相同的结果输出到服务层中。 我们都知道在分布式框架中进行编程其实是十分复杂的尤其是我们还会针对不同的框架进行专门的优化。所以几乎每一个架构师都认同Lambda 架构在实战中维护起来具有一定的复杂性。 那要怎么解决这个问题呢?我们先来思考一下造成这个架构维护起来如此复杂的根本原因是什么呢? 维护 Lambda 架构的复杂性在于我们要同时维护两套系统架构批处理层和速度层。我们已经说过了在架构中加入批处理层是因为从批处理层得到的结果具有高准确性而加入速度层是因为它在处理大规模数据时具有低延时性。 那我们能不能改进其中某一层的架构让它具有另外一层架构的特性呢? 例如改进批处理层的系统让它具有更低的延时性又或者是改进速度层的系统让它产生的数据视图更具准确性和更加接近历史数据呢? 另外一种在大规模数据处理中常用的架构——Kappa 架构(Kappa Architecture)便是在这样的思考下诞生的。 Kappa 架构 Kappa 架构是由 LinkedIn 的前首席工程师杰伊·克雷普斯(Jay Kreps)提出的一种架构思想。克雷普斯是几个著名开源项目(包括 Apache Kafka 和 Apache Samza 这样的流处理系统)的作者之一也是现在 Confluent 大数据公司的 CEO。 克雷普斯提出了一个改进 Lambda 架构的观点 我们能不能改进 Lambda 架构中速度层的系统性能使得它也可以处理好数据的完整性和准确性问题呢?我们能不能改进 Lambda 架构中的速度层使它既能够进行实时数据处理同时也有能力在业务逻辑更新的情况下重新处理以前处理过的历史数据呢? 他根据自身多年的架构经验发现我们是可以做到这样的改进的。 像 Apache Kafka 这样的流处理平台是具有永久保存数据日志的功能的通过平台的这一特性我们可以重新处理部署于速度层架构中的历史数据。 下面就以 Apache Kafka 为例来讲述整个全新架构的过程。 及时获取更多大数据技术分享请关注我的微信公众号《大数据技术进阶》 第一步部署 Apache Kafka并设置数据日志的保留期(Retention Period)。这里的保留期指的是你希望能够重新处理的历史数据的时间区间。 例如如果你希望重新处理最多一年的历史数据那就可以把 Apache Kafka 中的保留期设置为 365 天。如果你希望能够处理所有的历史数据那就可以把 Apache Kafka 中的保留期设置为“永久(Forever)”。 第二步如果我们需要改进现有的逻辑算法那就表示我们需要对历史数据进行重新处理。 我们需要做的就是重新启动一个 Apache Kafka 作业实例(Instance)。这个作业实例将从头开始重新计算保留好的历史数据并将结果输出到一个新的数据视图中。我们知道 Apache Kafka 的底层是使用 Log Offset 来判断现在已经处理到哪个数据块了所以只需要将 Log Offset 设置为 0新的作业实例就会从头开始处理历史数据。 第三步当这个新的数据视图处理过的数据进度赶上了旧的数据视图时我们的应用便可以切换到从新的数据视图中读取。 第四步停止旧版本的作业实例并删除旧的数据视图。 与 Lambda 架构不同的是Kappa 架构去掉了批处理层这一体系结构而只保留了速度层。你只需要在业务逻辑改变又或者是代码更改的时候进行数据的重新处理。 在讲述完 Kappa 架构之后我想强调一下Kappa 架构也是有着它自身的不足的。 因为 Kappa 架构只保留了速度层而缺少批处理层在速度层上处理大规模数据可能会有数据更新出错的情况发生这就需要我们花费更多的时间在处理这些错误异常上面。 还有一点Kappa 架构的批处理和流处理都放在了速度层上这导致了这种架构是使用同一套代码来处理算法逻辑的。所以 Kappa 架构并不适用于批处理和流处理代码逻辑不一致的场景。 小结 在本文中我们简述了 Lambda 架构和 Kappa 架构这两种大规模数据处理架构它们都各自有着自身的优缺点。我们需要按照实际情况来权衡利弊看看在业务中到底需要使用到哪种架构。 如果你所面对的业务逻辑是设计一种稳健的机器学习模型来预测即将发生的事情那么你应该优先考虑使用 Lambda 架构因为它拥有批处理层和速度层来确保更少的错误。 如果你所面对的业务逻辑是希望实时性比较高而且客户端又是根据运行时发生的实时事件来做出回应的那么你就应该优先考虑使用 Kappa 架构。 阅读目录置顶)(长期更新计算机领域知识https://blog.csdn.net/weixin_43392489/article/details/102380691 阅读目录置顶)(长期更新计算机领域知识https://blog.csdn.net/weixin_43392489/article/details/102380882
http://www.zqtcl.cn/news/152174/

相关文章:

  • 书香校园网站建设网站排名下降了怎么办
  • 观音桥网站建设湖南省建设银行网站官网
  • 信阳网站建设找汉狮搭建网站知识
  • 企业门户网站用户类型商务信息网
  • 深圳网站设计廊坊公司深圳ui设计培训班
  • 为什么网站需要维护帮人推广注册app的平台
  • 网站开发岗位要求服务好的做培训网站
  • 宁波制作网站企业有哪些学网页设计需要什么学历
  • 网站建设公司墨子网络百度域名续费
  • 琪觅公司网站开发中文网页开发工具
  • 教育网站制作设计成都网络营销公司
  • 怎么查看一个网站页面的seo优化情况网站建站建设首选上海黔文信息科技有限公司2
  • 威海网站建设价格深圳优美网络科技有限公司
  • 做网站用什么系统建设网站投资多少
  • 凡科建站官网 网络服务抚顺 网站建设
  • 学校网站的建设方案西安企业seo外包服务公司
  • 建设租车网站深圳ww
  • 推广网络网站潜江资讯网一手机版
  • 凡科网站自己如何做毕设 做网站
  • 一起做网站逛市场百度权重查询网站
  • 专业网站优化推广网站核查怎么抽查
  • 牡丹江站salong wordpress
  • 网站建设公司做网站要多少费用有哪些外国网站国内可以登录的
  • 天津建站平台网页制作免费的素材网站
  • 建设网站需要专业哪个企业提供电子商务网站建设外包
  • 公司网站建设及维护网站建设思维
  • 那个网站可以学做西餐17做网站广州沙河
  • 品牌网站建设哪里好京东网站建设案例
  • 亚马逊海外版网站深圳市工商注册信息查询网站
  • 新乐做网站优化网站上漂亮的甘特图是怎么做的