草庐IT

task_records

全部标签

Hadoop 管道 : how to pass large data records to map/reduce tasks

我正在尝试使用map/reduce来处理大量二进制数据。该应用程序的特点如下:记录的数量可能很大,因此我真的不想将每条记录作为单独的文件存储在HDFS中(我打算将它们全部连接到单个二进制序列文件),并且每个记录都是一个大的连贯(即不可拆分)blob,大小在一到几百MB之间。这些记录将由C++可执行文件使用和处理。如果不是为了记录的大小,HadoopPipesAPI会很好:但这似乎是基于将输入作为连续的字节block传递给map/reduce任务,这在这种情况下是不切实际的。我不确定执行此操作的最佳方法。是否存在任何类型的缓冲接口(interface)允许每个M/R任务以可管理的bloc

hadoop - 并行运行多个 map task

我正在使用hadoop2.0。当我使用job.setNumMapTasks更改maptask的数量时,数量符合预期(输出文件夹中的序列文件数量和容器数量),但它们不会并行运行,但一次只有2个。例如,当我将map任务的数量设置为5时,它会先执行其中的2个,然后再执行2个,然后再执行1个。我有一个8核系统,想充分利用它。一些在线搜索(包括StackOverflow)似乎提出了一些建议,我尝试了以下方法:调整了mapred-site.xml中的参数“mapred.tasktracker.map.tasks.maximum”来设置并行运行的任务数。我将其设置为8。减少了参数“mapred.ma

哈多普 : reduce output records=0

我正在用2个映射器类和一个化简器编写MapReduce代码,但我不知道为什么我有一个化简输出记录=0。请告诉我如何解决这个问题packagereducesidejoin;importorg.apache.hadoop.io.IntWritable;importorg.apache.hadoop.io.Text;importorg.apache.hadoop.mapreduce.Reducer;importjava.io.IOException;importjava.util.Iterator;publicclassReduceSideJoinReducerextendsReducer{

hadoop - Spark : Minimize task/partition size skew with textFile's minPartitions option?

我正在通过sc.textFile("/data/*/*/*")之类的方式将数万个文件读入rdd>一个问题是这些文件中的大多数都是微小的,而其他的则巨大。这会导致任务不平衡,从而导致各种众所周知的问题。我能否通过sc.textFile("/data/*/*/*",minPartitions=n_files*5)读取数据来拆分最大的分区,其中n_files是输入文件的个数吗?如约定elsewhere在stackoverflow上,minPartitions被传递到hadooprabithole,并在org.apache.hadoop.mapred.TextInputFormat.getSp

performance - "time spent by map task"在 Hadoop 上包括什么?

Hadoop作业成功后,会显示各种计数器的摘要,请参见下面的示例。我的问题是Totaltimespentbyallmaptasks计数器中包含什么,特别是在映射器作业不是节点本地的情况下,是否包含数据复制时间?17/01/2509:06:12INFOmapreduce.Job:Counters:49FileSystemCountersFILE:Numberofbytesread=2941FILE:Numberofbyteswritten=241959FILE:Numberofreadoperations=0FILE:Numberoflargereadoperations=0FILE:N

hadoop - 配置单元 :Insert the records that are not present

我需要将记录从另一个表t2插入到表t1中,以便只插入不在t2中的记录。但是当我使用这个查询时insertintotablet1select*fromt2whereidnotin(selectidfromt1);但是我得到的错误是Correlatingexpressioncannotcontainqualifiedcolumnreference.任何人都可以建议我执行此操作的查询。 最佳答案 t2.id又一个可笑的hive限制insertintotablet1select*fromt2wheret2.idnotin(selectidf

java - 我可以通过 hadoop 中的代码明确地提前完成 map task 吗?

在某些情况下,我不需要遍历maptask中的每条输入记录。例如,我只发出最多200条满足每个映射器中特定条件的记录,然后它就可以退出。我可以在hadoop中执行此操作吗?api文档中还没有找到相关的方法。 最佳答案 您可能可以通过覆盖Mapper中的run方法来实现此目的.run方法目前看起来像:publicvoidrun(Contextcontext)throwsIOException,InterruptedException{setup(context);try{while(context.nextKeyValue()){map

hadoop - pig : Select records from a relaltion only if it is present in another relation

我有以下电影数据库的数据集:Ratings:UserID,MovieID,RatingMovies:MovieID,Genre我使用以下方法过滤掉类型为“Action”或“war”的电影:movie_filter=filterMoviesby(genrematches'.*Action.*')OR(genrematches'.*War.*');现在,我必须计算war片或Action片的平均收视率。但是评级存在于评级文件中。为此,我使用查询:movie_groups=GROUPmovie_filterBYMovieID;result=FOREACHmovie_groupsGENERATE

Spring Scheduled Task 在集群环境中运行

我正在编写一个具有每60秒执行一次的cron作业的应用程序。该应用程序配置为在需要时扩展到多个实例。我只想每60秒在1个实例上执行任务(在任何节点上)。开箱即用我找不到解决方案,我很惊讶以前没有被问过多次。我正在使用Spring4.1.6。 最佳答案 有一个ShedLock正是为这个目的服务的项目。您只需注释执行时应锁定的任务@Scheduled(...)@SchedulerLock(name="scheduledTaskName")publicvoidscheduledTask(){//dosomething}配置Spring和L

Spring Scheduled Task 在集群环境中运行

我正在编写一个具有每60秒执行一次的cron作业的应用程序。该应用程序配置为在需要时扩展到多个实例。我只想每60秒在1个实例上执行任务(在任何节点上)。开箱即用我找不到解决方案,我很惊讶以前没有被问过多次。我正在使用Spring4.1.6。 最佳答案 有一个ShedLock正是为这个目的服务的项目。您只需注释执行时应锁定的任务@Scheduled(...)@SchedulerLock(name="scheduledTaskName")publicvoidscheduledTask(){//dosomething}配置Spring和L