无法将大文件加载到 Spark 集群主节点上的 HDFS
Posted
技术标签:
【中文标题】无法将大文件加载到 Spark 集群主节点上的 HDFS【英文标题】:Unable to load large file to HDFS on Spark cluster master node 【发布时间】:2016-04-03 09:46:52 【问题描述】:我在 Amazon EC2 上启动了一个 Spark 集群,其中包含 1 个主节点和 2 个从属节点,每个节点都有 2.7gb 内存
但是,当我尝试通过下面的代码将 3 GB 的文件放到 HDFS 上时
/root/ephemeral-hdfs/bin/hadoop fs -put /root/spark/2GB.bin 2GB.bin
它返回错误,“/user/root/2GB.bin 只能复制到 0 个节点,而不是 1 个”。仅供参考,我可以上传较小尺寸的文件,但不能上传超过一定大小(约 2.2 GB)的文件。
如果文件超过了一个节点的内存大小,会不会被Hadoop分割到另一个节点?
【问题讨论】:
“每个都有 2.7gb 的内存”是什么意思?你指的是内存还是硬盘? 【参考方案1】:编辑:我对您所面临问题的理解总结:
1) 总 HDFS 可用大小为 5.32 GB
2) 每个节点上的 HDFS 空闲大小为 2.6GB
注意:您有坏块(4 个带有损坏副本的块)
以下问答提到了类似的问题: Hadoop put command throws - could only be replicated to 0 nodes, instead of 1
在这种情况下,运行 JPS 显示数据节点已关闭。
那些问答提出了一种重启数据节点的方法:
What is best way to start and stop hadoop ecosystem, with command line? Hadoop - Restart datanode and tasktracker
请尝试重新启动您的数据节点,如果它解决了问题,请告诉我们。
使用 HDFS 时 - 您拥有一个共享文件系统
即所有节点共享同一个文件系统
根据您的描述 - HDFS 上的当前可用空间约为 2.2GB ,而您尝试将 3GB 放在那里。
执行以下命令获取 HDFS 空闲大小:
hdfs dfs -df -h
hdfs dfsadmin -report
或(对于旧版本的 HDFS)
hadoop fs -df -h
hadoop dfsadmin -report
【讨论】:
当它在主节点上显示“DFS Remaining: 5713575936 (5.32 GB)”时,在 2 个数据节点上显示“DFS Remaining: 2856787968(2.66 GB)”是指磁盘空间还是 RAM ? 能否请您提供您执行的命令及其输出? 命令执行:./hadoop dfsadmin -report,输出:配置容量:8443527168 (7.86 GB) 当前容量:5713715200 (5.32 GB) DFS 剩余:5713575936 (5.32 GB) DFS 已用:139264 (136 KB) DFS Used%: 0% Under replicated blocks: 4 Blocks with corrupt replicas: 0 Missing blocks: 0 --------------------------- ---------------------- 可用数据节点:2(总共 2 个,0 个死)退役状态:正常配置容量:4221763584(3.93 GB)使用的 DFS:69632( 68 KB) 非 DFS 已使用:1364905984 (1.27 GB) DFS 剩余:2856787968(2.66 GB) DFS 已使用百分比:0% DFS 剩余百分比:67.67%以上是关于无法将大文件加载到 Spark 集群主节点上的 HDFS的主要内容,如果未能解决你的问题,请参考以下文章
多节点火花集群上的 spark-shell 无法在远程工作节点上旋转执行程序