草庐IT

MAPREDUCE

全部标签

hadoop - 并发执行mapreduce引发Classcastexception

我正在使用hadoop-core-1.2.0。我正在尝试执行8个并发map-reduce作业。ExecutonService用于提交作业。但是当程序运行时,它给出了以下异常java.lang.Exception:java.lang.ClassCastException:org.apache.hadoop.mapreduce.lib.input.FileSplitcannotbecasttoorg.apache.hadoop.mapred.InputSplitatorg.apache.hadoop.mapred.LocalJobRunner$Job.run(LocalJobRunner.

java - 在 mapreduce 中从 HDFS 读取大图像

HDFS(block大小64MB)中有一个非常大的图像(~200MB)。我想知道以下内容:如何在mapReduce作业中读取图像?许多主题建议使用WholeInputFormat。还有其他选择吗?如何做?当使用WholeInputFormat时,是否会有任何block的并行处理?我猜不是。 最佳答案 如果您的block大小为64MB,HDFS很可能会将您的图像文件分成多个block并在整个集群中复制,具体取决于您的集群配置。假设您希望将图像文件作为1条记录而不是多个block/逐行处理,这里有几个我可以想到的选项来处理整个图像文件。

hadoop - 当多个查询需要从数据节点访问相同的数据时会发生什么?

当我们同时触发多个查询并且2个查询需要访问相同的数据时。MapReduce中发生了什么?假设一个节点中只有1个数据副本,并且2个查询需要从同一数据节点访问数据。发生什么了?其中一个查询是在队列中等待还是同时处理? 最佳答案 查询会被同时处理,当一个队列到来时,会启动一个新的线程来处理,可以看源码here. 关于hadoop-当多个查询需要从数据节点访问相同的数据时会发生什么?,我们在StackOverflow上找到一个类似的问题: https://stacko

hadoop - 如何使用 PIG 在 Hadoop 中给定阈值进行连接

假设我有一个具有以下架构的数据集:ItemName(String),Length(long)我需要根据长度找到重复项。这在PIG中很容易做到:raw_data=LOAD...datasetgrouped=GROUPraw_databylengthitems=FOREACHgroupedGENERATECOUNT(raw_data)ascount,raw_data.name;dups=FILTERitemsBYcount>1;STOREdups....上面找到了完全相同的重复项。给定以下设置:一、100二、105三、100它会输出2,(a,c)现在我需要使用阈值查找重复项。例如,如果项目

java - Hadoop:mapred.LocalJobRunner:MissingResourceException

我正在尝试使用自定义记录阅读器、映射器和缩减器设置一个简单的mapReduce应用程序。直到(包括)映射器它似乎工作(调用context.write时我在控制台上写出键值对以进行测试)。然后我收到消息"14/03/0414:25:43INFOmapred.JobClient:map100%reduce0%".但在那之后我每3秒进入一个无限循环"14/03/0414:25:45INFOmapred.LocalJobRunner:"没有详细消息或其他任何内容。在我的IDE中启用记录所有异常时,在上面的每条消息之后我都会收到以下异常:Exception'java.util.MissingRe

java - 在 Hadoop map-reduce 中对连接的数据进行分组

我有两种不同类型的文件,一种是用户列表。它具有以下结构:用户ID、姓名、国家/地区ID第二种是订单列表:OrderID,UserID,OrderSum每个用户都有很多订单。我需要编写map-reducehadoop作业(在java中)并接收具有以下结构的输出:CountryID,NumOfUsers,MinOrder,MaxOrder编写两个不同的映射器(针对每种文件类型)和一个缩减器以便通过UserID连接来自两个文件的数据并接收以下结构对我来说不是问题:UserID,CountryID,UsersMinOrder,UsersMaxOrder但我不明白如何按CountryID对数据进

java - 减少侧连接中的布隆过滤器

我目前正在探索布隆过滤器。我浏览了大部分关于bloomfitters的博客,知道什么是bloomfitlers,但仍然无法找出关于incasejoins的示例。每篇文章都说它会减少网络I/O,但没有一篇文章说明如何?特别好http://vanjakom.wordpress.com/tag/distributed-cache/但它看起来和我刚开始使用mapreduce一样复杂。谁能帮我在下面的例子中实现布隆过滤器(reducesidejoin)2个mapers读取用户记录和部门记录和reducer加入用户记录身份证、姓名3738,里奇·戈尔12946,罗尼山姆17556,大卫·加特344

hadoop - Hadoop 中的主从

我知道Hadoop将工作划分为独立的block。但是想象一下,如果一个mapper在其他mapper之前完成了它的任务,主程序是否可以给这个mapper一个已经关联到另一个mapper的工作(即一些任务)?如果是,怎么办? 最佳答案 阅读推测执行YahooTutorial-OneproblemwiththeHadoopsystemisthatbydividingthetasksacrossmanynodes,itispossibleforafewslownodestorate-limittherestoftheprogram.For

hadoop - 从 Hadoop 子目录处理数据文件

我希望我的hadoop作业从子目录的叶节点获取数据。因此,数据将始终仅存在于具有.dat扩展名的叶节点中。说明子目录结构:说a->b->1.dat,a->c->2.dat我尝试在HDFS上执行fs-put"a"目录,然后将"a"指定为hadoop作业的输入,但它失败了。然而,如果dat文件在“a”内,上述方法工作正常。任何可能的解决方案? 最佳答案 使用多输入格式,我们可以读取两个不同格式的文件,并将两者合并的结果发送给reducer作业。请查看以下链接。https://github.com/subbu-m/MultipleInpu

hadoop - 通过 hadoop mapreduce 限制处理记录的数量

我有一个hugh文件(包含超过200亿条记录的hive表)我需要运行一个mapreduce来处理前10k条记录。有没有一种有效的方法来限制hadoopmapreduce处理记录的数量? 最佳答案 您可以将LIMIT与任务规范一起使用。但是,如果您必须一次又一次地执行此操作,那么更好的自动化解决方案是使用OOZIE(hadoop工作流编辑器),它可以在配置单元中为您的数据创建分区。 关于hadoop-通过hadoopmapreduce限制处理记录的数量,我们在StackOverflow上找