Hadoop数据复制块的大小速率为1TB的数据

时间:2015-11-06 19:19:12

标签: hadoop hdfs

我有7个以下存储空间的数据节点:

  • datanode 1:250gb
  • datanode 2:250gb
  • datanode 3:250gb
  • datanode 4:45gb
  • datanode 5:250gb
  • datanode 6:250gb
  • datanode 7:250gb

在数据节点4上,我在/ data上安装了1TB的数据。所以我在datanode 4上开始put操作(hadoop fs -put /data /user/hadoop-user/)。当存储耗尽时,它继续对存储量较大的其他数据节点进行操作,但速度非常慢。

现在我的问题是:

  1. 有没有办法增加put操作的块大小?从here开始,它说" DataNode开始以(4 KB)"的一小部分开始接收数据。这对于1TB数据来说似乎太小了。有没有办法增加这个?
  2. 如果我停止放置操作以增加块大小(如果有的话),它会从停止的地方恢复吗?

1 个答案:

答案 0 :(得分:0)

数目:

  • 是的 - 阅读dfs.stream-buffer-sizedfs.bytes-per-checksumdfs.client-write-packet-size - 说数据包本身更大,我会小心这些设置 - 很可能问题是在其他地方< / LI>
  • 本机答案是 - 否 - 它不会恢复(但查看问题),它不会恢复正在进行的文件,但它可能不会覆盖已经完全上传的文件

问题:

  • 您的网络设置是什么?
  • 你的复制因素是什么?
  • 你的最小复制因子是什么?
  • 是哪个版本的hadoop?
  • 速度慢的意思是什么?
  • 是您要写为单个文件还是多个文件的数据?
  • 可以在多个节点上挂载数据吗?

此外:

  • 您可以考虑使用distcp并强制执行仅使用地图的作业 - 任务在带有数据的节点上运行 - 这会为您提供更新和重试等等。(我自己没有尝试过这样的场景)