我是hadoop的初学者,阅读hadoop中的小文件问题,现在我有一个问题要解决,帮助我开始
问题 :
源结果:大约 100 万+(大约)个文件,每个文件大小接近 1 kb(无法阻止创建或调整大小)
结果分组: 源结果被分组为 1000 个文件 A 组。
所需任务:
组中的文件将以一对一的方式进行比较文件是遵循特定标准结构(标题、内容...等)的二进制细节(生物特征)文件
由于预计源结果会随着时间增加,我想在 hadoop 上实现比较
Hadoop的输入:
< 输入文件 > < HARFile > < 输出 >
< 输入文件示例 >:
请注意,文件名是唯一的 id,单独发出文件名会有很大帮助
08RTC345744.txt 08RTC345746.txt
08RTC345744.txt 08RTC3457XX.txt
08RTXX457XX.txt 08YYC3457YY.txt
..................
XXXXXXN.txt YYYYYYN.txt
过程算法:(它没有实现,只是一个想法)
- 逐行读取输入文件
- 借助 har:// 读取行中的每个文件(例如:读取 har://xxx/08RTC345744.txt 和 har://xxx/08RTC345746.txt )
- 使用相关的生物特征算法比较从 hdfs (HAR) 读取的文件
- 如果它们显示相似性 Emit < Filenames > < Count >
< HARFile 示例文件 >
08RTC345744.txt
08RTC345746.txt
08RTC345745.txt
08RTC3457XX.txt
08RTXX457XB.txt
08YYC3457YY.txt
1)在 Hadoop 中实现是一个更好的主意吗?
2)我读到比较小文件是hadoop中的一个问题,为一组组形成一个HAR文件然后比较更好吗?
3)我的 过程算法:工作与否?
4) 有效吗?我想,当然不是,还有其他想法吗?
5)关于生物特征匹配的 MapReduce 有什么想法吗?
6)HBASE 是一个解决方案吗?