无法在Spark群集主节点上将大文件加载到HDFS

时间:2016-04-03 09:46:53

标签: hadoop amazon-ec2 apache-spark hdfs

我在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拆分到另一个节点?

1 个答案:

答案 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