Tag: mapreduce

错误的值类:类org.apache.hadoop.io.Text不是类org.apache.hadoop.io.IntWritable

我使用了一个mapper,一个reducer和一个combiner类,但是我得到的错误如下: java.io.IOException: wrong value class: class org.apache.hadoop.io.Text is not class org.apache.hadoop.io.IntWritable at org.apache.hadoop.mapred.IFile$Writer.append(IFile.java:199) at org.apache.hadoop.mapred.Task$CombineOutputCollector.collect(Task.java:1307) at org.apache.hadoop.mapred.Task$NewCombinerRunner$OutputConverter.write(Task.java:1623) at org.apache.hadoop.mapreduce.task.TaskInputOutputContextImpl.write(TaskInputOutputContextImpl.java:89) at org.apache.hadoop.mapreduce.lib.reduce.WrappedReducer$Context.write(WrappedReducer.java:105) at BookPublished1$Combine.reduce(BookPublished1.java:47) at BookPublished1$Combine.reduce(BookPublished1.java:1) at org.apache.hadoop.mapreduce.Reducer.run(Reducer.java:171) at org.apache.hadoop.mapred.Task$NewCombinerRunner.combine(Task.java:1644) at org.apache.hadoop.mapred.MapTask$MapOutputBuffer.sortAndSpill(MapTask.java:1618) at org.apache.hadoop.mapred.MapTask$MapOutputBuffer.flush(MapTask.java:1467) at org.apache.hadoop.mapred.MapTask$NewOutputCollector.close(MapTask.java:699) at org.apache.hadoop.mapred.MapTask.runNewMapper(MapTask.java:769) at org.apache.hadoop.mapred.MapTask.run(MapTask.java:339) at org.apache.hadoop.mapred.YarnChild$2.run(YarnChild.java:162) at java.security.AccessController.doPrivileged(Native Method) at javax.security.auth.Subject.doAs(Subject.java:415) at org.apache.hadoop.security.UserGroupInformation.doAs(UserGroupInformation.java:1491) at org.apache.hadoop.mapred.YarnChild.main(YarnChild.java:157) 我的整个程序如下所示: import java.io.IOException; import org.apache.hadoop.io.FloatWritable; […]

我如何学习使用Java commons-collections?

我知道,奇怪的标题让我解释一下。 我是最熟悉C#和Javascript的开发人员。 我完全沉浸在那些半function的世界中,以至于我的大多数代码都是关于映射/缩减/过滤集合。 在C#中,这意味着我几乎无处不在地使用LINQ,在Javascript中它是Underscore.js和jQuery。 我目前被分配到一个正在进行的Java项目,我感到相当窒息。 我根本就没有想到“创建一个数组,从一个到另一个地方改变东西”。 我可以(并且确实)使用实现接口的匿名类型创建我自己的主map / reduce函数版本,但为什么要重新发明轮子? 我目前正在进行的项目已经有了commons-collections-3.1.jar,并且查看了包含它的类似乎可能可以完成我想要的所有内容。 对于我的生活,我找不到如何实际使用它。 浏览其中的几十个课程并不是很有帮助,我唯一可以学习的是api doc ,它同样有用。 你如何使用它来映射/选择,过滤/在哪里,减少/聚合? 有没有在这个库上提供实际教程的地方?

使用java 5的0.20.2 API hadoop版本

我已经开始尝试在java 1.5.0_14中实现MapReduce算法的maven项目。 我选择了0.20.2 API hadoop版本。 在pom.xml中,我正在使用以下依赖项: org.apache.hadoop hadoop-core 0.20.2 但是当我使用导入到org.apache.hadoop类时,我收到以下错误: 坏类文件:$ {HOME_DIR} \ repository \ org \ apache \ hadoop \ hadoop-core \ 0.20.2 \ hadoop-core-0.20.2.jar(org / apache / hadoop / fs / Path.class)类文件有错误的版本50.0,应该是49.0 。 有人知道我该如何解决这个问题。 谢谢。

无法在hadoop 2.4.0上运行MapReduce作业

我是hadoop的新手,这是我的问题。 我在3台机器的集群上配置了带有jdk1.7.60的hadoop 2.4.0。 我能够执行hadoop的所有命令。 现在我修改了wordcount示例并创建了jar文件。 我已经在hadoop 1.2.1上使用这个jar文件执行并得到了结果。 但是现在在hadoop 2.4.0上我没有得到任何结果。 用于执行的命令 $hadoop jar WordCount.jar WordCount /data/webdocs.dat /output 我从设置中得到以下消息: 14/06/29 19:35:18 INFO client.RMProxy: Connecting to ResourceManager at /192.168.2.140:8040 14/06/29 19:35:18 WARN mapreduce.JobSubmitter: Hadoop command-line option parsing not performed. Implement the Tool interface and execute your application with ToolRunner to remedy this. 14/06/29 19:35:19 INFO input.FileInputFormat: Total input […]

为什么YARN java堆空间内存错误?

