Hadoop和Mapreduce配置

时间:2016-03-03 04:45:48

标签: hadoop mapreduce hdfs

关于Hadoop架构我几乎没有问题

  1. 在Mapreduce中,我们可以动态修改块大小而不是映射器,如果是这样,我们该怎么办?

  2. Hows是否在HDFS中创建了块。例如,hadoop框架安装在redhat linux机器上。 linux文件系统的默认块大小是4k。 HDFS块是4k块上的逻辑包装器还是如何创建块。它也是平行的还是顺序的?因为例如一个文件只有32 MB,因为块大小是64 MB。剩下的32 Mb是否可以重复使用?

  3. 我想看到刚刚复制到HDFS的特定文件的所有块的位置(数据节点)。是否有命令从一个位置执行此操作?

  4. 如果我将视频文件移动到HDFS,该视频文件的块分配是如何发生的

1 个答案:

答案 0 :(得分:1)

  
      
  1. 在Mapreduce中,我们可以动态修改块大小而不是映射器吗?
  2.   

我假设您正在寻找HDFS文件系统。

HDFS 是分布式存储系统, Mapreduce 是分布式处理框架。

可以使用 hdfs-site.xml

更改HDFS块大小

查看各种HDFS配置的文档page

dfs.blocksize

134217728 (默认值)

新文件的默认块大小(以字节为单位)。您可以使用以下后缀(不区分大小写): k(kilo),m(兆),g(千兆),t(tera),p(peta),e(exa) 指定大小(例如128k,512m,1g等),或者提供完整的字节大小(例如134217728为128 MB)

关联SE问题:

How to set data block size in Hadoop ? Is it advantage to change it?

  
      
  1. Hows是否在HDFS中创建了块。例如,hadoop框架安装在redhat linux机器上。 linux文件系统的默认块大小是4k。 HDFS块是4k块上的逻辑包装器还是如何创建块。它也是平行的还是顺序的?因为例如一个文件只有32 MB,因为块大小是64 MB。剩下的32 Mb是否可以重复使用?
  2.   

剩余的32 MB可重复使用。

看看这个关于HDFS块写操作的SE问题:

Hadoop file write

  
      
  1. 我想查看刚刚复制到HDFS的特定文件的所有块的位置(数据节点)。是否有命令从一个位置执行此操作?
  2.   
hadoop fsck /path/to/file -files -blocks

相关的SE问题:

Viewing the number of blocks for a file in hadoop

  
      
  1. 如果我将视频文件移动到HDFS,该视频文件的块分配情况如何?
  2.   

块数=以MB为单位的文件大小/以MB为单位的DFS块大小

一旦识别出块数,就会按照Hadoop文件写入问题中的说明编写这些块。

更多好问题:

Hadoop chunk size vs split vs block size

How hadoop decides how many nodes will do map and reduce tasks