草庐IT

recordings

全部标签

hadoop - 从 "reduce input records"到 "reduce input groups"

运行MapRed作业后,我们会得到一些关于该作业的摘要,例如:...reduceinputrecords:10reduceinputgroups:3...我知道这是由组合重复键引起的。我的问题是reducer用来组合记录的方法是什么?key1.equals(key2)orkey1.hashCode==key2.hashCode?谢谢。 最佳答案 只有compareTo因为键必须实现WritableComparable.key.hashCode()用于分区原因。永远不会使用等于。 关于ha

hadoop - 获取 Hive 中 Record 的文件名

是否有可能在Hive中获取记录的文件名?这对调试非常有帮助。在我的特殊情况下,我在映射到包含>100个大文件的文件夹的表中有一个不正确的值。使用grep是非常低效的 最佳答案 HIVE支持虚拟列,例如INPUT__FILE__NAME。它为映射器任务提供输入文件的名称。查看文档here.它提供了一些有关如何执行此操作的示例。不幸的是,我现在无法对其进行测试。让我知道这是否有效。 关于hadoop-获取Hive中Record的文件名,我们在StackOverflow上找到一个类似的问题:

Hadoop : Number of input records for reducer

无论如何,每个reducer进程都可以确定它必须处理的元素或记录的数量吗? 最佳答案 简短回答-提前不,reducer不知道可迭代对象支持多少个值。您可以执行此操作的唯一方法是在迭代时进行计数,但您不能再对可迭代对象进行重新迭代。长答案-支持可迭代对象实际上是序列化键/值对的排序字节数组。reducer有两个比较器-一个用于按键顺序对键/值对进行排序,然后第二个用于确定键之间的边界(称为键分组器)。通常,键分组器与键排序比较器相同。当迭代特定键的值时,底层上下文检查数组中的下一个键,并使用分组比较器与前一个键进行比较。如果比较器确定

java - MAP_OUTPUT_RECORDS 值在 reducer 类中不断变化

我正在尝试使用reducer类中的MAP_OUTPUT_RECORDS计数器来计算示例wordcount程序中的单词百分比。这里是reducer中setup()方法的代码:publicstaticclassIntSumReducerextendsReducer{privateFloatWritableresult=newFloatWritable();privatelongtotal=0;@Overridepublicvoidsetup(Contextcontext)throwsIOException,InterruptedException{total=context.getCoun

java - Avro Schema Evolution With GenericData.Record - Mapreduce 过程

我有一个mapreduce程序,它从avro数据中读取数据,对其进行处理并输出avro数据。我有这个avro数据的模式,假设有4列。我使用GenericData.Record来写入avro数据。现在,我使用具有5列的模式在此数据之上创建一个pig关系。第5列是新的,具有avsc文件中定义的默认值。根据我的理解,我应该能够使用带有一列的新模式读取旧数据(由4列生成)。相反,我收到一条错误消息-Tryingtoaccessnon-existcolumn.我错过了什么?Mapreduce驱动程序代码Jobjob=Job.getInstance(getConf());job.setJarByC

hadoop - NoSuchMethodException org.apache.hadoop.yarn.api.records.URL.fromURI

我正在尝试从hbase表中读取数据,对其进行一些处理并使用以下代码将其存储在另一个表中packageanalysis;importjava.io.IOException;importorg.apache.hadoop.io.Text;importorg.apache.hadoop.conf.Configuration;importorg.apache.hadoop.hbase.HBaseConfiguration;importorg.apache.hadoop.hbase.client.Put;importorg.apache.hadoop.hbase.io.ImmutableByte

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

哈多普 : 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 - 配置单元 :Insert the records that are not present

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

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