我想尝试在YARN中设置内存,所以我将尝试在yarn-site.xml和mapred-site.xml上配置一些参数。 顺便说一句,我使用hadoop 2.6.0。 但是,当我做mapreduce工作时,我收到一个错误。 它像这样说: 15/03/12 10:57:23 INFO mapreduce.Job: Task Id : attempt_1426132548565_0001_m_000002_0, Status : FAILED Error: Java heap space Container killed by the ApplicationMaster. Container killed on request. Exit code is 143 Container exited with a non-zero exit code 143 我认为我已经正确配置了,我给map.java.opts和reduce.java.opts小尺寸= 64 MB。 我尝试配置一些参数,比如在mapred-site.xml上更改map.java.opts和reduce.java.opts,我仍然会收到此错误。 我认为我并不真正理解YARN记忆是如何工作的。 顺便说一句,我尝试单节点计算机。

如何访问Cassandra节点的本地数据

从我对Cassandra的了解不多,似乎数据局部性对于访问节点的客户端应用程序来说应该是透明的。 但是,如果我明确只想访问我所连接的节点本地的列族数据,该怎么办? 这样的事情可能吗? 我还没有找到一种从客户端API开箱即用的方法,但似乎我可以通过系统表获取一些这些信息,但我无法弄清楚如何做到这一点。 这个想法是执行mapreduce,但不使用Hadoop。 本地客户端将连接到其本地cassandra节点,对本地数据执行聚合,然后将其传递回上游。 这样的事情有可能吗? 从它的外观来看,似乎有可能因为我已经看到Hadoop能够使用Cassandra的证据,但这些例子似乎是针对Hadoop而不是通用客户端。 本地客户端(与Casandra交谈)将使用Java。 我目前正在使用Hector,但我不确定它是否会提供任何数据位置信息。

可以迭代的ArrayList元素发生变化

所以我正在实现mapreduce工作,这意味着我正在处理键值对。 我有变量 Iterable values FreqDataWritable是一个包含信息片段的对象,但是现在我只关心它所拥有的一条信息,它是一个由getFilename()访问的String。 我有以下循环: ArrayList filenames = new ArrayList(); for(FreqDataWritable i : values) { filenames.add(i.getFilename()); } 现在,我想要做的就是在数组列表文件名中打印值。 for(int i = 0; i < filenames.size(); i++) { System.out.println(filenames.get(i)); } 但是,当我这样做时,文件名中的所有内容都是相同的。 唯一打印出的是多次打印的单个文件名。 我的原始代码比这更复杂,但我简化了它的帮助。 有人知道怎么修这个东西吗? 谢谢

如何使用Reactor framework 2.x执行multithreading映射/减少?

我之前曾向Reactor 1.x提出这个问题 : 假设我有一个Collection 。 我要: 将每个Map实例同时转换为Foo类型的对象(每个实例完全独立于另一个实例 – 不需要串行/迭代地转换每个实例)。 当所有这些都被转换时,我想要一个方法onReduce(Collection foos)被调用 – 该参数包含所有生成的Foo实例。 但我们似乎无法找到Reactor 2.x的等效解决方案 – 只需单线程。 你如何在Reactor 2.x中执行multithreadingmap / reduce? 例如,如何使用基于ExecutorService的Dispatcher执行此操作?

保存Hadoop中的Mapper输出的位置?

我有兴趣有效地管理Hadoop混洗流量并有效利用网络带宽。 为此,我想知道每个Datanode产生的混乱流量是多少? 洗牌流量只不过是映射器的输出。 那么这个映射器输出保存在哪里? 如何实时获取每个数据节点的映射器输出大小? 感谢您的帮助。 我已经创建了一个目录来存储这个mapper输出,如下所示。 mapred.local.dir /app/hadoop/tmp/myoutput 我看着 hduser@dn4:/app/hadoop/tmp/myoutput$ ls -lrt total 16 drwxr-xr-x 2 hduser hadoop 4096 Dec 12 10:50 tt_log_tmp drwx—— 3 hduser hadoop 4096 Dec 12 10:53 ttprivate drwxr-xr-x 3 hduser hadoop 4096 Dec 12 10:53 taskTracker drwxr-xr-x 4 hduser hadoop 4096 Dec 12 13:25 userlogs 当我运行mapreduce工作时,我无法在这里找到任何东西。 谢谢

mapreduce组合键样本 – 不显示所需的输出

作为mapreduce和hadoop世界的新手,在尝试了基本的mapreduce程序后,我想尝试使用compositekey示例代码。 输入数据集如下: 国家,州,县,populationinmillions 美国,CA,阿拉米达,100 美国,CA,losangels,200 美国,CA,萨克拉曼多,100 美国,佛罗里达州,xxx,10 美国,佛罗里达州,YYY,12 期望的输出数据应如下所示: 美国,CA,500 美国,佛罗里达州,22 而是Country + State字段形成复合键。 我得到以下输出。 由于某种原因,人口没有增加。 有人能指出我正在做的错误。 另外请看一下实现WriteableComparable接口的Country.java类。 这个实现可能有问题。 美国,CA,100 美国,CA,200 美国,CA,100 美国,佛罗里达州,10 美国,佛罗里达州,12 每个国家+州都没有增加人口。 这是实现WritableComparable接口的Country类。 import java.io.DataInput; import java.io.DataOutput; import java.io.File; import java.io.IOException; import java.util.Iterator; import org.apache.commons.io.FileUtils; import org.apache.hadoop.conf.Configuration; import org.apache.hadoop.fs.Path; import org.apache.hadoop.io.IntWritable; import org.apache.hadoop.io.LongWritable; import org.apache.hadoop.io.Text; import org.apache.hadoop.io.WritableComparable; import org.apache.hadoop.mapreduce.Job; import org.apache.hadoop.mapreduce.Mapper; import […]