- android - RelativeLayout 背景可绘制重叠内容
- android - 如何链接 cpufeatures lib 以获取 native android 库?
- java - OnItemClickListener 不起作用,但 OnLongItemClickListener 在自定义 ListView 中起作用
- java - Android 文件转字符串
据我所知,在将文件复制到 HDFS 时进行文件拆分和在文件上为映射器输入进行输入拆分是完全两种不同的方法。
这是我的问题--
假设我的 File1 大小是 128MB,它被分成两个 block 并存储在 hadoop 集群中的两个不同数据节点(Node1,Node2)中。我想在这个文件上运行 MR 作业,得到两个大小分别为 70MB 和 58MB 的输入分割。第一个映射器将通过获取输入拆分数据(大小为 70 MB)在节点 1 上运行,但节点 1 只有 64 MB 数据,其余 6 MB 数据显示在节点 2 中。
To complete Map task on Node1, Does hadoop transfer 6MB of data from Node2 to Node1? if yes, what if Node1 do not have enough storage to store 6MB data from Node2.
如果我的担心很尴尬,我深表歉意。
最佳答案
64 MB 的数据将写入节点 1,6 MB 的数据将写入节点 2。
Map Reduce 算法不适用于文件的物理 block 。它适用于逻辑输入拆分。输入拆分取决于记录的写入位置。一条记录可能跨越两个映射器。
在您的示例中,假设记录在 63 KB 数据之后开始并且记录长度为 2 MB。在这种情况下,1 MB 是节点 1 的一部分,其他 1 MB 是节点 2 的一部分。其他 1 MB 的数据将在映射操作期间从节点 2 传输到节点 1。
请看下图以更好地理解logical split Vs physical blocks
看看一些 SE 问题:
How does Hadoop process records split across block boundaries?
About Hadoop/HDFS file splitting
MapReduce 数据处理是由这种输入拆分概念驱动的。为特定应用程序计算的输入拆分数决定了映射器任务的数量。
这些映射器任务中的每一个都在可能的情况下分配给存储输入拆分的从节点。资源管理器(或 JobTracker,如果您使用的是 Hadoop 1)尽最大努力确保在本地处理输入拆分。
如果由于输入拆分跨越数据节点的边界而无法实现数据局部性,则一些数据将从一个数据节点传输到另一个数据节点。
关于hadoop - 关于 MR inputsplit,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33763772/
我正在使用 grep 将“先生”和“夫人”替换为“先生”。和“夫人”,但每当我输入 gsub("Mr", "Mr.", data$Title) 它还会导致所有“夫人”变成“先生”,这不完全是我正在寻找
我在一台远程机器(四核超线程)上安装了 Hadoop 1.2.1,并且正在用 1GB 的文件(一个文件,未压缩)测试 MR 的性能 当我将拆分大小设置为大约 250MB 时,我有四个映射器。在输出文件
我正在尝试了解 MR 作业经历的各个阶段。我阅读了相同的在线文档。 据此,我对序列的理解如下: map() -> Partitioner -> Sorting (mapper machine) ->
我在HDFS中的数据上运行三种不同类型的作业。 在当前情况下,这三个作业必须分别运行。 现在,we want to run the three jobs together by piping the
我有几个 MR-3020,我用 OpenWRT 刷过,并在上面安装了一个 16GB ext4 USB 驱动器。启动时,将启动一个守护进程 shell 脚本,它会做两件事: 1) 它不断查看我的主程序是
我有 9 个文件,每个文件的大小都等于集群的 BlockLength,存储在 hadoop 中。我需要获取文件所在的数据节点的地址。复制因子为 3 。 是否有任何 hadoop API 可以执行此操作
我是 HIVE 和 HADOOP 的新手,在这里我试图在 hive 中加入两个示例表,其中表没有任何主外键关系只是为了练习:- 表格如下 Employees table:-
据我所知,在将文件复制到 HDFS 时进行文件拆分和在文件上为映射器输入进行输入拆分是完全两种不同的方法。 这是我的问题-- 假设我的 File1 大小是 128MB,它被分成两个 block 并存储
我是 Hadoop 的新手,这是我的第一个映射器程序,我正在通过 MR 单元对其进行单元测试。 我正在传递我通过配置对象设置的参数(年份) Configuration config =new
我使用 Sqoop、Hive 和 Pig 操作创建了一个简单的 Oozie 工作流。对于其中的每一个 Action ,Oozie 都会启动一个 MR 启动器,然后由它启动 Action (Sqoop/
我正在运行 MR ( myrepos ) 并尝试运行全局配置。我曾尝试使用 .mrconfig 中的 DEFAULT 部分,但无济于事: [DEFAULT] clean = git clean -df
我们都知道kloxo这个国外非常著名的开源的服务器管理系统,虽然kloxo在国内使用起来会遇到不少的问题,但是由于kloxo可以与whmcs等整合,还是得到了不少朋友的喜爱。本文要介绍的klox
本文整理了Java中org.elasticsearch.hadoop.mr.WritableValueWriter类的一些代码示例,展示了WritableValueWriter类的具体用法。这些代码示
Create PROCEDURE [dbo].[K_RT_FixedAsset] @fromdate datetime, @todate datetime AS BEGIN SET NOCOUNT O
我正在尝试在Hadoop集群上运行MR作业。一旦尝试成功,但是从昨天开始,我将无法运行同一命令,因为它找不到输入路径 这是跟踪: [esb99usr@SBT-IPO-078 ~]$ yarn jar
我正在尝试通过独立的HBase(0.94.11)执行MR代码。 我已经阅读了HBase api,并修改了MR代码以读取数据并向HBase表写入结果,并且在reduce阶段遇到异常。提供部分代码(不包括
我创建了一个正则表达式,可以提取包含匹配单词的句子。 [^.|?|!]*\[^.|!|?]*[\"!?:\.] 但是,它不适用于句子中含有先生/夫人/博士等的情况。 例如: The adventure
我是 MRJob 和 MR 的新手,我想知道 MRJob MR 的传统字数统计 python 示例: from mrjob.job import MRJob class MRWordCounter(M
我试图编写正则表达式来识别以开头的名称 Mr.|Mrs. 例如 Mr. A, Mrs. B. 我尝试了几种表达方式。这些正则表达式已在在线工具 pythonregex.com 上进行检查。 。使用的测
我知道这可能非常简单或其他什么,但最近几个小时我一直在思考这个问题。我搞不清楚了。我有一个看起来像这样的集合(每个文档结构都是相同的) { "_id": "736722976", "val
我是一名优秀的程序员,十分优秀!