当前位置: 首页 > 知识库问答 >
问题:

Hadoop MapReduce的用途

庞瀚
2023-03-14

>

  • 据说MapReduce接收一个文件并生成键值对。什么是钥匙?只是一个词,一个词的组合还是别的什么?如果关键是文件中的单词,那么为MapReduce编写代码的目的是什么?MapReduce应该在不实现特定算法的情况下做同样的事情。

    如果所有的东西都转换成键值对,那么Hadoop所做的就是像JAVA和C#一样创建一个字典,Wright?也许Hadoop可以以更高效的方式创建字典。除了效率,Hadoop提供了普通字典对象无法提供的功能吗?

    通过将文件转换为键值对,我能赚多少钱?我知道我能找到单词的计数和频率,但是为什么?统计字数的目的可能是什么?

    据说Hadoop可以用于非结构化数据。如果所有的东西都转换成一个键值对,那么Hadoop就可以处理非结构化数据了!我可以用C#编写一个程序来生成键值对,而不是使用Hadoop。我无法通过使用其他类型的编程工具来利用的Hadoop的真正价值是什么?

    这些问题似乎相互关联,但我相信我给出了我的问题的想法。如果你能对以上问题给出答案,我将很高兴。

    问候,

    非常感谢您的回复。我从你的写作和玩Hadoop中了解到的一点,我想用一种非常高级的基本方式陈述我的结论:

    • Hadoop通过键值对处理数据。所有内容都转换为键-值对。
    • 关键字和值的定义应该是主要的,这些定义可能会根据业务需要而改变。
    • Hadoop提供了字典的高效实现(例如分布式、可伸缩的系统和大量的数据处理),仅此而已。

    欢迎对这些结果提出任何意见。

    问候,

  • 共有1个答案

    郑狐若
    2023-03-14
    It is said that MapReduce receives a file and produces key value pairs. What is a key? Just a word, a combination of words or something
    

    别的?如果关键是文件中的单词,那么为MapReduce编写代码的目的是什么?MapReduce应该在不实现特定算法的情况下做同样的事情。

    MapReduce应该可视化为分布式计算框架。对于word count示例,键是word,但我们可以使用任何东西作为键(其中一些API可用,我们也可以编写自定义的)。拥有密钥的目的是对排序后的数据进行分区、排序和合并,以执行聚合。map阶段将用于执行行级转换、过滤等,而reduce阶段将负责聚合。Map和Reduce需要实现,然后shuffle阶段(典型的开箱即用)将负责分区、洗牌、排序和合并。

    If everything is converted to key value pairs then what Hadoop does is just creating a Dictionary like in JAVA and C#, wright? May be
    

    Hadoop可以以更高效的方式创建字典。除了效率,Hadoop提供了普通字典对象无法提供的功能吗?

    What do I earn by converting a file to key value pairs? I know I can find the counts and frequencies of the words, but for what? What
    

    可能是数字数的目的?

    您可以执行转换、筛选、聚合、联接以及可以对非结构化数据执行的任何自定义任务。主要区别在于分布。因此它可以比任何遗留解决方案更好地扩展。

    It is said that Hadoop can be used for unstructured data. If everything is converted to a key value pair, then it so normal that
    

    Hadoop可以处理非结构化数据!我可以用C#编写一个程序来生成键值对,而不是使用Hadoop。我无法通过使用其他类型的编程工具来利用的Hadoop的真正价值是什么?

    键可以是行偏移量,然后可以处理每条记录。无论每个记录的结构是相同的还是不同的。

    以下是使用Hadoop的优点:

    1. 分布式文件系统(HDFS)
    2. 分布式处理框架(map reduce)
    3. 数据局部性(通常在现代应用程序中,文件将挂载在网络上,因此大于代码的数据必须复制到部署代码的服务器上。在hadoop中,代码转到数据,所有成功的hadoop都不使用网络文件系统)
    4. 存储和处理超大型数据集时网络使用有限
    5. 成本效益(商品硬件上的开源软件)等等。
     类似资料:
    • 这可能出现在许多常见问题解答中,而不是使用: (这叫无用猫),正确的做法应该是: 在第二种“正确”的方式中,操作系统不必生成额外的进程<尽管知道这一点,我还是继续使用无用的猫,原因有二。 > 我“觉得”在某些情况下可能会更快。速度更快,因为有两个进程,第一个(cat)执行读取,第二个执行任何操作。它们可以并行运行,这意味着有时执行速度更快。 我的逻辑正确吗(第二个原因)?

    • 问题内容: 我知道有两种在Java中创建String的方法: 通过第一种方式,Java一定会在字符串池中创建一个String对象并对其进行引用。(假设“ aaa”以前不在池中。) 使用第二种方法,将在堆中创建一个对象,但是jvm还会在字符串池中创建一个对象吗? 在这篇关于Java的字符串池的问题中,@ Jesper说: 如果您这样做: 那么池中将有一个String对象,一个代表文字“ abc”的>

    • 我正在读《理解SQL Server中的锁定》。但我不太理解更新锁的目的。 详细说明如下: 更新锁 更新(U)锁防止常见形式的死锁。典型的更新模式包括事务读取记录,获取资源(页或行)上的共享(S)锁,然后修改行,这需要锁转换为排他(X)锁。如果两个事务获取资源上的共享模式锁,然后尝试同时更新数据,一个事务尝试锁转换为排他(X)锁。共享模式到排他锁的转换必须等待,因为一个事务的排他锁与另一个事务的共享

    • 到底有什么用处?

    • 问题内容: 手动创建时,步骤之一是: 这在我需要指定“ IbmX509”的IBM jre上不起作用。 我的问题: 我读到这被称为“证书编码算法”。那是什么意思?什么时候使用? 当客户端使用IBM算法而服务器使用Sun算法时会发生什么? 谢谢, 多伦 问题答案: 我读到这被称为“证书编码算法”。 不,不是。它是一种密钥管理器算法,它定义了提供程序和内容类型,在本例中为“ Sun”或“ IBM”以及X