输入格式是否负责在 Hadoop 的 MapReduce 中实现数据局部性?

2023-12-25

我试图了解数据局部性,因为它与 Hadoop 的 Map/Reduce 框架相关。特别是我想了解哪个组件处理数据局部性(即它是输入格式吗?)

雅虎的开发者网络页面 http://developer.yahoo.com/hadoop/tutorial/module1.html声明“然后,Hadoop 框架使用来自分布式文件系统的知识将这些进程安排在数据/记录位置附近。”这似乎意味着 HDFS 输入格式可能会查询名称节点以确定哪些节点包含所需数据,并在可能的情况下在这些节点上启动映射任务。人们可以想象 HBase 可以采用类似的方法,通过查询来确定哪些区域正在服务某些记录。

如果开发人员编写自己的输入格式,他们将负责实现数据局部性吗?


你说得对。如果您正在查看FileInputFormat类和getSplits()方法。它搜索块位置:

BlockLocation[] blkLocations = fs.getFileBlockLocations(file, 0, length);

这意味着文件系统查询。这发生在JobClient,结果被写入 SequenceFile(实际上它只是原始字节代码)。 因此,Jobtracker 稍后在初始化作业时读取此文件,并且几乎只是将任务分配给输入分割。

但数据的分发是NameNode 的工作。

现在回答你的问题: 通常你是从FileInputFormat。所以你将被迫返回一个列表InputSplit,并且在初始化步骤中需要这样的东西来设置分割的位置。例如FileSplit:

public FileSplit(Path file, long start, long length, String[] hosts)

所以实际上你并没有实现数据局部性本身,你只是告诉在哪个主机上可以找到分割。这可以通过以下方式轻松查询FileSystem界面。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

