草庐IT

mapReduce

全部标签

hadoop - 如何增加 Mahout MatrixMultiplicationJob 中映射器的数量?

我正在使用Mahout0.7的MatrixMultiplicationJob来乘以一个大矩阵。但它总是使用1个maptask,这使得它变慢了。这可能是由于InputSplit强制映射器的数量为1。有没有一种方法可以在Hadoop/Mahout中有效地乘以矩阵或更改映射器的数量? 最佳答案 最终,Hadoop决定使用多少映射器。通常它会为每个HDFSblock(通常为64或128MB)使用一个映射器。如果您的数据小于该数据,则它太小而无法使用超过1个映射器。无论如何,您都可以通过将mapred.max.split.size设置为小于6

当文件格式为自定义格式时,Hadoop MultipleOutputs 不会写入多个文件

我正在尝试从cassandra中读取并使用MultipleOutputsapi(Hadoop版本1.0.3)将reducers输出写入多个输出文件。在我的案例中,文件格式是扩展FileOutputFormat的自定义输出格式。我已按照MultipleOutputsapi中所示的类似方式配置了我的作业.但是,当我运行作业时,我只得到一个名为part-r-0000的输出文件,它是文本输出格式。如果未设置job.setOutputFormatClass(),默认情况下它会将TextOutputFormat视为格式。此外,它只允许初始化两个格式类之一。它完全忽略了我在MulitpleOutpu

Hadoop 与 supercsv

我必须处理非常大的文本文件(例如5TB大小)中的数据。处理逻辑使用supercsv来解析数据并对其进行一些检查。显然由于规模很大,我们计划使用hadoop来利用并行计算。我在我的机器上安装了hadoop,然后开始编写mapper和reducer类,但我被卡住了。因为映射需要一个键值对,所以要读取这个文本文件,我不确定在这个特定场景中键和值应该是什么。谁能帮我解决这个问题。我的思维过程是这样的(如果我知道我是否正确,请告诉我)1)使用superCSV读取文件,hadoop为hdfs中的每个文件block生成supercsvbean。(我假设hadoop负责拆分文件)2)对于这些super

hadoop - 如何在 Hadoop 中定义共享(全局)变量?

我需要一个共享(全局)变量,它可以在所有映射器和缩减器之间访问。映射器只是从中读取值,而缩减器会更改一些值以在其中的下一次迭代中使用。我知道DistributedCache是一种做到这一点的技术,但它只支持读取共享值。 最佳答案 这正是ZooKeeper是为。ZooKeeper可以跟上来自映射器/缩减器的大量读取,并且仍然能够时不时地写一些东西。另一个选择是setvaluesintheconfigurationobject.但是,这仅针对单个作业在全局范围内持续存在。您必须自己管理此值在作业之间的传递。此外,您不能在作业运行时结束它

云计算 - 3 - 使用MapReduce处理数据

云计算-3-使用MapReduce处理数据目标1、使用Mapreduce实现对多个文本文件单词总数的统计(WordCount)。1.1启动Hadoop1.2在HDFS文件系统创建文件夹来作为单词统计的输入1.3将用来统计的文件上传到刚建立的文件夹中。1.4使用`hadoopjar`命令,调用jar包,对/input文件夹进行单词统计1.5查看输出结果,实现了对多文件的字词统计2、使用MapReduce实现社交网站好友的推荐。2.1问题分析2.2编写推荐代码2.3程序运行2.3.1首先将上面写的.scala文件编译2.3.2打包jar包2.3.3将jar包提交运行遇到的问题目标1.使用MapRe

java - 从另一个 Java 程序运行 Hadoop 作业

我正在编写一个程序来接收映射器/缩减器的源代码,动态编译映射器/缩减器并从中生成一个JAR文件。然后它必须在hadoop集群上运行这个JAR文件。对于最后一部分,我通过我的代码动态设置了所有必需的参数。但是,我现在面临的问题是代码在编译时需要编译的mapper和reducer类。但是在编译时,我没有这些类,它们稍后会在运行时接收(例如,通过从远程节点接收到的消息)。如果有任何关于如何解决此问题的想法/建议,我将不胜感激?在下面,您可以找到我最后一部分的代码,问题在于job.setMapperClass(Mapper_Class.class)和job.setReducerClass(Re

输出数百万个小型二进制/图像文件的 Hadoop 方法

我需要在Hadoop作业中处理和操作许多图像,输入将通过网络进行,使用MultiThreadedMapper下载速度较慢。但是减少输出的最佳方法是什么?我认为我应该将原始二进制图像数据写入一个序列文件,将这些文件传输到它们最终的位置,然后编写一个小应用程序将单个图像从SequenceFile中提取为单个JPG和GIF。或者有更好的选择可以考虑吗? 最佳答案 如果您愿意(或者通过一些Google搜索您可以找到一个实现),您可以编写一个FileOutputFormat,它用ZipOutputStream包装一个FSDataOutputS

java - MapReduce 作业的 Reducer 中的奇怪行为

以下是我在MapReduce作业中使用的Reducer函数的代码。它应该返回附加到每个值的迭代器+自定义字符串("*---")的值。但它会两次附加自定义字符串。例如如果值为abc那么而不是打印abc***---正在打印abc***---***---为什么会这样?代码:publicstaticclassReduceextendsMapReduceBaseimplementsReducer{publicvoidreduce(Textkey,Iteratorvalues,OutputCollectoroutput,Reporterreporter)throwsIOException{whil

使用hadoop连接同一目录中的两个文件

我完全是hadoopn00b。作为我的第一个hadoop项目,我正在尝试解决以下问题。我在亚马逊S3存储桶中有一百万多个子文件夹。这些文件夹中的每一个都有两个文件。文件1有如下数据:date,purchaseItem,purchaseAmount01/01/2012,Car,1200001/02/2012,Coffee,4....................File2包含以下格式的客户信息:ClientId:Id1ClientName:"SomeName"ClientAge:"SomeAge"在存储桶中的所有文件夹中重复相同的模式。在将所有这些数据写入HDFS之前,我想按如下方式加

hadoop - 线程 "main"org.apache.hadoop.mapred.InvalidJobConfException : Output directory not set 中的异常

嘿,你能帮我清除以下错误吗?当我运行Mapreduce作业fopr将数据从hdfs文件插入到hbase表中时,我得到了这个。使用HFileOutputFormat.class,之前我使用MultiTableOutputFormat.class运行相同的程序,它工作正常,但是在将数据插入hbase表时花费了很多时间。那么你能帮帮我吗……:)*job.setMapOutputKeyClass(ImmutableBytesWritable.class);job.setMapOutputValueClass(Put.class);job.setInputFormatClass(TextInpu