问题标签 [hadoop-streaming]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
2307 浏览

hadoop - Hadoop 为 java.nio.ByteBuffer 的 keytype 抛出 ClassCastException

我在集群设置中使用“hadoop-0.20.203.0rc1.tar.gz”。每当我设置job.setMapOutputKeyClass(ByteBuffer.class);

并运行我得到以下异常的作业:

我还注意到 ByteBuffer 是 Comparable 而不是 Writable 是否会产生任何差异?让我知道是否需要任何其他信息。

0 投票
2 回答
1871 浏览

python - 我们可以在 Hadoop Streaming 中级联多个 MapReduce 作业吗(语言:Python)

我正在使用 Python,并且必须使用 Hadoop Streaming 处理以下场景:a) Map1->Reduce1->Map2->Reduce2 b) 我不想存储中间文件 c) 我不想安装 Cascading、Yelp、Oozie 等软件包. 我把它们作为最后的选择。

我已经在 SO 和其他地方进行了同样的讨论,但在 Python 中找不到答案。你能建议一下吗?

0 投票
0 回答
552 浏览

hadoop - 在 Hadoop Streaming 中设置 numReduceTasks=0 时,o/p 中缺少记录

正如标题中已经提到的,您能否提出可能是什么问题。

命令

hadoop jar /usr/lib/hadoop/contrib/streaming/hadoop-streaming-0.20.2-cdh3u2.jar \

-输入/usr/pkansal/ex2/输出\

-输出 /usr/pkansal/ex2/output2 \

-映射器/home/cloudera/ex2/kMerFreqMap2.py \

-文件/home/cloudera/ex2/kMerFreqMap2.py \

-numReduceTasks 0 (如果我评论这一行,那么一切都会好起来的

输入/输出

3 chr1:1,chr1:3,chr1:5

1 小时 1:7

2 chr1:2,chr1:4

1 声道 1:6

预期 O/P

chr1 1 3

chr1 3 3

chr1 5 3

chr1 7 1

chr1 2 2

chr1 4 2

chr1 6 1

实际 O/P

chr1 2 2

chr1 4 2

chr1 6 1

0 投票
1 回答
1701 浏览

configuration - 我可以强制我的减速器(复制阶段)仅在所有映射器完成后启动吗

我有一个映射阶段很长的 hadoop 作业,我希望其他短作业优先运行。为此,我使用 hadoop job -set-priority job_id LOW 设置了我长期工作的优先级。

问题是,对于我的长期工作,即使我只完成了 30% 的 map 任务,reducers 的复制阶段也会开始。

然后我的网格有点阻塞,因为所有减少插槽都被 LOW 优先级作业占用。其他小工作可以完成他们的地图阶段,但在我的长期工作完成之前,他们永远不会得到任何减速器。

任何的想法?谢谢。J。

0 投票
3 回答
1150 浏览

hadoop - Amazon Elastic Map Reduce 是否为每个实例运行一个或多个映射器进程?

我的问题是:我应该自己关心映射器中的多处理(从标准输入读取任务然后将它们分配给工作进程,将结果组合到主进程并输出到标准输出)还是 Hadoop 会自动处理它?

我在 Hadoop Streaming 文档和 Amazon Elastic MapReduce 常见问题解答中都没有找到答案。

0 投票
1 回答
246 浏览

hadoop - 在Hadoop中如何处理每天增加的数据

在 Hadoop 中如何处理每天增加的数据:

例如:

第一天我可能在某个输入文件夹中有 100 万个文件(例如 hadoop/demo)

在同一文件夹中的第二天,文件可能会从现有的 100 万个文件 + 另一个新的 100 万个文件增加,因此总共 200 万个。

同样是第 3 4 天...继续前进。

我的限制是 -> 第一天的文件不应该在第二天处理。

(ie) 当新文件与它们一起添加时,不应再次处理已经处理的文件。更具体地说,只应处理新添加的文件,而应忽略旧文件。

所以请帮助我解决这个问题。

不过,如果您不了解约束条件,请说出不清楚的地方,以便我可以详细说明我的约束条件!

0 投票
1 回答
2996 浏览

hadoop - Hadoop API:Reducer 的 OutputFormat

我完全对 hadoop API 感到困惑。(猜它一直在变化)

如果我没记错JobConf的话,deprecated我们应该使用Joband Configurationclasses 来从 java 运行 map reduce 作业。似乎在最近发布的版本hadoop 1.0.0 JobConf中不再被弃用!

所以我正在使用 Job 和配置类来运行 map reduce 作业。现在,我需要根据我的地图输出中的某些值将减速器输出文件放在文件夹结构中。我浏览了几篇文章,发现可以使用OutputFormatClass 来实现这一点,但我们在两个包中都有这个类:

在我们的job对象中,我们可以将输出格式类设置为:

现在,如果SomeOutputFormat extendsorg.apache.hadoop.mapreduce.lib.output.FileOutputFormat,我们得到一个名为getRecordWriter();this 的方法,它对覆盖输出路径没有任何帮助。

还有另一种使用方法,但在设置类jobConf方面似乎又不起作用。mappers, reducers, partitions, sorting and grouping

有什么很明显的我想念的吗?我想将我的 reduce 输出文件写入一个基于值的文件夹中。例如,SomeOutputPrefix/Value1/Value2/realReduceFileName

谢谢!

0 投票
1 回答
254 浏览

hadoop - 使用 Java 类作为 Mapper 和 Python 脚本作为 Reducer

我正在尝试使用流媒体运行 hadoop。我有两个文件。一个是mapper的java文件,另一个是reducer的python脚本。

MerkleMapper.java

Class MerkleMapper extends MapREduceBase并定义map()功能。对于输入拆分的每条记录,它读取传入的key(byte_offset)value(line)对并输出行的byte_offset和散列。

Reducer 是一个 python 脚本,它结合了所有的散列并产生一个顶部散列。

是否可以将两者结合起来(java和python)。如何使用 Streaming 将我的 java 文件指定为映射器。

0 投票
2 回答
4269 浏览

hadoop - 如何在 Hadoop 中访问和操作 pdf 文件的数据?

我想使用hadoop阅读PDF文件,怎么可能?我只知道hadoop只能处理txt文件,所以无论如何都要将PDF文件解析为txt。

给我一些建议。

0 投票
4 回答
9071 浏览

python - 如何将参数传递给 python Hadoop 流作业?

对于 python Hadoop 流作业,如何将参数传递给例如 reducer 脚本,以便它根据传入的参数表现不同?

我了解流式作业以以下格式调用:

hadoop jar hadoop-streaming.jar -input -output -mapper mapper.py -reducer reducer.py ...

我想影响reducer.py。