hadoop - 当谈到 mapreduce 时,Accumulo tablet 是如何映射到 HDFS block 的

标签 hadoop mapreduce accumulo

如果我的环境设置如下:
-64MB HDFS block
-5 台平板电脑服务器
-10 个 tablets,每个 tablet 服务器大小为 1GB

如果我有如下表格:
行A | f1 | q1 | v1
行A | f1 |问题2 | v2

行B | f1 | q1 | v3

行C | f1 | q1 | v4
C行 | f2 | q1 | v5
C行 | f3 |问题3 | v6

从很少的文档中,我知道关于 rowA 的所有数据都将放在一个平板电脑上,平板电脑可能包含也可能不包含其他行的数据,即全部或不包含。所以我的问题是:

tablet 如何映射到 Datanode 或 HDFS block ?显然,一个 tablet 被分成多个 HDFS block (在本例中为 8 个),那么它们将存储在相同或不同的数据节点上还是无关紧要?

在上面的示例中,关于 RowC(或 A 或 B)的所有数据会进入同一个 HDFS block 还是不同的 HDFS block ?

在执行 map reduce 作业时,我会得到多少个映射器? (每个 hdfs block 一个?或每个平板电脑?或每个服务器?)

提前感谢您提出的所有建议。

最佳答案

直接回答您的问题:

How are the tablets mapped to a Datanode or HDFS block? Obviously, One tablet is split into multiple HDFS blocks (8 in this case) so would they be stored on the same or different datanode(s) or does it not matter?

Tablet 像 HDFS 中的所有其他文件一样存储在 block 中。您通常会在至少一个数据节点上看到单个文件的所有 block (情况并非总是如此,但当我查看较大文件的 block 位置时似乎大多成立)

In the example above, would all data about RowC (or A or B) go onto the same HDFS block or different HDFS blocks?

取决于您的平板电脑的 block 大小(dfs.block.size 或如果配置了 Accumulo 属性 table.file.blocksize)。如果 block 大小与 tablet 大小相同,那么显然它们将在同一个 HDFS block 中。否则,如果 block 大小小于平板电脑大小,那么它们是否在同一个 block 中就靠运气了。

When executing a map reduce job how many mappers would I get? (one per hdfs block? or per tablet? or per server?)

这取决于你给的范围 InputFormatBase.setRanges(Configuration, Collection<Ranges>) .

如果您扫描整个表格 (-inf -> +inf),那么您将获得与 tablets 数量相等的映射器数量(由 disableAutoAdjustRanges 警告)。如果您定义特定范围,您将获得不同的行为,具体取决于您是否调用了 InputFormatBase.disableAutoAdjustRanges(Configuration)。与否:

  1. 如果您调用了此方法,那么您将在每个定义的范围内获得一个映射器。重要的是,如果您的范围从一个平板电脑开始到另一个平板电脑结束,您将获得一个映射器来处理整个范围
  2. 如果您不调用此方法,并且您的范围跨越多个平板电脑,那么您将为该范围涵盖的每个平板电脑获得一个映射器

关于hadoop - 当谈到 mapreduce 时,Accumulo tablet 是如何映射到 HDFS block 的,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13712822/

相关文章:

apache-spark - EMR 5.27上的pyspark spark 2.4-列出文件后集群停止处理

hadoop - 在 MapReduce 中,reduce 任务与 reducer 有何不同

hadoop - 运行 mapreduce 作业时无法连接到 Zookeeper

hadoop - Accumulo 表名称映射问题

java - 累积删除带安全标签的行

python - 如何让我的 Hadoop python 映射器工作?

ubuntu - 使用HDFS中的文件到Apache Spark

apache-spark - 无法使用 pyspark 写入 hdfs

javascript - Mongodb MapReduce : query another database

azure - 如何通过门户管理HDInsight集群?