gpt4 book ai didi

java - 使用Hadoop/HDFS进行100万个生物特征(小型)文件比较

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

我是hadoop的初学者,在hadoop中读取了smallfile问题,现在我有一个要解决的问题,请帮助我开始

问题:

源成果:大约100万个(大约)文件,每个文件大小接近1 kb(无法阻止创建或调整大小)

结果分组:
源结果分为一组1000个文件。

所需任务:

组中的文件应以一对一的方式进行比较
文件是遵循特定标准结构( header ,内容等)的二进制细节(生物特征)文件。

由于预期结果会随着时间增加,因此我想对hadoop进行比较

输入到Hadoop:

<输出>

:

请注意,文件名是唯一的ID,仅发出文件名会很有帮助

            08RTC345744.txt 08RTC345746.txt
08RTC345744.txt 08RTC3457XX.txt
08RTXX457XX.txt 08YYC3457YY.txt
..................
XXXXXXN.txt YYYYYYN.txt

处理算法:(尚未实现,只是一个想法)

  1. Read input file line by line
  2. Read Each file in the line with thehelp of har:// (eg: Read har://xxx/08RTC345744.txt and har://xxx/08RTC345746.txt )
  3. Compare theFile that are read from hdfs (HAR) using a relevant bio-metric algorithm
  4. if they shows similarity Emit < Filenames > < Count >



08RTC345744.txt 
08RTC345746.txt
08RTC345745.txt
08RTC3457XX.txt
08RTXX457XB.txt
08YYC3457YY.txt

1)在Hadoop中实现是一个更好的主意吗?

2)我读到比较小文件是hadoop中的一个问题,为一组组形成一个HAR文件然后比较会更好吗?

3)我的 处理算法:是否有效?

4)效率高吗?我认为,当然不会,还有其他想法吗?

5)关于在生物特征匹配上使用MapReduce的任何想法?

6)HBASE是解决方案吗?

最佳答案

您拥有的数据量处于边界,可以在hadoop集群中进行处理。除非您要输入更多文件,否则一个小群集就足够了。

您遇到的第一个问题是将数据摄取到群集中。如果我没有正确理解,您有很多小文件,每个文件包含一个数据记录。您最终想要的是更少的大文件。为了解决这个问题,我将在摄取之前或摄取时合并文件。 HAR文件不是一个好的选择。您可以通过多种方式进行操作,这主要取决于您的数据将如何到达群集以及以后如何处理。您可以 checkout 。
如果您的数据作为无限制的流输入,请 checkout :
-Apache Flume
-Apache Kafka
-Apache Storm
-Apache Spark
如果您的数据已经存在,并且您正在做一次工作:
-实现自己的合并程序。

这里的共同点是您希望将每个文件表示为一个数据记录。然后,您可以决定要用来存储许多记录的文件格式。通过正确配置上述工具,您最终将在HDFS上包含包含数据记录的大文件。

然后,您需要确定如何处理数据。您想要相互比较记录,为此,您还可以使用多种工具:

  • Plain MapReduce。使用低级工具实现所有操作。请查看如何有效进行交叉联接,因为这就是您正在做的事情。
  • hive 。实现一个UDF,该UDF调用您的比较算法并将整个作业表示为SQL查询。
  • pig 。与hive类似,但具有自己的脚本语言。
  • Apache Spark。较新的工具具有不错的API,能够像MapReduce一样实现工作,但使用起来更轻松,更简洁。

  • 使用什么最终将取决于您的用例和您的可用环境。

    关于java - 使用Hadoop/HDFS进行100万个生物特征(小型)文件比较,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27653403/

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