草庐IT

biztalk-mapper

全部标签

java - Hadoop 上的 MapReduce - 将数据从 Mapper 发送到 Reducer

我正在尝试针对特定问题实现MapReduce算法。假设在我的Mapper中我需要处理一个大型文本对象。以下示例总结了我的问题。我有文本对象:Todayisalovelyday我需要对这些词做一些处理。所以我有两个选择:我可以将以下形式的键值对发送到Reducer:我可以发送键值对到reducer然后处理它,例如标记化字符串对象。这种情况的最佳方法是什么?在第一种情况下,我必须向reducer发送更多数据,但我没有像第二种情况那样要标记化的字符串对象。但是在第二种情况下,Mapper发送的数据量较小。 最佳答案 我认为您不会通过这种方

oracle - 如果我们在sqoop中使用6个mapper从oracle中导入数据,那么sqoop和source之间会建立多少个connection

如果我们在sqoop中使用6个mapper从Oracle导入数据,那么sqoop和source之间会建立多少个connection。是单个连接还是每个映射器有6个连接。 最佳答案 根据sqoopdocs:Likewise,donotincreasethedegreeofparallismhigherthanthatwhichyourdatabasecanreasonablysupport.Connecting100concurrentclientstoyourdatabasemayincreasetheloadonthedataba

hadoop - 如何将一些数据发送到 Mapper 类(在 HBase 数据库中的数据上运行)

我需要为在HBase中的节点上运行的映射器作业发送一些信息。我已经在类中将数据定义为静态成员,但似乎当映射器在其他节点上运行时,数据并未传输到节点。有什么办法吗?publicclassGetResultFromVerticesIDMapperextendsTableMapper{publicstaticHashMapvertexIDsHashMap;publicstaticintnResultComponents;...} 最佳答案 上面你提到的方式是一种方式..换句话说,如果您发送系统属性,那么它将自动设置为上下文。在运行程序时,

java - Hadoop 中的 Mapper 输出保存在哪里?

我对高效管理Hadoop洗牌流量和有效利用网络带宽很感兴趣。为此,我想知道每个数据节点产生了多少洗牌流量?洗牌流量只不过是映射器的输出。那么这个映射器输出保存在哪里?如何实时从每个数据节点获取映射器输出的大小?感谢您的帮助。我已经创建了一个目录来存储这个映射器的输出,如下所示。mapred.local.dir/app/hadoop/tmp/myoutput我看着hduser@dn4:/app/hadoop/tmp/myoutput$ls-lrttotal16drwxr-xr-x2hduserhadoop4096Dec1210:50tt_log_tmpdrwx------3hduserh

hadoop - 什么时候需要 "no mapper"?

在某些用例中,我已经有一段时间没有使用reducer作业,但我从未遇到过“无映射器”作业。“NoMapper”意味着mapreduce框架仍然会读取输入文件并以某种方式(基于InputFormat?)对它们进行洗牌/排序,这些将成为我的reducer的输入? 最佳答案 “无映射器”是“身份映射器”的委婉说法。如果您不指定一个默认映射器就是这样。至少,身份映射器进程将未更改的输入定向到正确的化简器分区。 关于hadoop-什么时候需要"nomapper"?,我们在StackOverflow

java - 在 Mapper 中检索当前行的文件名

我使用的是Hadoop2.6.4版。我正在编写一个MapReduce作业,它将采用3个参数,即-Keyword,输入文件和输出文件的路径。我理想的输出应该是所有包含关键字的文件的名称。简单的逻辑是遍历文本中的每一行并将其与我们的关键字匹配。如果它返回true打印文件名。经过广泛的谷歌搜索后,我找到了3个获取文件名的选项Context.getConfiguration().get("map.input.file")Context.getConfiguration().get("mapreduce.map.input.file")这两种方法都返回了一个值为“null”的字符串,即它们在我的

hadoop - Mapper 和 Reducer 如何协同工作 "without"排序?

我知道mapreduce是如何工作的以及我有哪些步骤:绘图随机排序减少当然,我有分区、组合器,但现在这些并不重要。有趣的是,当我运行mapreduce作业时,看起来mappers和reducers并行工作:所以我不明白这怎么可能。问题1.如果我有多个节点在做映射操作,reducer如何开始工作?因为Reducer不能在没有排序的情况下开始工作吗?(输入必须为Reducer排序-如果mapper仍在工作,则输入无法排序)。问题2.如果我有多个reducer,最后的数据如何合并在一起?换句话说,最终结果应该排序对吧?这意味着我们要花费额外的O(n*Logn)时间来合并“多个reducer结

hadoop - Mapper 类如何将 SequenceFile 识别为 hadoop 中的输入文件?

在我的一个MapReduce任务中,我将BytesWritable重写为KeyBytesWritable,并将ByteWritable重写为ValueBytesWritable。然后我使用SequenceFileOutputFormat输出结果。我的问题是当我开始下一个MapReduce任务时,我想使用这个SequenceFile作为输入文件。那么如何设置作业类,Mapper类如何识别我之前覆盖的SequenceFile中的键和值?我知道我可以使用SequenceFile.Reader来读取键和值。Configurationconfig=newConfiguration();Pathp

java - Hadoop:如何为每个值提供一个全局唯一 ID 号作为 Mapper 中的键?

这是我想做的。现在我有一些这样的文本文件:xxx.example.comxxxabcdefyyy.example.comyyyabcdef...我想读取映射器中的文件拆分并将它们转换为键值对,其中每个值都是一个中的内容>标签。我的问题是关于key的。我可以使用url作为键,因为它们是全局唯一的。但是,由于我的工作背景,我想为每个键值对生成一个全局唯一编号作为键。我知道这在某种程度上违背了Hadoop的水平可扩展性。但是有什么解决办法吗? 最佳答案 如果您要通过MapReduce处理此类文件,我会采取以下策略:逐行使用通用文本输入格式

java - Hadoop 中 Mapper.Context 的 API 文档在哪里?

我很高兴能加快Hadoop的速度,其中包括检查thttps://hadoop.apache.org/docs/current/api/类Mapper的文档广泛引用了类Mapper.Context(org.apache.hadoop.mapreduce.Mapper.Context)。但是,除了旧版本的API之外,我看不到该Mapper.Context类/接口(interface)/无论它是什么的API文档。在当前的API中,我可以在哪里找到特别针对Mapper.Context的文档?我看到它在不同的地方使用(context.write方法,最常见),但我找不到这些方法的当前文档,尽管我