草庐IT

MAPREDUCE

全部标签

hadoop - 无法使用 Pig FOREACH 显示数据

我在txt文件中有这个smaple数据集(格式:名字,姓氏,年龄,性别):(Eric,Ack,27,M)(Jenny,Dicken,27,F)(Angs,Dicken,28,M)(Mahima,Mohanty,29,F)我想显示年龄大于27岁的员工的age和firstname。在进行了相当多的操作并寻找一些指示后,我被卡住了:我正在使用以下方式加载此数据集:tuple_record=LOAD'~/Documents/Pig_Tuple.txt'AS(details:tuple(firstname:chararray,lastname:chararray,age:int,sex:char

java - Hadoop Mapreduce 字数统计

从EclipseKepler运行HadoopMapReduceWordCount程序与使用位于Mapreduce(hadoop-mapreduce-example-2.6.0.jar)中的预定义jar文件运行它有什么区别。在速度、性能等方面有什么区别吗? 最佳答案 没有区别。只是当你的输入很大并且你有mapper/reducer在多个节点上运行时,你会看到显着的性能提升,因为现在字数统计将在不同的机器上并行完成。 关于java-HadoopMapreduce字数统计,我们在StackOv

java - 为什么我们需要在 MapReduce 作业中显式设置 OutputKey/InputKey 类?

当Map和Reduce类必须尊重地扩展Mapper和Reducer类时,为什么我们需要在MapReduce作业中显式设置OutputKey/InputKey类,这需要添加?一个例子:工作session:job.setOutputKeyClass(NullWritable.class);job.setOutputValueClass(Text.class);job.setOutputFormatClass(TextOutputFormat.class);reducer:publicstaticclassComputeReducerextendsReducer{如果我们已经显式设置redu

python - MapReduce 作业(用 python 编写)在 EMR 上运行缓慢

我正在尝试使用python的MRJob包编写MapReduce作业。该作业处理存储在S3中的约36,000个文件。每个文件大约2MB。当我在本地运行作业(将S3存储桶下载到我的计算机)时,运行大约需要1小时。但是,当我尝试在EMR上运行它时,它需要更长的时间(我在8小时时停止了它,它在映射器中完成了10%)。我在下面附上了我的mapper_init和mapper的代码。有谁知道什么会导致这样的问题?有谁知道如何修理它?我还应该注意,当我将输入限制为100个文件的样本时,它工作正常。defmapper_init(self):"""Setclassvariablesthatwillbeus

hadoop - 作为 Map only 作业执行的 Hive 查询

最近遇到一个问题WillallHivequeriesbeconvertedintomapandreducejobs?我知道Hive查询被转换为一系列MapReduce作业。我不是在谈论在Hive中调用外部脚本。是否存在不需要reduce作业且Hive可以通过Map作业本身获得结果的情况。你有什么想法? 最佳答案 是的。这仅取决于您正在运行的作业类型。例如,如果您有一个具有架构(姓名、ID、部门)的员工表。以下查询运行仅map作业。Mapper从配置单元表中接收(Name,id,department)作为值,并发出Name和Nullw

java - 不考虑 Mapper 和 Reducer 接口(interface)

这是我的映射函数标题行publicstaticclassPageMapperextendsMapper这是我的Reducer函数头publicstaticclassPageReducerextendsReducer`编译代码时PageRank.java:30:error:nointerfaceexpectedhereextendsMapperPageRank.java:61:error:nointerfaceexpectedherepublicstaticclassPageReducerextendsReducer这里为什么不接受Mapper和Reducer。谁能帮忙吗

SQL 按 map-reduce 中的等价物分组

我运行的大多数查询都采用这种格式:SELECTCOUNT(*),A.a1FROMAWHEREA.a2='x'GROUPBYA.a1A表是一个包含csv文件的hdfs文件夹。因为hive慢得离谱,我如何在map-reduce中实现这个查询?谢谢 最佳答案 您的SQL查询可以映射到MapReduce的HelloWorld等效项:WordCount。我怀疑自定义实现是否可以比Hive(编译为MapReduce)快得多,但这是如何做到的:TextInputFormat->(pos,line)(pos,line)->Mapper:解析/标记行

hadoop - 如何在分布式缓存中使用 MapReduce 输出

假设我有一个MapReduce作业,它正在创建一个输出文件part-00000,并且在该作业完成后还有一个作业正在运行。如何将分布式缓存中第一个作业的输出文件用于第二个作业。 最佳答案 以下步骤可能对您有所帮助,将第一个作业的输出目录路径传递给第二个作业的驱动程序类。使用路径过滤器列出以part-*开头的文件。请引用以下代码片段,了解您的第二份工作驱动程序类,FileSystemfs=FileSystem.get(conf);FileStatus[]fileList=fs.listStatus(newPath("1stjobo/pp

java - 使用 BigQuery 仅映射 MapReduce 作业

我们创建了一个Mapreduce作业以将数据注入(inject)BigQuery。我们的工作中没有太多的过滤功能,因此我们希望将其设为仅限map的工作,以使其更快、更高效。但是,BigQuery接受的java类“com.google.gson.JsonObject”并未实现hadoopMapper接口(interface)所需的Writable接口(interface)。JsonObject也是最终的,我们不能扩展它......关于我们如何解决这个问题有什么建议吗?谢谢, 最佳答案 补充William的回复:我想自己测试一下,我创建

hadoop - Hadoop 中的 MR 作业后创建了多少输出文件?

我有一个小于(非常小)默认block大小的文件。我的Mapper的输出是大量的>对(大于20)。我在某处读到,MR作业后生成的输出文件的数量等于reducer的数量,在我的例子中,reducer的数量大于20。但我在输出中得到了一个文件。然后我做了job.setNumReduceTasks(2)希望它会在输出中生成两个文件。但它仍然生成了一个文件。那么我可以得出输出文件数等于block数的结论吗?还有,是否将一个数据block馈送到一个Mapper? 最佳答案 -block-物理分区:HDFS旨在保存和管理大量数据。默认block大