什么类型的任务/应用程序可以使用Apache Hadoop(MapReduce函数)

什么类型的任务/应用程序可以使用Apache Hadoop(MapReduce函数),hadoop,mapreduce,Hadoop,Mapreduce,我不明白什么类型的应用程序可以与Hadoop一起使用。是否每个任务都必须针对hadoop/mapreduce进行定制。例如,您可以将任何长时间运行的java处理与之关联吗?或者你是否特别需要为hadoop定制你的应用程序/任务。我想一个很好的例子是使用lucene和hadoop进行索引。hadoop实际上是一个用于进程拆分/合并的引擎。将任务拆分为相似的数据集[map],然后将相似的数据集合并为结果[reduce/merge] 这是制作并行应用程序的一种方法。映射和约简分布到集群中的不同节点。这

我不明白什么类型的应用程序可以与Hadoop一起使用。是否每个任务都必须针对hadoop/mapreduce进行定制。例如,您可以将任何长时间运行的java处理与之关联吗?或者你是否特别需要为hadoop定制你的应用程序/任务。我想一个很好的例子是使用lucene和hadoop进行索引。

hadoop实际上是一个用于进程拆分/合并的引擎。将任务拆分为相似的数据集[map],然后将相似的数据集合并为结果[reduce/merge]


这是制作并行应用程序的一种方法。映射和约简分布到集群中的不同节点。这是一个非常严格的任务划分,进程之间可以传递什么样的数据[必须是可序列化的,并且与其他maps/reduces中的数据断开连接]

MapReduce是一个处理模型;它准确地告诉您处理任务应该适合什么

  • 您的处理必须面向批处理
  • 您必须能够将您的工作转换为(一组)地图并减少步骤
  • 为了利用MapReduce的可伸缩性属性,您必须能够将工作拆分为足够多的独立(!!)部分,这些部分可以单独处理
  • Hadoop确实(除其他外)实现了MapReduce,它还有一个额外的优势,即您可以在1000个系统上并行可靠地运行一个作业(如果您有足够多的独立部分)

    考虑到这些限制:有些事情做不到,很多事情可以做。 分析日志文件(即大量独立行)甚至网络分析(每个访问者/会话都可以单独处理)都是最常见的应用程序


    因此,是的,您的任务必须进行转换以适应模型,才能正常工作。

    基本上,您必须能够将任务“拆分”为独立的任务

    同意这一抽象描述,mapreduce还用于解析大型文件,例如Web服务器日志。这听起来像是一个需要描述而不是应用程序的问题。