草庐IT

stream_writable

全部标签

hadoop + Writable 接口(interface) + readFields 在reducer 中抛出异常

我有一个简单的map-reduce程序,其中我的map和reduce基元看起来像这样map(K,V)=(文本,OutputAggregator)减少(文本,OutputAggregator)=(文本,文本)重要的一点是,从我的map函数中,我发出了一个OutputAggregator类型的对象,它是我自己的实现Writable接口(interface)的类。但是,我的reduce失败并出现以下异常。更具体地说,readFieds()函数抛出异常。任何线索为什么?我使用hadoop0.18.310/09/1904:04:59INFOjvm.JvmMetrics:InitializingJ

java - 使用 Java Apis 在 hadoop 中运行 Streaming 作业

我是hadoop的新手,正在学习流式作业。有人可以指导我如何通过Java代码运行StreamingJobs吗?提前致谢。 最佳答案 如果您想使用流式API运行Java代码,您可以直接将类名作为映射器和/或缩减器传递。像这样:$HADOOP_HOME/bin/hadoopjar$HADOOP_HOME/hadoop-streaming.jar\-inputmyInputDirs\-outputmyOutputDir\-mappercom.something.MyMapper\-reducercom.something.MyReduce

java - 如何在我的 Hadoop Mapper 中将 String 转换为 Writable 对象

几个小时以来,这是一个非常疯狂的问题。如有任何帮助,我们将不胜感激。我不能publicvoidmap(Objectkey,Textvalue,Contextcontext)throwsIOException,InterruptedException{if(!value.toString().equals("")){Gsongson=newGson();Booleanflag=true;System.out.println("000000000");while(flag){TexttweetId=newText();Tweettweet=gson.fromJson(value.toStr

使用 Java Mapper/Reducer 的 Hadoop Streaming

我正在尝试使用javaMapper/Reducer在一些维基百科转储(压缩的bz2形式)上运行hadoop流作业。我正在尝试使用WikiHadoop,这是维基媒体最近发布的一个界面。WikiReader_Mapper.javapackagecourseproj.example;//Mapper:emits(token,1)foreveryarticleoccurrence.publicclassWikiReader_MapperextendsMapReduceBaseimplementsMapper{//Reuseobjectstosaveoverheadofobjectcreatio

serialization - 如何将 Kryo 设置为 Writable 的替代品作为 HDFS/Hadoop 中的序列化框架

如何将Kryo设置为我的序列化框架来代替Writable?子问题:如何设置要序列化/反序列化的对象,就像我们对Writable所做的那样? 最佳答案 将io.serializations属性设置为逗号分隔的类名列表以注册序列化实现。它的默认值是org.apache.hadoop.io.serializer.WritableSerialization,这意味着只有Writable对象可以开箱即用地序列化或反序列化。引用-http://my.safaribooksonline.com/book/databases/hadoop/9780

java - 是否可以使用 Hadoop Streaming 处理多行记录?

我有这样的记录:Name:AlanKayEmail:Alan.Kay@url.comDate:09-09-2013Name:MarvinMinskyEmail:Marvin.Minsky@url.comCity:Boston,MADate:09-10-2013Name:AlanTuringCity:NewYorkCity,NYDate:09-10-2013它们是多行的,但行数并不总是相同,并且它们通常由换行符分隔。我如何将其转换为下面的输出?AlanKay|Alan.Kay@url.com||09-09-2013MarvinMinsky|Marvin.Minsky@url.com|Bo

python - 无法执行基于 Python 的 Hadoop Streaming 作业

我有一个5节点的hadoop集群,我可以在其上成功执行以下流作业sudo-uhdfshadoopjar/usr/lib/hadoop-0.20-mapreduce/contrib/streaming/hadoop-streaming.jar-input/sample/apat63_99.txt-output/foo1-mapper'wc-l'-numReduceTasks0但是当我尝试使用python执行流作业时sudo-uhdfshadoopjar/usr/lib/hadoop-0.20-mapreduce/contrib/streaming/hadoop-streaming.jar

hadoop - 在 hadoop streaming mapreduce 中使用组合器(使用 mrjob)

当我学习mapreduce时,其中一个关键组件是组合器。它是映射器和缩减器之间的一个步骤,本质上是在映射阶段结束时运行缩减器,以减少映射器输出的数据行数。随着我需要处理的数据量的增加(数TB规模),reduce步骤变得异常缓慢。我和我的一个friend谈过,他说这也是他的经验,他没有使用组合器,而是使用散列函数对其reduce键进行分区,该函数减少了reduce步骤中每个键的值数量.我试过了,它奏效了。有没有其他人有过组合器步骤不能很好地扩展的经验,为什么我找不到这个问题的任何文档以及解决方法?如果有办法使组合器步进缩放,我宁愿不使用解决方法。[编辑]这是我friend建议的解决方法的

hadoop cp vs streaming with/bin/cat 作为 mapper 和 reducer

我是Hadoop的新手,如果/bin/cat用于mapper和reducer,我有一个关于hadoop复制(cp)与hadoop流的非常基本的问题。hadoop-输入-输出-mapper/bin/cat-reducer/bin/cat我相信上面的命令会复制文件(它与hadoopcp有什么不同?)或者如果我的理解有误请纠正我。 最佳答案 他们做同样的事情,但方式不同:hadoopcp将只调用JAVAHDFSAPI并将副本执行到另一个指定位置,这比流解决方案快得多。另一方面,hadoopstreaming(请参阅下面的示例命令)将启动m

java - streaming jar 找不到 HDFS 中的 Mapper 文件

我目前正在尝试让本地版本的Hadoop运行,但我有点卡住了。我使用以下教程进行设置:http://glebche.appspot.com/static/hadoop-ecosystem/hadoop-hive-tutorial.html现在,我想使用本教程执行一个简单的Mapreduce:http://www.michael-noll.com/tutorials/writing-an-hadoop-mapreduce-program-in-python/但是,我似乎对HDFS有一些问题,因为当我想运行以下命令时::libexecme$hadoopjar./share/hadoop/to