Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/400.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
Java 在hadoop HDFS中存储大文件?_Java_Hadoop_Mapreduce_Hdfs_Bigdata - Fatal编程技术网

Java 在hadoop HDFS中存储大文件?

Java 在hadoop HDFS中存储大文件?,java,hadoop,mapreduce,hdfs,bigdata,Java,Hadoop,Mapreduce,Hdfs,Bigdata,我需要在HDFS上存储一个大约10TB的大文件。我需要了解的是HDFS将如何存储此文件。比如说,集群的复制系数是3,我有一个10节点的集群,每个节点上的磁盘空间超过10 TB,即总集群容量超过100 TB 现在HDFS会随机选择三个节点并将文件存储在这三个节点上。所以这听起来很简单。请确认 或者HDFS是否拆分文件-将每个文件拆分为10个1TB,然后将每个拆分存储在随机选择的3个节点上。拆分是否可能?如果可能,它是一个配置方面,通过它可以启用。 如果HDFS必须拆分二进制文件或文本文件,它将如何

我需要在HDFS上存储一个大约10TB的大文件。我需要了解的是HDFS将如何存储此文件。比如说,集群的复制系数是3,我有一个10节点的集群,每个节点上的磁盘空间超过10 TB,即总集群容量超过100 TB

现在HDFS会随机选择三个节点并将文件存储在这三个节点上。所以这听起来很简单。请确认

或者HDFS是否拆分文件-将每个文件拆分为10个1TB,然后将每个拆分存储在随机选择的3个节点上。拆分是否可能?如果可能,它是一个配置方面,通过它可以启用。
如果HDFS必须拆分二进制文件或文本文件,它将如何拆分。简单地说就是字节

是的,它会分割文件(默认为128mb块)。每个块将存储在3个随机节点上。因此,您将有30 TB的数据均匀分布在10个节点上。

是的,它会分割文件(默认情况下为128mb块)。每个块将存储在3个随机节点上。因此,您将有30 TB的数据均匀分布在10个节点上。

您可以添加有关如何进行拆分的更多详细信息吗?如果是逐字节拆分,或者其他机制。我需要知道这一点的原因是——如果我编写一个map reduce程序,hadoop如何知道哪些数据位于哪个节点上,以及其他关于数据位置的信息。名称节点管理关于文件被拆分成的所有不同块的元数据,每个块在哪里(在哪个数据节点上)以及复制副本在哪里。可以配置块大小和复制因子。拆分文件由您用来将文件写入HDFS的客户端完成。如果一条直线大于块大小,则该直线仍将被拆分并放置在两个块中。请参阅此链接,其中对其进行了非常详细的解释-您是否可以添加有关如何进行拆分的更多详细信息-如果是逐字节或其他机制。我需要知道这一点的原因是——如果我编写一个map reduce程序,hadoop如何知道哪些数据位于哪个节点上,以及其他关于数据位置的信息。名称节点管理关于文件被拆分成的所有不同块的元数据,每个块在哪里(在哪个数据节点上)以及复制副本在哪里。可以配置块大小和复制因子。拆分文件由您用来将文件写入HDFS的客户端完成。如果一条直线大于块大小,则该直线仍将被拆分并放置在两个块中。请参阅此链接,其中对其进行了详细的解释-除非您要使用的格式是可拆分的,否则这是一个坏主意。从HDFS的角度来看,这并不重要,但对于MapReduce来说,如果它不可拆分,则只有一个映射程序能够处理该文件。除非您要使用的格式是可拆分的,否则这是一个坏主意。从HDFS的角度来看,这并不重要,但对于MapReduce来说,如果它不可拆分,那么只有一个映射器能够处理该文件。