草庐IT

device-mapper

全部标签

java - Hadoop Map-Reduce 并行执行 3 个 Mappers 并输出到 1 个 reducer

我有一个要求,我必须根据每个数据集的不同标准过滤3个不同的数据集,最后将它们联合起来并将它们聚合到一个reducer中。我有一个执行作业的Pig脚本,其中数据集的过滤按顺序发生。我想知道是否有可能为每个数据集并行运行Mappers,并将输出发送到1个reducer类。 最佳答案 尝试使用MultipleInputs和3个映射器来处理3个数据集。请参阅此链接以获取MultipleInputs的API-https://hadoop.apache.org/docs/stable/api/org/apache/hadoop/mapreduc

hadoop - 在 MapReduce 的一个 Mapper 中读取下一行

我有一个文本输入文件,它由换行符分隔。在每个映射器中,我需要读取我的键/值的下一行。例如,在这个数据中:L1L2L3我需要这样的东西:L1L2在下一个映射器中:L2L3提前致谢。 最佳答案 除了CustomInputFormat之外,您还可以像Map一样在集合中存储行前,并在每次下次调用时访问它例子: 关于hadoop-在MapReduce的一个Mapper中读取下一行,我们在StackOverflow上找到一个类似的问题: https://stackover

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

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

关于adb devices无法找到设备:error: device not found 的解决办法

一、此类问题出现的原因,一般是设备所使用的端口被占用,需要找到被占用的端口。二、操作步骤1、打开命令窗口。2、输入adbshell会发现提示error:devicenotfound!3、输入adbkill-server  ,然后启动adbstart-server  4、输入netstat-ano|findstr“5037”,找到TCP127.0.0.1:50370.0.0.0:0LISTENINGxxxxx端口5、这样就找到了所被占用的端口,将其kill掉。输入taskkill/f/pidxxxxx6、再次输入adbshell,即可完成操作,将设备成功连接上。7、结果显示还是error:dev

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结