向 Hadoop MapReduce 中的单个映射提供多个非文本文件

2023-11-30

我目前正在编写分布式应用程序,它在 Hadoop MapReduce 的帮助下解析 Pdf 文件。 MapReduce 作业的输入是数千个 Pdf 文件(大部分范围从 100KB 到 ~2MB),输出是一组解析的文本文件。

出于测试目的,最初我使用WholeFileInputFormat汤姆·怀特 (Tom White) 提供Hadoop。权威指南书,它提供单个文件到单个地图。这对于少量的输入文件来说工作得很好,但是,由于明显的原因,它不能正常地处理数千个文件。需要大约一秒钟才能完成的任务的单个地图效率很低。

因此,我想做的是将多个 Pdf 文件提交到一个 Map 中(例如,将多个文件组合成单个块,该块的 HDFS 块大小约为 64MB)。我发现CombineFileInputFormat对我的案例很有用。但是我不知道如何扩展该抽象类,以便我可以将每个文件及其文件名作为单个键值记录进行处理。

任何帮助表示赞赏。谢谢!


我认为 SequenceFile 可以满足您的需求:http://wiki.apache.org/hadoop/SequenceFile

本质上,您将所有 PDF 放入一个序列文件中,映射器将接收适合序列文件的一个 HDFS 块的尽可能多的 PDF。创建序列文件时,您将键设置为 PDF 文件名,值将设置为 PDF 的二进制表示形式。

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

向 Hadoop MapReduce 中的单个映射提供多个非文本文件 的相关文章

随机推荐

  • 如何在 Nuxt 中使用私有 API 密钥(在客户端)?

    问题解决了 如果您遇到同样的问题 请查看已接受的答案 这是使用 serverMiddleware 实现它的一种方法 我正在使用需要私钥的 API 我已将密钥存储在 env 文件中 并在 nuxt 配置文件中调用它 如下所示 privateR
  • 如何使用 R 中的最大似然模型将非线性函数拟合到 ggplot2 中的数据?

    数据集 x test y test 是指数拟合 我正在尝试适应自定义非线性函数 并附上代码 常规点图很好 但我无法使拟合线发挥作用 有什么建议么 x test lt runif 50 2 8 y test lt 0 5 x test df
  • 如何处理 socket.io 客户端聊天应用程序中的页面重新加载

    我正在实现一个聊天应用程序 我不在服务器中 包含 javascript 文件的页面可以是文件系统上嵌入了 javascript socket io 的任何 html 页面 现在的问题是 根据定义 页面重新加载总是会触发新的请求 从而产生新的
  • 如何从辅助方法设置变量以包含在 SASS SCSS 样式表中?

    我有一个辅助方法 可以检索需要进入 SASS scss 样式表的字符串 如果我在视图中调用该方法 它工作正常 但似乎 sass 需要一个变量 似乎如果我尝试在控制器中设置一个 var 并认为这最初是正确的方法 我无法在任何地方看到该 var
  • Perl:匹配时空 $1 正则表达式值?

    读者们 我有以下正则表达式问题 code usr bin perl w use 5 010 use warnings my filename input txt open my FILE lt filename or die while m
  • 剂量响应 - 使用 R 进行全局曲线拟合

    我有以下剂量反应数据 希望绘制剂量反应模型和全局拟合曲线 xdata 药物浓度 ydata 0 5 不同药物浓度下的响应值 我毫无问题地绘制了标准曲线 标准曲线数据拟合 df lt data frame xdata c 1000 00 30
  • 从 C# 代码调用 delphi DLL 方法

    我正在尝试从 C ASP NET 代码调用 Delphi 函数 该函数的声明如下所示 function SomeFunction const someString SomeOtherString string OleVariant 从我的
  • 我如何洗牌并向玩家一次一张发牌?

    这就是我到目前为止所得到的 发现自己陷入困境 Private Sub Dealbtn Click sender As Object e As EventArgs Handles Dealbtn Click Dim Suits As Stri
  • 如果数组包含 2 或 3,则返回 True

    我遇到了这个 CodingBat 问题 给定一个长度为 2 的 int 数组 如果它包含 2 或 3 则返回 True 我尝试了两种不同的方法来解决这个问题 谁能解释我做错了什么 This one says index is out of
  • ValueError:地下矩形外表面积

    我正在制作一款相机跟随玩家的平台游戏 我试图通过在整个地图上拥有一个大的表面并且只传输放大的部分来实现这一点 但是我只能获得 30 fps 最小化 和 8 fps 全屏 所以我尝试优化它是在位块传输之前裁剪它 但我得到ValueError
  • 是否有用于电话状态的 NSNotification

    当设备打开 关闭手机时 我们是否可以观察到 NSNotification The NotificationCenter不会发出任何有关此的通知 但请看一下CTCallCenteriOS 4 中引入的类 它有一个callEventHandle
  • R 按键分组获取多列的最大值

    我想做这样的事情 如何使R中的A列唯一并保留B列中具有最大值的行 除了我的data table有一个键列和多个值列 所以说我有以下内容 a b c 1 1 1 1 2 1 2 1 3 1 2 2 4 2 1 1 5 2 2 5 6 2 3
  • Perl - 在关联数组单词和单词上下文中查找并保存

    我有一个像这样的数组 这只是一个小概述 但它有 2000 行及更多这样的行 list affaire chose question cause chose mati re 我想要这样的输出 te affaire gt chose quest
  • 当对象大于视口时,CSS 居中

    我试图让 jquery 轮播位于屏幕中央 即使剪切区域比视口更宽 这基本上总是给元素一个负的左边距 我该如何指定呢 剪切区域的宽度是固定的 但视口区域当然是可变的 这是我能找到的最佳解决方案 在固定宽度内容周围使用环绕元素 然后在内容本身上
  • Android:BroadcastReceiver 重新启动被杀死/崩溃的应用程序

    我有一个应用程序 我希望能够在发生错误或崩溃 应用程序关闭时重新启动它 我熟悉如何注册BroadcastReceivers 使用闹钟等 我是否可以拦截应用程序关闭时发出的任何信号 或者当任何应用程序关闭时操作系统会发送出去 我是否可以拦截应
  • 如果需要,允许使用 Cleartext 流量 Android Studio

    我有 2 部手机 api 28 17 所以当请求 HTTP 时 它与 api 17 一起使用 但不是在 api 28 中 朋友说 我必须使用 android usesCleartextTraffic true 在清单中 但是当构建它在手机中
  • 将 template.js.erb 重写为 template.js.slim

    下面的 js erb 模板重写为 slim 后会是什么样子 new reservation hide after Slim 提供了一种多行方法 var html j render new reservation new reservatio
  • 从输入文件路径logstash中提取字段?

    我想从各个目录读取日志文件 例如 Server1 Server2 Server1子目录为cron auth 这些子目录中是log file分别 所以我正在考虑读取这样的文件 input file path to folders server
  • 有没有办法使用 javascript 从 tiff 图像中提取地理标签?

    我正在开展一个项目 需要使用正射马赛克地图 该地图采用 tiff 格式 我想从该地图中提取地理信息 以便我可以将其正确覆盖在谷歌地图上 我在这个项目中使用平均堆栈 所以我的最后一个问题是 有没有办法使用 javascript 从 tiff
  • 向 Hadoop MapReduce 中的单个映射提供多个非文本文件

    我目前正在编写分布式应用程序 它在 Hadoop MapReduce 的帮助下解析 Pdf 文件 MapReduce 作业的输入是数千个 Pdf 文件 大部分范围从 100KB 到 2MB 输出是一组解析的文本文件 出于测试目的 最初我使用