草庐IT

elastic-mapreduce-cli

全部标签

java - MapReduce中是否可以在同一个键下输出多个值?

如果我正在运行一个MapReduce作业,我可以拥有:context.write(key,value1)context.write(key,value2)context.write(key,value3)....在我的mapper函数中?这会像Java中的Map类一样并覆盖预先存在的值吗? 最佳答案 是的,同一个键可以有多个值。MapReduce中的map函数不像Java中的Map结构。但是,如果这个类比对您来说更容易的话,您可以将其视为Multimap或哈希表:您可以将多个值放入同一个桶中。请参阅以下WordCount程序中的示例

在 MapReduce 中从自己的函数创建 Avro 对象时出现 java.lang.IllegalAccessError

我有一个HadoopMapReduce程序,它在Map阶段的自创建函数中使用Avro存储数据,然后再将其发送到reduce阶段。当我运行该函数时,出现此错误:Causedby:java.lang.IllegalAccessError:triedtoaccessmethodorg.apache.avro.specific.SpecificData.()Vfromclasscom.example.myapp.avro.PointListPointList数据类型有int,但它没有double的问题。您知道是什么原因造成的吗? 最佳答案

hadoop - 如何从配置单元 cli 运行配置单元脚本

我现在有配置单元脚本custsales.hql,我想从配置单元cli运行它hive(pract5)>run/user/training/hdfs_location/custsales.hql但它不执行。请指导。我知道我们可以从命令行运行它$hive-f/home/training/local_location/custsales.hql但这不是我的要求。 最佳答案 使用sourcepath/to/script命令。 关于hadoop-如何从配置单元cli运行配置单元脚本,我们在Stack

java - Mapreduce - 保留输入顺序

具有由管道分隔的数字列表的文件,可以有重复项。需要编写mapreduce程序来列出原始输入顺序中没有重复的数字。能够删除重复项,但不保留输入顺序。 最佳答案 很简单,假设你的文字是:Line1->OnthetopoftheCrumpettyTreeLine2->TheQuangleWanglesat,Line3->Buthisfaceyoucouldnotsee,Line4->OnaccountofhisBeaverHat.Line5->Buthisfaceyoucouldnotsee,Line6->TheQuangleWangle

lucene - 我从哪里开始学习 Lucene.NET Solr Hadoop 和 MapReduce?

我是一名.NET开发人员,我需要学习Lucene,这样我们才能运行非常大规模的搜索服务,删除最终用户无权访问的条目。(即用户可以搜索所有权限级别为3或更高的文件,但不能搜索权限级别为2或1的文件)我应该从哪里开始学习,应该考虑哪些产品?老实说,我有点不知所措,但我下定决心要弄清楚这一切……最终。 最佳答案 如果您想要一本涵盖所有Lucene基础知识的书,请考虑“LuceneinAction”。即使代码示例是Java,您也可以轻松地将它们移植到.NET。当然,Web上也有大量资源,例如SO和Lucene邮件列表,它们应该可以帮助您。对

hadoop - 直接指定 Hadoop mapreduce 输入键(不是从文件)

我想使用mapreduce生成一些数据。我想用一个参数N调用作业,并用从1到N的每个整数调用一次Map。显然我想要一个Mapper>...这很简单。但我不知道如何生成输入数据!有没有InputFormat我没有看到可以让我直接从集合中提取键+值的地方? 最佳答案 是否希望每个映射器处理从1到N的所有整数?或者您想在并发运行的映射器之间分配整数1到N的处理?如果是前者,我相信您需要创建自定义InputFormat。如果是后者,最简单的方法可能是生成一个包含1到N整数的文本文件,每个整数占一行,然后使用LineInputFormat。

performance - 平衡 HDFS -> HBase mapreduce 作业的想法

对于客户,我一直在研究在AWSEC2上运行Cloudera风格的hadoop集群的短期可行性。在大多数情况下,结果是预期的,逻辑卷的性能大多不可靠,也就是说尽我所能让集群在这种情况下运行得相当好。昨晚我对他们的导入程序脚本进行了全面测试,以从指定的HDFS路径中提取数据并将其推送到Hbase。他们的数据有些不同寻常,因为记录小于1KB,并且被压缩到9MB的gzipblock中。总共有大约50万条文本记录从gzip中提取出来,经过完整性检查,然后推送到reducer阶段。作业在环境的预期范围内运行(溢出记录的数量是我预料到的)但是一个非常奇怪的问题是当作业运行时,它使用8个reducer

graph - 将多个顺序 HBase 查询的结果传递给 Mapreduce 作业

我有一个HBase数据库,它存储有向图的邻接表,每个方向的边存储在一对列族中,其中每一行表示一个顶点。我正在编写一个mapreduce作业,它将所有节点作为其输入,这些节点也具有从相同顶点指向的边,因为具有指向其他顶点(指定为查询的主题)的边。这有点难以解释,但在下图中,当查询顶点“A”时,作为输入的节点集将是{A,B,C},因为它们都具有来自顶点的边'1':为了在HBase中执行此查询,我首先在产生{1}的反向边列族中查找边为“A”的顶点,然后,对于该集合中的每个元素,从该元素中查找边为“A”的顶点该集合的前向边缘列族。这应该会产生一组键值对:{1:{A,B,C}}。现在,我想获取这

hadoop - MapReduce 程序的输入文件是强制性的吗?

我正在处理一个用例,在该用例中,我使用mapreduce程序生成随机数据,并且不需要HDFS中的任何输入文件。如果我不提供输入路径,MR程序将无法运行。所以,目前我有一个虚拟输入文件。有什么办法可以避免这种情况吗? 最佳答案 通常MR程序有一些数据需要处理。但是,可能存在像随机生成这样的场景,其中没有要处理的数据。查看TeraGen用于随机数生成的程序,它将行数和输出目录作为输入。另外,我还没有尝试过DataGenerator,但看起来很有趣。 关于hadoop-MapReduce程序的

hadoop - 在 AWS Elastic Map Reduce 中禁用 Gzip 输入解压缩

我正在Gzipped.arc文件上运行MapReduce任务。类似于此question,我遇到了困难,因为Gzip解压缩是自动运行的(因为文件有.gz扩展名),但它导致换行符/回车符按照Unix文件编码被渲染为换行符的问题。这使得输入完全不可读,因为它取决于文件中嵌入的特定字符数。我正在尝试禁用Gzip解压缩,以便我可以在我的映射器中正确地执行它。我试过:-jobconfstream.recordreader.compression=none但这似乎并不影响压缩。有什么方法可以防止对我的输入进行Gzip解压缩?谢谢,-Geoff 最佳答案