我对Hadoop架构有几个问题
-
在Mapreduce中,我们可以动态修改块大小和映射器的数量吗,如果是这样,我们该怎么办?
-
如何在HDFS中创建块。例如,Hadoop框架安装在redhat linux机器上。 Linux 文件系统的默认块大小为 4k。HDFS块是4k块上的逻辑包装器,还是如何创建块。也是并行的还是顺序的?因为例如,一个文件只有 32 MB,因为块大小为 64 MB。剩余的 32 Mb 是否可以重复使用?
-
我想查看我刚刚复制到HDFS的特定文件的所有块的位置(数据节点)。是否有任何命令可以从单个位置执行此操作?
-
如果我将视频文件移动到HDFS,该视频文件的块分配如何发生
- 在Mapreduce中,我们可以动态修改块大小和映射器的数量吗?
我假设您正在寻找HDFS文件系统。
HDFS是分布式存储系统,Mapreduce是分布式处理框架。
HDFS块大小可以通过hdfs-site来改变.xml
查看各种 HDFS 配置的文档页面。
dfs.blocksize
134217728(默认值)
新文件的默认块大小(以字节为单位)。您可以使用以下后缀(不区分大小写):k(kilo),m(mega),g(giga),t(tera),p(peta),e(exa)来指定大小(例如128k,512m,1g等),或者以字节为单位提供完整的大小(例如134217728表示128 MB)。
相关 SE 问题:
如何在Hadoop中设置数据块大小?改变它是否有利?
- 如何在HDFS中创建块。例如,Hadoop框架安装在redhat linux机器上。 Linux 文件系统的默认块大小为 4k。HDFS块是4k块上的逻辑包装器,还是如何创建块。也是并行的还是顺序的?因为例如,一个文件只有 32 MB,因为块大小为 64 MB。剩余的 32 Mb 是否可以重复使用?
剩余的 32 MB 可重复使用。
看看这个关于HDFS块写入操作的SE问题:
Hadoop 文件写入
- 我想查看我刚刚复制到HDFS的特定文件的所有块的位置(数据节点)。是否有任何命令可以从单个位置执行此操作?
hadoop fsck /path/to/file -files -blocks
相关 SE 问题:
在 hadoop 中查看文件的块数
- 如果我将视频文件移动到 HDFS,此视频文件的块分配如何发生?
块数 = 文件大小(以 MB 为单位)/DFS 块大小(以 MB 为单位)
一旦确定了块的数量,这些块将按照Hadoop文件写入问题中的说明进行写入。
还有一些好问题:
Hadoop 块大小、拆分块大小与块大小
Hadoop如何决定有多少节点将执行映射和减少任务