草庐IT

reduce_ex

全部标签

java - 在 Windows 上用 map reduce 程序创建一个 jar 文件,然后在 linux (hadoop) 上运行它

我通常使用Windows,但是对于hadoop我使用ubuntu(在oracleVM中)我想知道在netbeans中创建一个jar,其中包含在Windows环境中编译执行它的mapper/reducer/java程序,然后在Linux环境中启动那个jar?我知道这可能是一个初学者问题,但我只是没能在网上找到关于这个问题的资料提前致谢! 最佳答案 是的,Java字节码是平台无关的。在Windows上编译的Java类可以在Linux上运行。您不必做任何特别的事情;只需构建jar,将其复制到您的LinuxVM中,然后运行它。

hadoop - 如何维护 Reducer 中 MapWritables 的顺序?

我的映射器实现publicclassSimpleMapperextendsMapper{@Overrideprotectedvoidmap(Textkey,Textvalue,Contextcontext)throwsIOException,InterruptedException{MapWritablewritable=newLinkedMapWritable();writable.put("unique_key","one");writable.put("another_key","two");context.write(newText("key"),writable);}Redu

java - "Shortcut"在reduce()方法中确定Iterator<IntWritable>中的最大元素

我在下面写了reduce()确定给定年份的最高记录温度的方法。(map()的输出给出了一年中记录的温度列表。)publicvoidreduce(IntWritableyear,Iteratortemps,OutputCollectoroutput,Reporterreporter)throwsIOException{intmaxValue=Integer.MIN_VALUE;while(temps.hasNext()){intnext=temps.next().get();if(next>maxValue){maxValue=next;}}output.collect(year,new

java - hadoop: sqoop- 为什么 jdbc 代码是用 reducer 写的?

我是hadoop及其生态系统的新手。Sqoop:从/向hdfs-RDBMS导入/导出数据。Sqoop兼容JDBC相关数据库。为什么在从/到hdfs-RDBMS导入和导出数据时,所有的jdbc代码都写在reducer而不是mappers中?有人说要避免Ddos(分布式拒绝服务)。 最佳答案 Sqoop中没有reducer。Sqoop只需要用于导入和导出的映射器。为了将数据从RDBMS导入HadoopSqoop具有使用JDBC从数据库获取数据的输入格式。同样,sqoop具有用于写入数据的输出格式从Hadoop导出数据到RDBMS

hadoop - 配置 MapReduce 程序以仅在现有程序中运行 reducer

可以配置mapreduce程序,以便只执行reducer而不是mapper[即使程序中定义了map函数]。这是否可以仅通过更改作业配置来实现。我想在mapreduce中实现增量计算(输入作为仅附加文件)。例如对于字数统计,如果wordcount已经在一个文件上执行,之后一些更多的数据被附加到输入文件。如果再次对更新的输入文件执行wordcount,我只想对新数据执行wordcount,并将旧结果与此结合。对于这种输出组合,我想单独单独执行reducer。 最佳答案 不,这是不可能的。Hadoop要求您执行map,而reduce是可选

java - Hadoop 内存使用 : reduce container is running beyond physical memory limits

我有简单的映射器和简单的缩减器(它通过一个字段连接两个大表):protectedvoidreduce(StringLongCompositeKeykey,Iterablevalues,Contextcontext)throwsIOException,InterruptedException{}foreach(Texttext:values){//dosomeoperationswithonerecordandthenemititusingcontext.write//sonothingisstoringinmemory,onetextrecordissmall(momorethen10

java - 如何在hadoop map reduce中设置使用JNI创建的库文件的路径

我在我的映射器代码中使用了本地方法。classMapextendsMapper{static{System.loadLibrary("myjni");}publicnativeStringgetRow(Stringrecord,Stringquery);publicvoidmap(...){//...}}我执行了所有必要的步骤来创建JNI库文件-.so。而且我还把这个.so文件复制到了hdfs。但是hadoop仍然没有识别路径。它给出了一个错误-nomyjniinjava.libarary.path.如何让mapper知道原生库文件的路径。请帮忙。谢谢。 最

Hadoop 2.5.1 作业卡在 map 0% 和 reduce 0%

我正在尝试运行一个字数统计示例。我当前的测试设置是:一台机器上的NameNode和ResourceManager(10.38.41.134)。另一个(10.38.41.135)上的DataNode和NodeManager。他们可以在没有密码的情况下在它们之间进行ssh。阅读日志时,我没有收到任何警告,除了安全警告(我没有将其设置为测试)和containermanager.AuxServices'mapreduce_shuffle'警告。提交示例作业后,节点会对其使用react并输出日志,这表明它们可以很好地通信。NodeManager输出内存使用情况,但作业没有变化。我应该从哪里开始寻

java - 在 mapreduce 作业提交期间为 mappers 和 reducer 配置内存

我正在尝试在mapreduce作业提交期间为mapper/reducer内存配置内存,如下所示:hadoopjarWord-0.0.1-SNAPSHOT.jar-Dmapreduce.map.memory.mb=5120com.test.Word.App/tmp/ilango/input/tmp/ilango/output/上面的命令有没有错误?我收到以下异常。看起来我们需要放置JAR文件还是需要配置在Hadoop中使用-D选项的内容。提前致谢。Exceptioninthread"main"java.lang.ClassNotFoundException:-Dmapreduce.map

hadoop - 如何在 Hadoop 中设置 reducer 输出名称?

我的作业会发出900,000个不同的输出。每一个都必须由一个特定的唯一名称来标识......这就是我在mapOutputKey上的“名称”。我如何在map-reduce中执行此操作? 最佳答案 您可以在documentation中使用MultipleOutputs你会发现几乎完全满足你需要的例子,你只需要将generateFileName函数替换为这个函数:StringgenerateFileName(Kk,Vv){returnk.toString();} 关于hadoop-如何在Had