gpt4 book ai didi

hadoop - 如何通过hdfs MapReduce直接计算hdfs上文件的磁链?

转载 作者:行者123 更新时间:2023-12-02 20:24:21 24 4
gpt4 key购买 nike

如何通过MapReduce直接计算hdfs上文件或目录的磁链?

最佳答案

磁链中最难计算的部分是信息哈希。信息哈希是.torrent文件的info-dictionary的SHA1哈希。它是bencoded结构,包含文件名,文件大小,片段大小以及(重要的)所有片段的SHA-1哈希值列表。构建信息字典的复杂部分是计算散列,因此让我们集中精力。

同样,对于多文件种子,逻辑上将所有文件有效负载连接起来,以计算和验证片段哈希。在您的情况下,听起来您对单个文件种子最感兴趣,这使事情变得简单一些,所以让我们专注于此。

我对HDFS并不特别熟悉,但是可以并行执行SHA-1散列的计算。您可以决定件的大小,从技术上讲,它可以是任何大小,但是我认为许多客户希望得到2的幂(或者至少被16 kiB整除)。因此,必须在文件的大块上计算散列,该块可以被片段大小整除。例如如果将片段大小设置为1 MiB,则必须对文件的第1兆字节,文件的第2兆字节进行哈希处理,以此类推。所有这些都可以并行完成。

对于多文件种子,这变得更加复杂,因为这些片段边界不再属于可通过片段大小整除的文件偏移量。如果HDFS无法为您提供对文件的任意并行访问,则可能是一个问题。

有了散列哈希后,将其放入信息字典中,并对其进行最后一次SHA-1传递,即可获得信息哈希。

如果要支持bittorrent v2,则使用文件中的SHA-256和16 kiB叶子块通过merkle哈希树来验证文件。这还具有每个文件独立散列的优点,因此避免了片段对齐问题。

简而言之,只要您可以并行读取和哈希2的幂的块,则减少步骤就是简单地构建信息字典,将散列放在其中,然后再将SHA-1哈希。

关于hadoop - 如何通过hdfs MapReduce直接计算hdfs上文件的磁链?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58076718/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com