我知道这里有类似的帖子,但我找不到真正有可靠答案的帖子。
我们有一个加载了二进制文件的 Hadoop 集群。这些文件的大小可以从几百 k 到几百 mb 不等。
我们目前正在使用自定义记录阅读器处理这些文件,该阅读器将文件的全部内容读入每个地图。从那里我们提取我们想要将其序列化为 JSON 的适当元数据。
我们预见的问题是我们最终可能会达到我们的名称节点无法处理的大小。只有这么多的内存可以使用,拥有一个具有几 TB 内存的名称节点似乎很荒谬。
有没有一种优雅的方式来处理像这样的大型二进制文件?尤其是那些因为我们不知道reducer会按照什么顺序将它们重新组合在一起而无法拆分的那些?