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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ionic-framework/2.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集群中时,如果客户端在将数据传输到datanodes时失败,会发生什么?_Hadoop - Fatal编程技术网

当将一个巨大的文件加载到hadoop集群中时,如果客户端在将数据传输到datanodes时失败,会发生什么?

当将一个巨大的文件加载到hadoop集群中时,如果客户端在将数据传输到datanodes时失败,会发生什么?,hadoop,Hadoop,例如,文件为1280MB,hdfs块为128MB,当 客户端仅传输了3个块,然后失败了?NameNode是否获得包含3个块的文件或删除3个块?否它不会删除3个块。下面是它的工作原理,我们假设块4位于FSDataOutStream维护的队列的下一个队列中。由于某些网络问题,datanode写入一些x字节后发生故障,首先关闭管道并删除写入其中的任何数据,新的good datanode被赋予一个新标识,并被添加到队列中,该标识被传送到name node以更新块4的元数据信息,然后数据将从该块的第一个字

例如,文件为1280MB,hdfs块为128MB,当
客户端仅传输了3个块,然后失败了?NameNode是否获得包含3个块的文件或删除3个块?

否它不会删除3个块。下面是它的工作原理,我们假设块4位于FSDataOutStream维护的队列的下一个队列中。由于某些网络问题,datanode写入一些x字节后发生故障,首先关闭管道并删除写入其中的任何数据,新的good datanode被赋予一个新标识,并被添加到队列中,该标识被传送到name node以更新块4的元数据信息,然后数据将从该块的第一个字节开始写入新标识的datanode。《权威指南》中对文件写入的剖析有助于您更好地了解如何完成此操作。

如果是客户端而不是datanode发生故障,这意味着客户端将停止传输此文件,而namenode是否也将保留此不完整的文件?它将不会保留元数据,因为最后,一旦文件成功写入HDFS Distributedfilesystem,就会向namenode发送一个submit回调(一旦所有校验和都被验证),以提交元数据信息,否则它会忽略它,你有什么更详细的资料可以推荐给我吗?你可以参考详细描述HDFS恢复过程的资料。如果答案能解决你的问题,请接受。