Tag: mapreduce

hadoop mapreduce:java.lang.UnsatisfiedLinkError:org.apache.hadoop.util.NativeCodeLoader.buildSupportsSnappy()Z

我正在尝试从map-reduce作业中编写一个snappy块压缩序列文件。 我正在使用hadoop 2.0.0-cdh4.5.0和snappy-java 1.0.4.1 这是我的代码: package jinvestor.jhouse.mr; import java.io.ByteArrayOutputStream; import java.io.IOException; import java.io.OutputStream; import java.util.Arrays; import java.util.List; import jinvestor.jhouse.core.House; import jinvestor.jhouse.core.util.HouseAvroUtil; import jinvestor.jhouse.download.HBaseHouseDAO; import org.apache.commons.io.IOUtils; import org.apache.hadoop.conf.Configuration; import org.apache.hadoop.fs.FileSystem; import org.apache.hadoop.fs.LocatedFileStatus; import org.apache.hadoop.fs.Path; import org.apache.hadoop.fs.RemoteIterator; import org.apache.hadoop.hbase.client.Result; import org.apache.hadoop.hbase.client.Scan; import org.apache.hadoop.hbase.io.ImmutableBytesWritable; import org.apache.hadoop.hbase.mapreduce.TableMapReduceUtil; import org.apache.hadoop.hbase.mapreduce.TableMapper; import org.apache.hadoop.hbase.util.Bytes; import org.apache.hadoop.io.LongWritable; import org.apache.hadoop.io.SequenceFile; import org.apache.hadoop.io.compress.CompressionCodec; import org.apache.hadoop.io.compress.SnappyCodec; […]

如何以csv格式输出hadoop结果

我需要以.csv格式输出我的hadoop结果。 我该怎么做? 我的代码: https : //github.com/studhadoop/xml/blob/master/XmlParser11.java 我应该在我的代码中简单地包含csvoutputFormat。 我正在使用mapreduce API myjob.sh bin/hadoop jar /var/root/ALA/ala_jar/clsperformance.jar ala.clsperf.ClsPerf /user/root/ala_xmlrpt/Amrita\ Vidyalayam\,\ Karwar_Class\ 1\ B_ENG.xml /user/root/ala_xmlrpt-outputshell4 bin/hadoop fs -get /user/root/ala_xmlrpt-outputshell4/part-r-00000 /Users/jobsubmit cat /Users/jobsubmit/part-r-00000 /Users/jobsubmit/output.csv 解 我失踪了>在猫 cat /Users/jobsubmit/part-r-00000> /Users/jobsubmit/output.csv

使用Hadoop处理大量小文件

我正在使用Hadoop示例程序WordCount来处理大量的小文件/网页(cca.2-3 kB)。 由于这远离hadoop文件的最佳文件大小,因此程序非常慢。 我想这是因为设置和撕毁工作的成本远远高于工作本身。 这些小文件也会导致文件名的命名空间耗尽。 我读到在这种情况下我应该使用HDFS存档(HAR),但我不确定如何修改此程序WordCount以从此存档中读取。 程序可以继续工作而无需修改或需要进行一些修改吗? 即使我在档案中打包了很多文件,问题仍然存在,这是否会提高性能。 我读到即使我打包多个文件,一个存档中的这些文件也不会由一个映射器处理,但很多,在我的情况下(我猜)不会提高性能。 如果这个问题太简单,请理解我是Hadoop的新手并且对它的经验很少。

将参数传递给Hadoop中的map函数

我是Hadoop的新手。 我想从mapper类的map函数中的main函数(Java程序)访问命令行参数。 请建议如何做到这一点。

从map中键入不匹配的值:expected org.apache.hadoop.io.NullWritable,recieved org.apache.hadoop.io.Text

我正在尝试调整现有问题以满足我的需求.. 基本上输入是简单的文本我处理它并将键/值对传递给reducer我创建一个json ..所以有键但没有值所以mapper: 输入:文字/文字 输出:文本/文本 减速器:文本/文本 输出:文本/无 我的签名如下: public class AdvanceCounter { /** * The map class of WordCount. */ public static class TokenCounterMapper extends Mapper { // <— See this signature public void map(Object key, Text value, Context context) // <— See this signature throws IOException, InterruptedException { context.write(key,value); //both are of type text […]

不推荐使用MapReduceBase和Mapper

public static class Map extends MapReduceBase implements Mapper 在Hadoop 0.20.203中不推荐使用MapReduceBase , Mapper和JobConf 。 我们现在应该用什么? 编辑1 – 对于Mapper和MapReduceBase ,我发现我们只需要扩展Mapper public static class Map extends Mapper { private final static IntWritable one = new IntWritable(1); private Text word = new Text(); public void map(LongWritable key, Text value, OutputCollector output, Reporter reporter) throws IOException { String line = […]

不使用JobConf运行Hadoop作业

我找不到提交不使用已弃用的JobConf类的Hadoop作业的单个示例。 JobClient ,尚未弃用,仍然只支持采用JobConf参数的方法。 有人可以指出我只使用Configuration类(而不是JobConf )并使用mapreduce.lib.input包而不是mapred.input提交Hadoop map / reduce作业的Java代码示例吗?

Mapreduce组合器

我有一个简单的mapreduce代码,包括mapper,reducer和combiner。 mapper的输出传递给组合器。 但是对于reducer而言,不是来自组合器的输出,而是传递mapper的输出。 请帮助 码: package Combiner; import java.io.IOException; import org.apache.hadoop.conf.Configuration; import org.apache.hadoop.fs.Path; import org.apache.hadoop.io.DoubleWritable; import org.apache.hadoop.io.LongWritable; import org.apache.hadoop.io.Text; import org.apache.hadoop.mapreduce.Job; import org.apache.hadoop.mapreduce.Mapper; import org.apache.hadoop.mapreduce.Reducer; import org.apache.hadoop.mapreduce.Mapper.Context; import org.apache.hadoop.mapreduce.lib.input.FileInputFormat; import org.apache.hadoop.mapreduce.lib.output.FileOutputFormat; import org.apache.hadoop.util.GenericOptionsParser; public class AverageSalary { public static class Map extends Mapper { public void map(LongWritable key, Text value, Context context) throws IOException, InterruptedException […]

Oozie> Java动作>为什么属性oozie.launcher.mapred.child.java.opts不起作用

我正在使用Java动作在Oozie上工作。 Java操作应该使用Java选项-Xmx15g。 因此,我将属性oozie.mapreduce.map.memory.mb设置为25600(25G),以防需要额外的内存。 在这个简单的设置之后,我运行了Oozie作业,然后在Java运行时期间出现了OutofMemory(堆空间不足)错误。 因此,我根据链接在Java操作的属性节点中将oozie.launcher.mapred.child.java.opts设置为-Xmx15g: http ://downright-amazed.blogspot.fi/2012/02/configure-oozies -launcher-job.html 。 但我仍然得到相同的OutofMemory错误。 然后我尝试将-Xmx15g添加到Java操作节点内的节点java-opts。 这工作得很好,但如果是这样,地狱还有属性oozie.launcher.mapred.child.java.opts? 任何人都知道为什么会这样? 请给出一些评论为何如此。 提前致谢。 我真的觉得Oozie不是一个方便的工具。

如何在Hadoop MapReduce中将Object设置为Map输出的值?

在Hadoop MapReduce中,对于中间输出(由map()生成),我希望中间输出的值是以下对象。 MyObject{ date:Date balance:Double } 我该怎么做 我应该创建自己的可写类吗? 我是MapReduce的新手。 谢谢。