草庐IT

algorithm - gzip 文件如何存储在 HDFS 中

HDFS存储支持压缩格式来存储压缩文件。我知道gzip压缩不支持夹板。假设现在该文件是一个gzip压缩文件,其压缩大小为1GB。现在我的问题是:此文件将如何存储在HDFS中(block大小为64MB)从这里link我开始知道gzip格式使用DEFLATE来存储压缩数据,DEFLATE将数据存储为一系列压缩block。但我无法完全理解并寻找广泛的解释。更多来自gzip压缩文件的疑惑:这个1GB的gzip压缩文件将有多少block。它会在多个数据节点上运行吗?如何将复制因子应用于此文件(Hadoop集群复制因子为3。)什么是DEFLATE算法?读取gzip压缩文件时采用了哪种算法?我在这里

hadoop - 为什么 MapReduce 映射内存大于集群上的 block 大小?

下面是HadoopYarn中的观察结果:a)对于每个InputSplit或block,都会触发一个新的映射。b)集群的典型block大小为128MB。c)在大多数集群中,MapReduce.map.memory.mb将配置为大于1GB。事实上,Cloudera建议的block大小是128MB,而MapReduce.map.memory.mb是1GB当block大小只有128MB时,为什么我们需要分配1GB给映射内存(MapReduce.map.memory.mb)?理想情况下,最多128MB应该可以满足需要。为什么我们为map内存提供的block大小甚至超过block大小?

hadoop - 写入路径 HDFS

简介对thisquestion的后续问题.一个文件已经被提供给HDFS并且随后被复制到三个DataNodes。如果要再次提供同一个文件,HDFS会提示该文件已经存在。基于thisanswer一个文件将被分成64MB的block(取决于配置设置)。文件名和block的映射将在NameNode中创建。NameNode知道某个文件的block位于哪个DataNodes中。如果再次提供相同的文件,NameNode知道该文件的block存在于HDFS上,并将指示该文件已经存在。如果文件的内容被更改并再次提供,NameNode是否会更新现有文件,或者检查是否仅限于将文件名映射到block,尤其是文

hadoop - 什么元数据存储在 HDFS 的数据节点上?

在阅读有关存储在HDFS数据节点上的元数据时。我通过了这些选项,但不确定是全部正确还是部分正确。它存储一个文件,其中包含它存储的block的校验和。它存储用于创建block的hadoop版本和命名空间ID。它存储有关同一命名空间中其他block的信息。正确答案是什么? 最佳答案 根据权威指南:HDFSblock存储在带有blk_前缀的文件中;它们由正在存储的文件的一部分的原始字节组成。每个block都有一个带有.meta后缀的关联元数据文件。它由带有版本和类型信息的header组成,后跟该block部分的一系列校验和。

hadoop - java.io.IOException : Cannot obtain block length for LocatedBlock 异常

我正在使用HDP2.1。对于集群。我遇到了以下异常,因此MapReduce作业失败了。实际上,我们经常使用来自Flume的数据创建表,这是ver。1.4.我检查了mapper试图读取的数据文件,但我找不到任何内容。2014-11-2800:08:28,696WARN[main]org.apache.hadoop.metrics2.impl.MetricsConfig:Cannotlocateconfiguration:triedhadoop-metrics2-maptask.properties,hadoop-metrics2.properties2014-11-2800:08:28,

hadoop - Hadoop HDFS中 block 的概念

我对Hadoop中的block有一些疑问。我读到Hadoop使用HDFS,它会创建特定大小的block。第一个问题block是否物理存在于普通文件系统(如NTFS)的硬盘上,即我们可以看到托管文件系统(NTFS)上的block,还是只能使用hadoop命令才能看到?第二个问题hadoop是否在运行任务之前创建block,即只要有文件,block就从一开始就存在,或者hadoop仅在运行任务时创建block。第三个问题block是在拆分之前确定和创建的(即InputFormat类的getSplits方法)而不考虑拆分次数,还是在拆分之后根据拆分次数确定和创建block?第四个问题运行任务

hadoop - 如何减少 HDFS 目录中的复制因子及其影响

我们使用HortonworksHDP2.1(HDFS2.4),复制因子为3。我们最近停用了一个数据节点,这在集群中留下了很多复制不足的block。Cluster现在正在尝试通过在其他节点之间分配复制block来满足复制因子。如何停止该进程。我可以接受一些文件只被复制两次。如果我在该目录中将复制因子更改为2,该进程是否会终止?对于包含3个副本的文件的目录,将复制因子设置为2会产生什么影响。集群是否会启动另一个进程来删除每个文件的3个副本的多余副本?感谢您对此的帮助。也请分享引用资料。谢谢。萨吉瓦。 最佳答案 Wehaverecentl

hadoop - 修改HDFS的 block 放置策略

我想修改HDFS的默认block放置策略以适合我的应用程序。例如,我有两个文件file1(128MB)和file2(128MB)。block大小为64MB,每个文件将被分成两个block。我想确保file1和file2的block1都放在同一个数据节点上。如果可能的话,我还想确保副本也放在同一组数据节点上。问题1。这可能吗?如果可以,需要修改源码中的哪些类?问题2。copyFromLocal等命令如何映射到hadoop源代码中的函数? 最佳答案 block放置策略的默认行为可以通过扩展BlockPlacementPolicy来修改。

hadoop - 读操作时的NameNode DataNode通信

所以我正在学习CCDH认证,我在网上找到了一些示例问题,但老实说,我认为它们都不是那么准确,所以我想在这里查看一下。以下哪项最能描述HDFS上的读取操作?一个。客户端向NameNode查询block位置。NameNode返回block位置给客户端。客户端从DataNode读取数据目录。B.客户端并行查询所有DataNode。包含请求的DataNode数据直接响应客户端。客户端直接从DataNode读取数据。C.客户端联系NameNode以获取block位置。然后是NameNode查询数据节点的block位置。DataNodes响应NameNode,NameNode将客户端重定向到保存请

hadoop - Hadoop 2.x 中的默认 block 大小

Hadoop2.x中的默认block大小为128MB。64MB有什么问题? 最佳答案 block大小增加有一些原因。如果您正在管理peta字节数据的大型Hadoop集群,它会提高性能。如果您正在管理一个1peta字节的集群,64MBblock大小会导致15+百万block,这对于有效管理的Namenode。有很多block也会导致在MapReduce执行期间有很多映射器。根据你的数据需求,你可以微调dfs.blocksize通过正确设置block大小(64MB或128Mb或256MB或512MB),您可以实现改进Namenode性能