我觉得我的问题让每个人都感到困惑。再说清楚一点。我正在尝试订购我的数据。说我的数据(几条记录)是这样的012341389228797我的block大小是128MB,文件大小是380Mb(3个block)我正在尝试为我的记录提供订单号。1,012342,138923,28797为了给出正确的数字,我需要将数据放入1个map中,否则如果我得到3个maptask,我的编号将不正确。所以如果我这样做,我会得到完整的数据吗?输入到我的映射器类的数据不会发生任何变化,这将是我的原始数据,不是吗?一旦我使用noofmappers设置为1-Dmapreduce.job.maps=1或conf.setI
关闭。这个问题需要detailsorclarity.它目前不接受答案。想改进这个问题吗?通过editingthispost添加细节并澄清问题.关闭2年前。Improvethisquestion我正在使用Cloudera-quickstart5.5.0virtualbox尝试在终端上运行它。正如您在下面看到的,有一个异常(exception)。我在Internet上搜索了解决此问题的解决方案并找到了一些东西。1-)配置core-site.xml文件。https://datashine.wordpress.com/2014/09/06/java-net-connectexception-c
我需要在Reducer中找到Mapper发出的最常见的键。我的reducer以这种方式工作正常:publicstaticclassMyReducerextendsReducer{privateTextresult=newText();privateTreeMapk_closest_points=newTreeMap();publicvoidreduce(NullWritablekey,Iterablevalues,Contextcontext)throwsIOException,InterruptedException{Configurationconf=context.getConf
我在一些数据上编写了一个MR算法来创建一个数据结构。创建后我需要回答一些问题。为了更快地回答这些查询,我根据结果创建了一个元数据(大约几MB)。现在我的问题是:是否可以在主节点的内存中创建此元数据以避免文件I/O,从而更快地回答查询? 最佳答案 假设,根据OP对其他答案的响应,另一个MR作业将需要元数据。在这种情况下使用分布式缓存相当容易:在驱动类中:publicclassDriverClassextendsConfigured{publicstaticvoidmain(String[]args)throwsException{/*
当我尝试使用带有es-hadoop的mapreduce程序写入Elasticsearch时出现此异常。我正在尝试写入已存在于我的Elasticsearch集群中的index=employee和type=basic。我的堆栈跟踪:-Exceptioninthread"main"org.elasticsearch.hadoop.EsHadoopIllegalArgumentException:Noresource['es.resource'](index/query/location)specifiedatorg.elasticsearch.hadoop.util.Assert.hasTe
我对FileInputFormat类的isSplitable()有疑问。根据定义,此方法将限制在输入拆分上创建多个映射器。但是mapper的数量是基于一个文件的splits的数量。就像一个160MB的文件被分成3个部分,比如64、64和32MB。将有3个映射任务,每个输入拆分一个。如果我用false值覆盖isSplitable(),它将限制什么,无论如何都会有3个映射器根据输入拆分处理文件。 最佳答案 如果您不希望您的数据文件被拆分,或者您想要一个单一的映射器来处理您的整个文件。这样一个文件将仅由一个映射器处理。在这种情况下,扩展m
假设我有一个包含25个block的数据,复制因子为1。映射器需要大约5分钟来读取和处理单个数据block。那么如何计算一个工作节点的时间呢?15个节点呢?如果我们将复制因子更改为3,时间会改变吗?我真的需要帮助。 最佳答案 首先,我建议阅读一些有关该问题的科学论文(Google学术搜索是一个很好的起点)。现在讨论一下。从我最近的实验中我得出结论,处理时间与您要处理的数据量有很强的关系(有道理)。在我们的集群上,Mapper读取一个128MBytes的block平均需要大约7-8秒。现在,为了预测整体执行时间,您需要考虑几个因素:Ma
我们如何检查mapreduce程序中哪个map运行缓慢?在工作期间和完成工作后?MapReduce性能测试需要检查哪些参数。 最佳答案 这个问题非常广泛,但仍试图在一定程度上解决..1)当作业正在运行时,您可以在applicationmaster中看到2)job完成后可以在jobhistory中看到请参阅map-reduce的作业跟踪器和任务跟踪器文档。性能测试参数是一个非常宽泛的术语。有一些默认的测试用例将随发行版一起发布一般来说,我们可以使用上述跟踪器查看作业(包括map和reduce阶段)花费了多少时间以及每个map花费了多少
我的文件大小为100MB,默认block大小为64MB。如果我不设置输入拆分大小,默认拆分大小将是block大小。现在拆分大小也是64MB。当我将这个100MB的文件加载到HDFS时,这个100MB的文件将分成2个block。即64MB和36MB。例如下面是一首100MB大小的歌词。如果我将这些数据加载到HDFS中,比如从第1行到第16行的一半正好是64MB作为一个拆分/block(直到"Itmadethe")和第16行的剩余一半(children欢笑和玩耍)到文件末尾作为第二block(36MB)。将有两个映射器作业。我的问题是第一个映射器如何考虑第16行(即block1的第16行)
我正在使用ChainReducer构建以下模式Map1-->Reduce-->Map2我希望Map2步骤仅在Reduce步骤完成后才开始。hadoopmapreduce中是否有一个属性来设置它。 最佳答案 你应该做的是:ChainMapper.addMapper(generalConf,Map1.class,...,newJobConf(false));ChainReducer.setReducer(generalConf,Reduce.class,...,newJobConf(false));ChainReducer.addMap