草庐IT

glass-mapper

全部标签

hadoop - 使用 Kerberos 安全连接到 Mapper 中的 HIVE

我的目标是在安全集群(kerberos)HDP2.3上运行MapReduce并连接到Oozie工作流调度程序中的Hive。我能够在直线中连接到配置单元,或者当我使用以下连接字符串将其作为java应用程序(yarnjar)运行时:DriverManager.getConnection("jdbc:hive2://host:10000/;principal=hive/_HOST@REALM","","");但是当我在Mapper中运行它时它失败了。ERROR[main]org.apache.thrift.transport.TSaslTransport:SASLnegotiationfai

Hadoop - Reducer 正在等待 Mapper 输入?

如标题中所述,当我执行我的Hadoop程序(并在本地模式下调试它)时,会发生以下情况:1.我的测试数据中的所有10个csv行都在Mapper、Partitioner和在映射步骤之后调用的RawComperator(OutputKeyComparatorClass)中得到正确处理。但是OutputValueGroupingComparatorClass和ReduceClass的函数之后不会执行。2.我的应用程序如下所示。(由于空间限制,我省略了我用作配置参数的类的实现,直到有人有想法,涉及它们):publicclassRetweetApplication{publicstaticintD

java - 接口(interface)作为Mapper值输出

我有一个映射器,其输出值设置为如下接口(interface):publicinterfaceOutValueextendsWritable{}在映射期间,我创建具有此签名的对象并发出它们:publicclassOutRecordimplementsOutValue{}我的Mapper是这样的:publicclassExampleMapperextendsMapper{}但是我收到了这个错误:java.io.IOException:Typemismatchinvaluefrommap:expectedOutValue,recievedOutRecordatorg.apache.hadoo

Hadoop Map Reduce,如何将第一个reducer输出和第一个map输入结合起来,作为第二个mapper的输入?

我需要使用mapreduce实现一个功能。要求如下。映射器的输入是一个包含两列productId和Salescount的文件Reducersoutput,salescount总和要求是我需要计算salescount/sum(salescount)。为此,我打算使用嵌套的mapreduce。但是对于第二个映射器,我需要使用第一个reducer输出和第一个映射的输入。我怎样才能实现这个。或者有什么替代方法吗?问候维努 最佳答案 您可以按照自己的方式使用ChainMapper和ChainReducer到PIPEMappers和Reduce

hadoop - slots、map tasks、data splits、Mapper的区别和关系

我浏览了一些hadoop信息书籍和论文。Slot是节点上的map/reduce计算单元。它可能是map或减少插槽。据我所知,split是HDFS中的一组文件block,它们具有一定的长度和存储它们的节点位置。映射器是类,但是当代码被实例化时,它被称为映射任务。我对吗?maptasks、datasplits和Mapper之间的区别和关系我不清楚。关于调度我的理解是,当节点的映射槽空闲时,如果映射任务要处理的数据是节点,则从未运行的映射任务中选择并启动映射任务。谁能用上面的概念解释清楚:slots,mapper和maptask等。谢谢,阿伦 最佳答案

java - hadoop MapReduce : find max key value pair from output of mapper

这听起来像是一项简单的工作,但使用MapReduce似乎并不那么简单。我有N个文件,其中每个文件只有一行文本。我希望Mapper输出键值对,如,其中'score'是根据文本行计算的整数。作为旁注,我正在使用以下代码片段来执行此操作(希望它是正确的)。FileSplitfileSplit=(FileSplit)reporter.getInputSplit();StringfileName=fileSplit.getPath().getName();假设映射器正确地完成了它的工作,它应该输出N个键值对。现在的问题是我应该如何对Reducer进行编程以输出具有最大“分数”的一对键值对?据我所

hadoop - 当相同的键被传递给 Hadoop 中的 Mapper 时会发生什么

在HadoopMapReduce框架中,将数据作为键/值对传递给映射器的意义何在?我知道键/值对在传递给reducers时具有重要意义,因为它们迎合了来自映射器的数据分区。属于同一键的值作为列表从映射器到缩减器阶段。但是在映射器阶段本身之前如何使用键?属于同一个键的值会发生什么?如果我们不定义自定义输入格式,我假设Hadoop将输入文件中的记录编号作为键,将文本行作为映射器函数中的值。但是,如果我们决定实现自定义输入格式,则会有键的自定义选择,并且我们有可能拥有与同一键对应的值。在映射器阶段如何处理现象?映射器是忽略重复记录并将它们视为单独的记录,还是每个键只选择一个记录?

java - Reducer 在 mapper 完成之前启动

我正在运行一个MapReduce程序。但是,即使我只使用mapper或同时使用mapper和reducer运行它,我也会得到类似的输出。此后它永远不会完成。它卡在那里。我不明白为什么reducer在mapper完成100%之前就开始了?可能存在哪些潜在问题?输出:Map10%Reduce0%Map19%Reduce0%Map21%Reduce0%Map39%Reduce0%Map49%Reduce0%Map63%Reduce0%Map67%Reduce0%Map68%Reduce0%Map68%Reduce22%Map69%Reduce22%这是一个映射器代码:publicclassE

Hadoop MapReduce : default number of mappers

如果我不指定映射器的数量,如何确定该数量?是否有从配置文件(例如mapred-site.xml)中读取的默认设置? 最佳答案 在Chris上面添加的内容上添加更多内容:映射的数量通常由输入文件中的DFSblock数量决定。虽然这会导致人们调整他们的DFSblock大小来调整map的数量。map的正确并行级别似乎是大约10-100个map/节点,尽管对于非常cpu-lightmaptask,这可以达到300左右。任务设置需要一段时间,因此最好至少花一分钟时间执行map。您可以通过修改JobConf的conf.setNumMapTask

java - 单个 hadoop Mapper 对象是否用于多次调用 map()?

所以,我有一个更新HBase表的映射器。在map()函数中,我:1)实例化一个HBaseConfiguration2)实例化一个HTable3)多次调用hTable.put()添加行4)调用hTable.flushCommits()刷新我的更改5)调用HConnectionManager.deleteConnection()终止与HBase的连接但是,这似乎效率不高。我想在我的Mapper类的构造函数中实例化HBaseConfiguration和HTable。然后我可以让我的映射器类实现Closeable,在close()方法中调用hTable.flushCommits()和HConn