草庐IT

time_input

全部标签

Hadoop MapReduce : Is it possible to only use a fraction of the input data as the input to a MR job?

我的输入数据的关键类是WritableComparable,它以MapFile的形式存在。有没有什么方法可以设置最小和最大键值,并且只将记录传输到键值介于两者之间的映射器? 最佳答案 这是不可能的。因为对于map-reduce作业,我们只是指定输入。我们可以做的一件事是,在映射器中编写一个条件。如果键是黑白最小值和最大值,则只处理键值对并将输出发送到reducer。否则,什么都不做。但即使在这种情况下,我们的map阶段也会处理所有输入,而reduce阶段只会处理我们指定的键范围。更好的方法:当在给定输入上运行map-reduce作业

hadoop - Hadoop 中的小文件 vs Shuffle Time - Tunning

在处理如此多的小文件时,减少和调整随机播放时间的更好方法是什么?由于其他一些限制和要求,我无法减少小文件的数量,我知道处理小文件的问题。但我想知道这里还有哪些其他选项可以减少给定MapReduce作业的洗牌时间?对于单个MapReduce作业,我得到如下内容:AverageMapTime33secAverageReduceTime10secAverageShuffleTime1hrs,10mins,18secAverageMergeTime2sec我想知道是否有任何其他方法可以尝试减少此随机播放时间?对于上述数据,我的mapper#是:14778 最佳答案

python - python : os. environ ["map_input_file"中的 MapReduce ] 在 map.py 中不起作用

这是我第一次用python学习HadoopMapReduce。为了学习如何连接两个文件,我写了一个map.py来获取两个文件的文件名。这里有两个CSV文件:worksheet1.csvsno,name1,name12,name23,name34,name4worksheet2.csvsno,courseno,grade1,1,801,2,902,1,822,2,95map.py:#!/bin/bash#-*-coding:utf-8-*-importosimportsysdefmapper():filepath=os.environ["map_input_file"]filename=

java - Hadoop : set a variable like hashSet only once so that it can be utilized multiple times in each map task

您好,我有一个HashSet,它需要在hadoop中的每个映射任务中使用。我不想多次初始化它。我听说可以通过在配置函数中设置变量来实现。欢迎提出任何建议。 最佳答案 看来你还没有真正了解Hadoop的执行策略。如果你是分布式模式,你不能在多个map任务中共享一个集合(HashSet)。这是因为任务是在它们自己的JVM中执行的,并且它不是确定性的,即使不使用jvm重用,你的集合在jvm被重置后仍然存在。您可以做的是在计算开始时为每个任务设置一个HashSet。因此您可以覆盖setup(Contextctx)方法。这将在调用映射方法之前

hadoop - Hive 总是给出 "Number of reduce tasks determined at compile time: 1",无论我做什么

createexternaltableifnotexistsmy_table(customer_idSTRING,ip_idSTRING)location'ip_b_class';然后:hive>setmapred.reduce.tasks=50;hive>selectcount(distinctcustomer_id)frommy_table;TotalMapReducejobs=1LaunchingJob1outof1Numberofreducetasksdeterminedatcompiletime:1里面有160GB,1个reducer需要很长时间...[ihadanny@lv

python - Spark 异常 : Python worker did not connect back in time

我正在尝试将Python作业提交到2个工作节点的Spark集群,但我一直看到以下问题,最终导致spark-submit失败:15/07/0421:30:40WARNscheduler.TaskSetManager:Losttask0.1instage0.0(TID2,workernode0.rhom-spark.b9.internal.cloudapp.net):org.apache.spark.SparkException:Pythonworkerdidnotconnectbackintimeatorg.apache.spark.api.python.PythonWorkerFact

java - Apache Hadoop : Can it do "time-varying" input?

即使经过一些谷歌搜索,我也没有找到答案。我的输入文件是由一个进程生成的,当文件达到1GB时,该进程将它们分块。现在,如果我要运行一个处理dfs中的输入目录的mapreduce作业,我如何确保该作业在hadoop作业运行时获取添加到同一输入目录的文件?我觉得这几乎是不可能的,因为当hadoop作业运行时,它会计算剩余时间和所有这些东西,所以当我的输入不断堆积或换句话说是“可变的”时,Hadoop不会知道如何管理它-这是我的猜测。我想知道您对此的看法以及对此的最佳替代方法!感谢您的帮助。 最佳答案 您描述的用例不是Hadoop设计用来处

input - Hadoop 多次读取输入拆分

我需要迭代输入拆分不止一次。我需要这个的原因超出了这个问题的范围。假设我只需要它(一个简短的解释是我需要多次使用输入拆分来填充数据结构,并且拆分可能足够大,以至于在第一次迭代后它无法容纳在内存中)我想我可以做一些技巧,例如扩展FileInputFormat和RecordReader多次服务拆分,但我想知道是否有任何在Hadoop中执行此操作的“标准”方式。我不知道在Hadoop中实现此目的的任何标准方法,但可能我错过了一些东西。有什么想法吗? 最佳答案 在多次拆分过程中,您想对该数据结构做什么?(查找、更新等)您是否尝试过将此操作与

hadoop - Mesos 和 Hadoop : How to get the running job input data size?

我在Mesos0.14上运行Hadoop1.2.1。我的目标是记录输入数据大小、运行时间、cpu使用情况、内存使用情况等,以便稍后进行优化。除了数据大小之外,所有这些都是使用Sigar获得的。有什么方法可以获取正在运行的任何作业的输入数据大小?例如,当我运行hadoop示例的terasort时,我需要在作业实际运行之前获取teragen生成的数据大小。如果我正在运行Wordcountexample,我需要获取wordcount输入文件大小。我需要自动获取数据大小,因为我无法知道稍后将在该框架内运行什么作业。我正在使用Java编写一些mesos库代码。最好,我想在MesosExecuto

Hadoop HDFS : input/output error when creating user folder

我已按照Hadoopthedefinitiveguide,4thedition:AppendixA中的说明进行操作在伪分布式模式下配置Hadoop。一切正常,除了我尝试创建目录时:hadoopfs-mkdir-p/user/$USER命令返回以下消息:mkdir:/user/my_user_name':Input/outputerror。虽然,当我第一次登录到我的根帐户sudo-s然后键入hadoopfs-mkdir-p/user/$USER命令时,目录'user/root'被创建(路径中的所有目录)。我想我遇到了Hadoop权限问题。任何帮助将不胜感激,谢谢。