草庐IT

Mapreduce1

全部标签

hadoop - 运行 Hadoop MapReduce,是否可以调用 HDFS 外部的外部可执行文件

在我的映射器中,我想调用安装在HDFS之外的工作节点上的外部软件。这可能吗?执行此操作的最佳方法是什么?我知道这可能会带走MapReduce的一些优势/可扩展性,但我想在HDFS中进行交互,并在我的映射器中调用编译/安装的外部软件代码来处理一些数据。 最佳答案 Mappers(和reducers)就像盒子上的任何其他进程一样-只要TaskTracker用户有权运行可执行文件,这样做就没有问题。有几种调用外部进程的方法,但由于我们已经在J​​ava中,ProcessBuilder似乎是一个合乎逻辑的起点。编辑:刚刚发现Hadoop有一

java - 由于容器启动的 AM 容器异常, headless (headless)环境中的 MapReduce 作业失败 N 次

在MacOSX的headless(headless)环境中运行mapreduce作业时(例如,当以特定用户身份通过​​ssh运行作业时),我得到以下异常或类似的异常......2013-12-0415:08:28,513WARNorg.apache.hadoop.yarn.server.resourcemanager.RMAuditLogger:USER=hadoopOPERATION=ApplicationFinished-FailedTARGET=RMAppManagerRESULT=FAILUREDESCRIPTION=Appfailedwithstate:FAILEDPERMI

java - 自定义 MapReduce 输入格式 - 找不到构造函数

我正在为Hadoop0.20.2编写一个自定义的InputFormat,并且遇到了一个我无法摆脱的NoSuchMethodException。我开始于:publicclassConnectionInputFormatextendsFileInputFormat{@OverridepublicRecordReadercreateRecordReader(InputSplitsplit,TaskAttemptContextcontext)throwsIOException,InterruptedException{returnnewConnectionRecordReader();}}运行

java - 使用 MapReduce 查找数字的平均值

我一直在尝试编写一些代码来使用MapReduce查找数字的平均值。我正在尝试使用全局计数器来实现我的目标,但我无法在我的Mapper的map方法中设置计数器值,而且我也无法在我的Reducer的reduce方法。我是否必须在map中使用全局计数器(例如,通过使用提供的Reporter的incrCounter(key,amount))?或者您会建议任何不同的逻辑来获得一些数字的平均值吗? 最佳答案 逻辑很简单:如果所有数字都具有相同的键,则映射器会发送您想要使用相同键求平均值的所有值。因此,在reducer中,您可以对迭代器中的值求和

hadoop - Hadoop MapReduce中reducer的输入太大怎么办

我想了解在这种情况下该怎么做。例如,我有1TB的文本数据,假设其中300GB是这个单词“你好”。在每次映射操作之后,我将得到一组的键值对。但正如我所说,这是一个巨大的集合,有300GB,据我所知,reducer得到了所有的数据并将粉碎。解决这个问题的方法是什么?假设组合器在这里帮不了我(WordCount示例只是为了简单起见)并且数据对于reducer来说仍然太大。 最佳答案 中间(映射器)输出存储在运行映射器任务的节点的本地文件系统中,然后被清理。请注意,此映射器输出未存储在HDFS中。reducer确实获得了任何特定键的所有中间

java - hadoop mapreduce : java. lang.UnsatisfiedLinkError : org. apache.hadoop.util.NativeCodeLoader.buildSupportsSnappy()Z

我正在尝试从map-reduce作业中编写一个活泼的block压缩序列文件。我在用hadoop2.0.0-cdh4.5.0,和snappy-java1.0.4.1这是我的代码:packagejinvestor.jhouse.mr;importjava.io.ByteArrayOutputStream;importjava.io.IOException;importjava.io.OutputStream;importjava.util.Arrays;importjava.util.List;importjinvestor.jhouse.core.House;importjinvesto

hadoop - 如何解释 MapReduce 性能计数器

更具体地说:在任务计数器中,CPU消耗来自proc/stat的utime+stime,所以这意味着像IOWait这样的东西不会被计算在内。对吗?整个任务的耗用时间比CPU耗时计数器长很多,这是否意味着节点非常繁忙,容器没有获得CPU或等待IO的时间很长?如何判断任务是受CPU限制还是仅通过计数器进行IO计数? 最佳答案 “CPU_MILLISECONDS”计数器可以为您提供以下信息:所有任务在CPU上花费的总时间。'REDUCE_SHUFFLE_BYTES'数字越大,n/w利用率越高。(像这样有更多选择)Hadoop中有4类计数器:

hadoop - 用于日志分析的 Amazon MapReduce 最佳实践

我正在解析由Apache、Nginx、Darwin(视频流服务器)生成的访问日志,并按日期/推荐人/用户代理汇总每个已交付文件的统计信息。每小时生成大量日志,并且这个数字在不久的将来可能会急剧增加-因此通过AmazonElasticMapReduce以分布式方式处理此类数据听起来很合理。现在我已经准备好使用映射器和缩减器来处理我的数据并使用以下流程测试整个过程:将映射器、reducer和数据上传到AmazonS3配置适当的作业并成功处理将聚合结果从AmazonS3下载到我的服务器,并通过运行CLI脚本将它们插入MySQL数据库我已经根据Internet上有关AmazonERM的数千个教

Hadoop MapReduce log4j - 将消息记录到 userlogs/job_ 目录中的自定义文件?

我不清楚应该如何在作业级别配置HadoopMapReducelog4j。谁能帮我回答这些问题。1)如何从客户端计算机添加对log4j日志记录的支持。即我想在客户端机器上使用log4j属性文件,因此不想干扰集群中的Hadooplog4j设置。我认为在项目/jar中拥有属性文件就足够了,hadoop的分布式缓存应该完成其余的传输map-reducejar。2)如何将消息记录到$HADOOP_HOME/logs/userlogs/job_/目录中的自定义文件中。3)mapreduce任务会同时使用log4j属性文件吗?一个由客户端作业提供,一个存在于hadoop集群中?如果是,那么log4j

java - mapreduce 计数示例

我的问题是关于mapreduceprogramminginjava.假设我有WordCount.java示例,一个标准的mapreduceprogram.我希望map函数收集一些信息,并返回到reduce函数maps形成如下:,所以Icanknowwhatslavenodecollectedwhatdata..知道怎么做吗?publicclassWordCount{publicstaticclassMapextendsMapReduceBaseimplementsMapper{privatefinalstaticIntWritableone=newIntWritable(1);priv