gpt4 book ai didi

java - 仅处理少量(< 100mb)数据时,Hadoop 是否有正确的工具?

转载 作者:行者123 更新时间:2023-12-01 13:40:27 25 4
gpt4 key购买 nike

这更多的是一个假设性问题,尽管它确实有一些实际背景。我一直在考虑利用 hadoop 来完成一些需要由我当前正在开发的应用程序完成的批处理任务。 (JBoss 7 上的 JEE 6)

具体来说,一方面包括对用户生成的输入(例如趋势识别、出现次数)的文本分析,另一方面包括一批文本文件(例如来自存储库的源代码,但我们暂时将其放在一边)

当我开始阅读时,我注意到 hadoop 主要关注大量数据(例如 block 大小 100 mb),这对于真正从 hdfs 这个漂亮的东西中获取一些东西是有意义的。

基本上我有两个问题..

  1. hadoop 是完成此类工作的正确选择吗?我的意思是基本字数示例已经可以解决我的业务需求之一..
  2. 考虑到这一事实,即使是一个巨大的 java 项目基本上也可以归结为 max。几兆字节的文本文件,这仍然是很小的数据。在实现或执行这些任务时,这实际上会成为问题吗?

最佳答案

Hadoop 绝对不是处理多兆字节作业的工具。

作为引用,HDFS 的默认 block 大小为 64MB,因为我们粗略地确定,任何小于该大小的数据都将涉及更大的旋转开销,而这对于 Hadoop 提供的并行性来说是不值得的。因此,如果您的几兆字节作业在 Hadoop 上运行,它一次只会使用一个处理器,完全不利用平台的并行性。

一般经验法则是,如果整个数据集可以放入单个 JVM 的 RAM 中,那么您根本不需要 Hadoop。鉴于目前基本生产机器的可用 RAM 约为几 GB,那么在您的数据大小达到每天数 GB 范围之前,您不应该考虑 Hadoop。

对于像文本语料库这样的小任务,Python 中的自然语言库可能更适合,例如 nltk。当然,如果您只是需要字数统计,那么任何语言都可以,例如原生 python 或 perl。

关于java - 仅处理少量(< 100mb)数据时,Hadoop 是否有正确的工具?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20843089/

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