输入格式是否负责在 Hadoop 的 MapReduce 中实现数据局部性? 的相关文章

  • 是否可以通过编写单独的mapreduce程序并行执行Hive查询?

    我问了一些关于提高 Hive 查询性能的问题 一些答案与映射器和减速器的数量有关 我尝试使用多个映射器和减速器 但在执行中没有看到任何差异 不知道为什么 可能是我没有以正确的方式做 或者我错过了其他东西 我想知道是否可以并行执行 Hive
  • Protobuf RPC 在 Hadoop 2.2.0 单节点服务器上不可用?

    我正在尝试在按照本教程安装的本地单节点集群上运行 hadoop 2 2 0 mapreduce 作业 http codesfusion blogspot co at 2013 10 setup hadoop 2x 220 on ubuntu
  • Hadoop - 直接从 Mapper 写入 HBase

    我有一个 hadoop 作业 其输出应写入 HBase 我并不真正需要减速器 我想要插入的行类型是在映射器中确定的 如何使用 TableOutputFormat 来实现此目的 从所有示例中 我看到的假设是 reducer 是创建 Put 的
  • 通过Oozie命令行指定多个过滤条件

    我正在尝试通过命令行搜索一些特定的 oozie 作业 我使用以下语法进行相同的操作 oozie jobs filter status RUNNING status KILLED 但是 该命令仅返回正在运行的作业 而不是已杀死的作业 需要帮助
  • Mongodb MapReduce 选择最新日期

    我似乎无法让我的 MapReduce 缩减功能正常工作 这是我的地图功能 function Map day Date UTC this TimeStamp getFullYear this TimeStamp getMonth this T
  • 如何在hadoop mapreduce/yarn中设置VCORES?

    以下是我的配置 mapred site xml map mb 4096 opts Xmx3072m reduce mb 8192 opts Xmx6144m yarn site xml resource memory mb 40GB min
  • Hadoop 减速器数量配置选项优先级

    以下3个设置reduce数量的选项的优先级是什么 换句话说 如果三者都设置了 会考虑哪一个呢 Option1 setNumReduceTasks 2 within the application code Option2 D mapredu
  • “错误:无法找到或加载主类 org.apache.hadoop.util.RunJar”是什么意思?

    我正在尝试运行一个示例 因为它指出 Hadoop 实践 一书 http www manning com lam 第 15 页 这是需要运行的命令 bin hadoop jar hadoop examples jar 但我收到这个错误 Err
  • 如何从spark中的hbase表中获取所有数据

    我在 hbase 中有一个大表 名称为 UserAction 它具有三个列族 歌曲 专辑 歌手 我需要从 歌曲 列族中获取所有数据作为 JavaRDD 对象 我尝试了这段代码 但效率不高 有更好的解决方案来做到这一点吗 static Spa
  • Spark-submit,客户端无法通过以下方式进行身份验证:[TOKEN,KERBEROS];

    我使用 kerberos 设置了 hadoop 集群 但是当我运行 Spark Submit 时 它抛出异常 17 10 19 08 46 53 WARN scheduler TaskSetManager Lost task 0 0 in
  • 缺少依赖项 hive-builtins 会导致 Oozie 构建失败,错误代码为 410

    我尝试从源代码构建 oozie 但安装失败 我想安装 oozie 并热切地等待使用它 我在这个阶段失败了 当我从 oozie 3 3 3 目录给出 cmd 时 bin mkdistro sh DskipTests 我收到这个错误 INFO
  • 关于 Hadoop 和压缩输入文件的非常基本的问题

    我已经开始研究 Hadoop 如果我的理解是正确的 我可以处理一个非常大的文件 它会被分割到不同的节点上 但是如果文件被压缩 那么文件就无法分割 并且需要由单个节点处理 有效地破坏了运行一个mapreduce 一个并行机器集群 我的问题是
  • 为什么 SequenceFile 被截断?

    我在学习Hadoop这个问题困扰了我一段时间 基本上我正在写一个SequenceFile到磁盘然后读回 然而 每次我收到EOFException阅读时 深入观察发现 在写入序列文件时 它被过早截断 并且总是发生在写入索引962之后 并且文件
  • S3并行读写性能?

    考虑 Spark 或任何其他 Hadoop 框架 从 S3 读取大型 例如 1 TB 文件的场景 多个spark执行器如何从S3并行读取非常大的文件 在 HDFS 中 这个非常大的文件将分布在多个节点上 每个节点都有一个数据块 在对象存储中
  • HDFS:使用 HDFS API 附加到 SequenceFile

    我一直在尝试使用 Java API 在 HDFS 上创建和维护序列文件 而不运行 MapReduce 作业作为设置用于未来的 MapReduce 工作 我想将 MapReduce 作业的所有输入数据存储在单个序列文件中 但数据会随着时间的推
  • Hadoop2.2.0无法访问网页http://:8088

    我设置了一个包含两个节点 hadoop01 master 10 0 0 151 和 hadoop02 slaves 10 0 0 152 的 hadoop 集群 当输入 start dfs sh 然后访问网站 my ip 上面就是 10 0
  • Pyspark 应用程序仅部分利用 dataproc 集群资源

    我的 pyspark 应用程序在 106 36 MB 数据集 817 270 条记录 上运行 UDF 使用常规 python lambda 函数大约需要 100 小时 我创建了一个 Google Dataproc 集群 其中包含 20 个工
  • HBase中删除多行的有效方法

    有没有一种有效的方法可以删除 HBase 中的多行 或者我的用例是否不适合 HBase 有一个表称为 图表 其中包含图表中的项目 行键的格式如下 chart date reversed ranked attribute value reve
  • 与其他格式相比,Apache Parquet 格式有哪些优缺点?

    Apache Parquet 的一些特性是 自我描述 柱状格式 独立于语言 与 Apache Avro 序列文件 RC 文件等相比 我想了解一下这些格式 我已经读过 Impala 如何使用 Hadoop 文件格式 https www clo
  • 如何通过HBase REST服务获取Phoenix表数据

    我使用 Phoenix JDBC 驱动程序在以下代码片段中创建了一个 HBase 表 Class forName org apache phoenix jdbc PhoenixDriver Connection conn DriverMan

