- android - RelativeLayout 背景可绘制重叠内容
- android - 如何链接 cpufeatures lib 以获取 native android 库?
- java - OnItemClickListener 不起作用,但 OnLongItemClickListener 在自定义 ListView 中起作用
- java - Android 文件转字符串
我一直在努力理解 MapReduce 概念并将其应用到我目前的情况中。我的情况是什么?好吧,我这里有一个 ETL 工具,其中数据转换发生在源和目标数据源(数据库)之外。因此,源数据源纯粹用于提取,目的地用于加载。
因此,对于今天的这种转换行为,假设一百万条记录大约需要 X 个小时。我想解决一个场景,我将拥有十亿条记录,但我希望在相同的 X 小时内完成工作。因此,我的产品需要根据数据规模进行横向扩展(添加更多商品机器)。如您所见,我只担心将我的产品的转换功能分配到不同机器的能力,从而利用所有这些机器的 CPU 能力。
我开始寻找选择,然后遇到了 Apache Hadoop,然后最终遇到了 MapReduce 的概念。我非常成功地快速设置了 Hadoop,而没有在集群模式下遇到问题,并且很高兴也运行了一个 wordcount 演示。很快,我意识到要实现我自己的 MapReduce 模型,我必须将我的产品的转换功能重新定义为 MAP 和 REDUCE 函数。
这就是麻烦开始的时候。我读了一本 Hadoop:权威指南,我了解到 Hadoop 的许多常见用例都在人们面临的场景中:
这是我的场景,我从数据库中提取数据并加载到数据库(具有结构化数据),我的唯一目的是以可靠的方式让更多 CPU 发挥作用,并在那里分发我的转换。重新定义我的转换以适应 Map 和 Reduce 模型本身就是一个巨大的挑战。所以这是我的问题:
您在 ETL 中使用过 Hadoop 吗场景?如果是,可以是具体的关于你如何处理 MapReducing 的你的转变?你用过吗Hadoop 纯粹是为了利用额外的处理器功率?
MapReduce 概念是 分布式的通用答案 计算?有没有其他的一样 好的选择?
最佳答案
如果你想在很多系统上扩展一个处理问题,你必须做两件事:
如果存在依赖关系,那么这些将是您水平可扩展性的限制。
因此,如果您从关系模型开始,那么主要障碍是您拥有关系这一事实。拥有这些关系是关系数据库中的一项重要 Assets ,但在尝试横向扩展时……是一种痛苦。
从关系部分到独立部分的最简单方法是跳转并将数据反规范化为包含所有内容的记录,并专注于您要对其进行处理的部分。然后您可以将它们分布在一个巨大的集群上,并在处理完成后使用结果。
如果你做不到这样的跳跃,那你就有麻烦了。
所以回到你的问题:
#你在ETL场景中使用过Hadoop吗?
是的,输入是 Apache 日志文件,加载和转换包括解析、规范化和过滤这些日志行。结果不会放入普通的 RDBMS 中!
# MapReduce 概念是分布式计算的通用答案吗?还有其他同样好的选择吗?
MapReduce 是一种非常简单的处理模型,非常适合处理任何可以拆分为许多较小的 100% 独立部分的处理问题。 MapReduce 模型非常简单,据我所知,任何可以拆分为独立部分的问题都可以编写为一系列 mapreduce 步骤。
但是:重要的是要注意,目前只有面向 BATCH 的处理可以使用 Hadoop 完成。如果你想要“实时”处理,你现在运气不好。
目前我不知道有更好的模型可以实际实现。
# 我的理解是 MapReduce 适用于大型数据集进行排序/分析/分组/计数/聚合等,我的理解正确吗?
是的,这是最常见的应用。
关于java - "Adopting MapReduce model"= 可扩展性的通用答案吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4081922/
我最近的任务是估计 IIS 可以处理的并发用户数。不幸的是,我对 IIS 的经验为 0,所以我希望有人能指导我去哪里寻找。我希望在这个阶段我不必做我自己的基准测试。 我想知道它可以处理的并发连接数是多
我们正在考虑建立一个具有约 8000 个客户端和每个客户端一个队列的 MSMQ 系统。平均而言,系统每天需要处理来自每个客户端的约 2000 条消息,其中消息大小范围从 1K 到 MSMQ 最大大小
我们即将从一个内容丰富的网站开始,我们正在考虑使用 Dotnetnuke。 与联合国网站(http://www.un.org/en/index.shtml)相比,该网站将是多语言的 问题是:DotNe
我正在寻找有关 DB4O 对象数据库的信息。我知道它有客户端/服务器模式,但我不知道它的可扩展性如何。我非常喜欢对象数据库的想法,但仍然找不到合适的 OODB 用于我的任何项目。所以我的问题是: 我想
我目前使用 Sphinx Search 来优化我们的搜索页面。 该网站越来越受欢迎,这给 Sphinx 带来了更多负载。虽然此时没有什么可担心的,但我想知道 Sphinx 是如何扩展的。我在他们的网站
我对具有 OpenEJB 水平可扩展性配置的 Tomcat 感兴趣,以及它将如何管理分布式无状态 ejb:在每次调用时,是否可以从另一个 tomcat 服务器分配一个实例,例如在应用程序服务器中 -
SQLite 可以替代高流量网站中的 mysql 吗?谢谢 最佳答案 SQLite usually will work great as the database engine for low to
我想开发一个 iOS 应用程序,您可以在其中找到附近的人并与他们聊天。但是,我不知道 firebase 如何处理大量数据。 例子:所以,如果应用程序有 10 万用户。而且他们中的很多人总是在聊天,搜索
我正在尝试在我的新项目中使用 CQRS 和 EventSorcing。我正在遵循 Greg Young 几年前建议的方式(Mark Nijhof 实现 - http://cre8ivethought.
我有一个即将开展的项目,将与 70,000 多个用户(教育)打交道。我想知道 ASP.NET SqlMembership Provider 是否已经以如此大的容量使用过?假设硬件在那里,是否需要做一些
我们有非常简单的 Spark Streaming 作业(用 Java 实现),它是: 通过 DirectStream 从 Kafka 读取 JSON(关闭 Kafka 消息的确认) 将 JSON 解析
我正在使用tensorflow来训练DNN,我的网络结构非常简单,当只有一个参数服务器和一个worker时,每个minibatch大约需要50ms。为了处理巨大的样本,我使用分布式ASGD训练,但是,
已关闭。此问题不符合Stack Overflow guidelines 。目前不接受答案。 要求我们推荐或查找工具、库或最喜欢的场外资源的问题对于 Stack Overflow 来说是偏离主题的,因为
我正在使用 Crawler4j 爬虫来爬取一些域。现在我想提高爬虫的效率,我希望我的爬虫使用我的全部带宽并在给定时间段内爬取尽可能多的 url。为此我采用以下设置:- 我增加了编号。爬虫线程数到 10
我一直在寻找在 NUnit 中获取错误消息的方法。到目前为止,我找到了一些使用 IAddin 和 EventListener 来获取消息的类,但是没有用。我将此代码基于以下链接: About exte
已关闭。此问题旨在寻求有关书籍、工具、软件库等的建议。不符合Stack Overflow guidelines .它目前不接受答案。 我们不允许提问寻求书籍、工具、软件库等的推荐。您可以编辑问题,以
我已经使用 Poco 为 Linux 编写了一个代理服务器,但此后一直在阅读实现 TCP/IP 服务器可伸缩性的各种方法。我将需要服务器处理持久连接(不是 HTTP 流量),上限为大约 250 个同时
我正在尝试为自定义审计要求编写一个 SSMS 插件(需要审计用户在生产环境中运行的所有查询)。我有位于适当文件夹中的 .addin 文件,它在我的 Connect.Exec 方法中命中断点,我能够从事
我正在用 spark 处理数据,它可以处理一天的数据(40G),但失败了 OOM 一周的数据: import pyspark import datetime import operator sc =
当我将无服务器框架代码库部署到 AWS 时,我很好奇哪种方法会更好。 目前,有两种选择。 使用 Nest.js 或 Express.js,因此我将一个函数部署到 Lambda,该函数将处理所有 API
我是一名优秀的程序员,十分优秀!