我在amazonec2上启动了一个spark集群,其中包含1个主节点和2个服务节点,每个节点的内存为2.7gb
但是,当我试图通过下面的代码将一个3gb的文件放到hdfs上时
/root/ephemeral-hdfs/bin/hadoop fs -put /root/spark/2GB.bin 2GB.bin
它返回错误“/user/root/2gb.bin只能复制到0个节点,而不是1”。仅供参考,我可以上传较小的文件,但不能当它超过一定的大小(约2.2 gb)。
如果文件超过了一个节点的内存大小,它不是会被hadoop拆分到另一个节点吗?
1条答案
按热度按时间ie3xauqp1#
编辑:我对您所面临问题的理解摘要:
1) 总hdfs可用大小为5.32 gb
2) 每个节点上的hdfs可用大小为2.6gb
注意:您有坏块(4个块的副本已损坏)
下面的问答提到了类似的问题:hadoopput命令抛出-只能复制到0个节点,而不是1个节点
在这种情况下,运行jps表明datanode已关闭。
这些问答建议了重新启动数据节点的方法:
使用命令行启动和停止hadoop生态系统的最佳方法是什么?hadoop-重新启动datanode和tasktracker
请尝试重新启动您的数据节点,并告诉我们它是否解决了问题。
当使用hdfs时-您有一个共享文件系统
i、 e.所有节点共享相同的文件系统
根据您的描述-hdfs上当前的可用空间约为2.2gb,而您尝试将其设置为3gb。
执行以下命令以获取hdfs可用大小:
或者(对于hdfs的旧版本)