随机推荐

  • Python 查找和替换脚本中的正则表达式?更新

    我是 Python 脚本新手 所以如果这个问题的答案看起来本质上是显而易见的 请提前原谅我 我正在尝试使用 Python 编写一个大规模的查找和替换脚本 我正在使用类似于以下的代码 infile sys argv 1 charenc sys
  • 将 Metaltexture2d_array 传递给 SceneKit 着色器修改器

    我想创建着色器修改器SCNMaterial with SCNShaderModifierEntryPointSurface 并通过金属texture2d array作为自定义输入 为了实现这一点 我尝试使用类型的键值编码设置参数SCNMat
  • 与屏幕相同的打印 CSS

    似乎确实应该有一个简单的解决方案来解决这个问题 但到目前为止我还没有成功找到一个 我正在使用 Zurb Foundation 基本上是在创建一个实时表单 该表单从表单 上面 中获取输入 并使用 angular js 填充内容 下面 然后 用
  • 如何从使用 Template Haskell 生成的代码创建非 TH 包?

    我正在制作一个小包 它定义元组的包装器并添加它们的实例 例如 newtype Tuple2 a Tuple2 untuple2 a a deriving tuple2 a gt a gt Tuple2 a tuple2 instance T
  • Android 音调生成器崩溃

    几天前 我收到了我发布的应用程序的崩溃日志 错误来自ToneGenerator 我找不到问题所在 在这里 我有一个倒计时器 当计时器达到 0 时 应用程序启动一个 ToneGenerator private void lanceMinute
  • 如何为 Java 类字段生成准确的泛型表达式?

    我试图在运行时推理泛型 有几个很棒的库可以做到这一点 例如 gentyref https code google com p gentyref 同学 https github com cowtowncoder java classmate
  • 如何根据名称为单个条形着色[重复]

    这个问题在这里已经有答案了 我有以下数据框生成以下图 Import pandas library import pandas as pd import numpy as np import matplotlib pyplot as plt
  • 如何启用映射实体的私有属性

    一开始我不得不对我的英语说抱歉 我正在使用实体框架和代码优先的方式 我脑子里有一个想法 但我不知道如何实现它 我不是编程初学者 但我一直在使用流利的 NHibernate 我有一个实体 public class User Key publi
  • Excel 互操作:Range.FormatConditions.Add 抛出 MissingMethodException

    我正在编写一个应用程序 它使用 Microsoft Office Interop Excel 程序集从 Excel 电子表格导出 导入数据 一切都很顺利 除了基于 1 的索引和所有这些可选参数 直到我尝试使用条件格式 当我调用 Range
  • 什么是有效的 HTML5 自定义标签?

    最近 我一直在阅读有关如何通过在名称中添加破折号来使自定义标签在 HTML5 中有效的内容 因此我一直想知道自定义标签的实际规则 指南是什么 custom tag custom X custom custom 我想知道的是最后两个是否有效
  • Apache 和 Node.js 在同一服务器上

    我想使用 Node 因为它速度很快 使用与我在客户端使用的语言相同的语言 并且根据定义它是非阻塞的 但是我雇来编写文件处理程序 保存 编辑 重命名 下载 上传文件等 的人 他想使用 apache 所以 我必须 说服他使用 Node 他对此几
  • 从 groovy 中访问 java 类

    我有一个简单的java类 package test class Hello public static void main String args System out println Hi 我在上面做了一个 javac Hello jav
  • 无法解决联合选择中的排序规则冲突

    我有两个疑问 首先不起作用 select hotels TargetCode as TargetCode from hotels union all select DuplicatedObjects duplicatetargetCode
  • Google Scripts - 在不同的工作表中触发和运行

    我需要 创建一个新工作表 调用主函数 设置一个将调用 main 函数的触发器 基本上是这样的 function new campaign var sheet name new sheet main function sheet name t
  • SQL 左连接将多行合并为一行

    基本上 我有两个表 表 A 包含我想要取出的实际项目 表 B 用于语言翻译 例如 表 A 包含实际内容 每当在表中使用文本时 都会存储与表 B 中存储的文本相关的 id 而不是存储实际的 varchar 值 这使我可以通过向表 B 中添加
  • Laravel Guzzle GET 请求

    client new Client base uri gt http api tvmaze com res client gt request GET schedule country US date 2014 12 01 return r
  • 为什么空数组引用的数组访问表达式不会抛出 NullPointerException?

    考虑以下代码 int r null r 0 1 0 我本以为这会引发NullPointerException 根据JLS 第 15 7 1 节 https docs oracle com javase specs jls se8 html
  • 如何在自己的 shell 中实现自己的 cd 命令[重复]

    这个问题在这里已经有答案了 我正在一个小型项目中工作 我自己的命令解释器 SHELL 例如 Bash shell 或 Sh shell 到目前为止 它可以执行所有预定义的命令 如 ls ps pwd date 除此之外 我还实现了一些其他操
  • 在不配置 Amazon Cognito 的情况下使用 Amazon Mobile Analytics

    与竞争的分析服务相比 Amazon Mobile Analytics 似乎需要更多的配置和集成步骤 例如 在 Flurry Analytics 中 设置非常简单 Flurry startSession
  • 输入格式是否负责在 Hadoop 的 MapReduce 中实现数据局部性?

    我试图了解数据局部性 因为它与 Hadoop 的 Map Reduce 框架相关 特别是我想了解哪个组件处理数据局部性 即它是输入格式吗 雅虎的开发者网络页面 http developer yahoo com hadoop tutorial