限制每个数据节点的非dfs使用

k2arahey  于 2021-06-03  发布在  Hadoop
关注(0)|答案(2)|浏览(332)

由于hadoop疯狂的数据分发和管理,我面临一个奇怪的问题。我的一个或两个数据节点由于非dfs使用而被完全填满,而其他节点几乎是空的。有没有办法让非dfs的使用更加统一[我已经尝试过使用dfs.datanode.du.reserved,但也没有用]
prob的示例:我有16个数据节点,每个节点有10gb的空间。最初,每个节点都有大约7 gb的可用空间。当我启动一个处理5 gb数据的作业(复制因子=1)时,我希望该作业能够成功完成。但是唉!当我监视作业执行时,我突然看到一个节点空间不足,因为非dfs使用量约为6-7gb,然后它重试,另一个节点现在空间不足。我真的不想有更高的重试次数,因为这不会给我的性能指标寻找。
你知道我该怎么解决这个问题吗。

tquggr8v

tquggr8v1#

据我所知,您不能限制非dfs使用。我建议您确定到底是什么输入文件(或其拆分)导致了问题。然后你可能会找到解决办法。
hadoopmr是在这样的假设下构建的,即可以使用单节点资源(如ram或磁盘空间)来完成单次分割处理。

7vhp5slm

7vhp5slm2#

听起来你的输入没有被正确地分开。您可能需要选择不同的输入格式或编写自己的输入格式以更好地适应您的数据集。还要确保所有节点都列在namenode的从属文件中。
另一个问题可能是严重的数据倾斜—当大部分数据都要传输到一个减速机时。您可能需要创建自己的分区器来解决它。

相关问题