Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/hadoop/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在Hadoop上存储文件,而不是将其所有副本都存储在集群上_Hadoop_Hdfs_Replication - Fatal编程技术网

在Hadoop上存储文件,而不是将其所有副本都存储在集群上

在Hadoop上存储文件,而不是将其所有副本都存储在集群上,hadoop,hdfs,replication,Hadoop,Hdfs,Replication,如果我的Hadoop集群(复制因子=3)只剩下15GB的空间,而我试图保存一个6GB大小的文件,有人能告诉我会发生什么吗 hdfs dfs -put 6gbfile.txt /some/path/on/hadoop put操作是否会出现错误(可能是群集已满),还是会保存两个6GB文件的副本,并将无法保存在群集上的块标记为复制不足,从而占用整个15GB的剩余空间?当您触发put命令时: dfs实用程序在这里的行为类似于客户端 客户机将首先联系namenode,然后namenode将指导客户机在何

如果我的Hadoop集群(复制因子=3)只剩下15GB的空间,而我试图保存一个6GB大小的文件,有人能告诉我会发生什么吗

hdfs dfs -put 6gbfile.txt /some/path/on/hadoop

put
操作是否会出现错误(可能是群集已满),还是会保存两个6GB文件的副本,并将无法保存在群集上的块标记为复制不足,从而占用整个15GB的剩余空间?

当您触发put命令时:

dfs实用程序在这里的行为类似于客户端

客户机将首先联系namenode,然后namenode将指导客户机在何处写入块并保留该文件的维护元数据,然后其客户机负责根据指定的配置在块中断开数据

然后,客户机将与不同的数据节点建立直接连接,它必须根据namenode应答写入不同的块

第一份数据副本将由客户机仅在数据节点上写入,随后的副本数据节点将在namenode的指导下相互创建


因此,如果有15GB的空间,您应该能够放置6GB的文件,因为最初在hadoop上创建原始副本,之后一旦复制过程开始,问题就会出现。

您应该能够存储该文件

它将尝试容纳尽可能多的副本。当它无法存储所有副本时,它将抛出警告,但不会失败。因此,您将使用复制不足的块着陆

你会看到的警告是

WARN org.apache.hadoop.hdfs.server.namenode.FSNamesystem: Not able to place enough replicas