我刚开始学习 Hadoop。据我了解,它的主要优势在于它能够跨多个节点分配任务。除了在未来扩展到更多节点的潜力之外,仅使用单个节点的 Hadoop 有什么好处吗?如果您没有计划拥有多个节点怎么办?或者是否期望如果您要使用 Hadoop,您也将建立一个包含许多节点的集群?
只有一个节点使用hadoop有好处吗?
数据挖掘
apache-hadoop
2021-09-21 18:49:42
2个回答
如果您正在测试或构建最终将在分布式集群上运行的东西,那么这是有道理的。如果你是在玩耍学习,是的。否则,不,我看不到太多价值。
Hadoop、HDFS 等的成本很高。
根据您的应用程序和代码质量,收支平衡通常在 10 到 100 个节点之间:初学者 Hadoop 作业的运行速度可能比普通非 Hadoop 作业慢 100 倍,因此您需要这么多节点(和数据!)为开销。
当使用非 Java API 时,情况会变得更糟。Hadoop 的本机层是 Java,并且运行例如 Python 或 R map-reduce 作业通常需要将数据多次序列化和反序列化为文本并返回。对于简单的地图作业,例如著名的字数统计示例,这种开销超过了实际任务。
根据经验:如果您的数据适合主内存,请不要将其放在 hadoop 上,而是在本地处理它。那时使用多线程或 GPU 可能更有效。另一方面,如果您的数据是几 TB,而您只需要一小部分数据,那么从多个硬盘并行读取确实具有优势。这就是为什么很多用例都遵循 ETL 模式的原因。扫描大量原始数据,提取所需的部分,将它们转换为所需的格式,然后将它们加载到不同的系统中进行进一步处理。之后,数据通常足够小,可以使用“常规”工具进行处理。令人失望的是,这些天 PC的 RAM非常多……而且 CPU+GPU 的能力也很充足。
另外,基准测试。您会惊讶于网络和架构的开销是多么昂贵。
其它你可能感兴趣的问题