我在Amazon EC2上启动了Spark Cluster,其中包含1个主节点和2个每个内存为2.7gb的服务器节点
然而,当我尝试通过下面的代码将3 gb的文件放到HDFS上时
/root/ephemeral-hdfs/bin/hadoop fs -put /root/spark/2GB.bin 2GB.bin
它返回错误,“/ user / root2GB.bin只能复制到0个节点,而不是1”。 fyi,我能够上传较小尺寸的文件,但是当它超过一定的尺寸(约2.2 gb)时。
如果文件超过节点的内存大小,它是否会被Hadoop拆分到另一个节点?
答案 0 :(得分:0)
编辑:我对您所面临问题的理解摘要:
1)总HDFS免费大小为5.32 GB
2)每个节点上的HDFS可用大小为2.6GB
注意:您有坏块(4块具有损坏的副本)
以下Q& A提到了类似的问题: Hadoop put command throws - could only be replicated to 0 nodes, instead of 1
在这种情况下,运行JPS显示datanode已关闭。
那些Q& A建议了一种重启数据节点的方法:
What is best way to start and stop hadoop ecosystem, with command line? Hadoop - Restart datanode and tasktracker
请尝试重新启动数据节点,并告知我们是否解决了问题。
使用HDFS时 - 您有一个共享文件系统
即。所有节点共享相同的文件系统
根据你的描述 - 当你试图将3GB放在那里时,HDFS上的当前可用空间大约为2.2GB。
执行以下命令以获取HDFS可用大小:
hdfs dfs -df -h
hdfs dfsadmin -report
或(对于旧版本的HDFS)
hadoop fs -df -h
hadoop dfsadmin -report