Ubuntu下Eclipse调试Hadoop的WordCount示例

2019-03-28 13:21|来源: 网络

1.先去Hadoop官网下载hadoop的源码 http://svn.apache.org/repos/asf/hadoop/common/trunk

2.下载maven3,当前hadoop的最新版必须使用maven3编译

3.到hadoop下载源码目录执行mvn clean install;mvn eclipse:eclipse;

4.将源码导入eclipse;

5.在eclipse设置执行的WordCount.java的jvm启动参数,最少需要两个,输入目录和输出目录

6.然后就可以设置断点进行调试了,我们在处理mapreduce的主干流程上设置断点

org.apache.hadoop.mapred.LocalJobRunner这个类的run方法上

我们看到在我们设置的输入输出目录,然后使用默认的hadoop单机配置下,mapTask有16个,reduceTask有1个

我们先看看我们的输入目录,刚好是16个文件,说明每个输入文件默认启动一个mapTask

相关问答

更多
  • 在Hadoop中,您处理输入拆分而不是块。 输入拆分是完整的数据集。 您希望避免一个映射器超过两个拆分的情况,因为这会降低性能并创建流量。 在文本世界中,假设您在block1中并且您有一个句子,例如“我是一个哈”,而block2继续“doop developer”,那么这会创建网络流量,因为我们始终必须在一个完整的节点上工作输入拆分和一些数据必须转移到另一个节点。 In Hadoop you work on input splits and not on blocks. An input split is ...
  • 在深入研究错误日志后,似乎我已经在用户级安装了R库,我应该在系统级安装它。 详细说明如何在系统级别上安装R库可以在这个帖子上找到。(“dev_tools”软件包可以派上用场,记得在sudo下运行R,或者你可以更喜欢sudo R CMD INSTALL [package_name] ) 您可以通过system.file(package="[package_name]")仔细检查R中的软件包安装路径,但这始终显示软件包的第一个首选库路径。 所以我强烈建议以前安装用户库。 再运行几次以仔细检查错误日志并确保在R系 ...
  • 既然您了解Mapper和Reducer的格式为Key1,Value1,Key2,Value2,Key1和Value1是输入键值类型,Key2和Value2是输出类型,我将解释其余的。 在主要功能中,你会看到一行说, job.setInputFormatClass(TextInputFormat.class); 现在,这就决定了如何读取输入文件。 如果你看一下TextInputFormat的来源 ,你会看到它(在它的第41行)它使用LineRecordReader ( source )将文件分成键值对。 这 ...
  • 删除已存在的输出文件,或输出到不同的文件。 (我有点好奇你对错误信息的其他解释。) Delete the output file that already exists, or output to a different file. (I'm a little curious what other interpretations of the error message you considered.)
  • 我怀疑Hadoop是否安装正确。 如果所有守护程序都在运行,请检查您的机器。如果没有,请考虑重新检查或重新安装您缺少的内容。 ERROR [main] util.Shell (Shell.java:getWinUtilsPath(373)) - Failed to locate the winutils binary in the hadoop binary path java.io.IOException: Could not locate executable I doubt if Hadoop ...
  • 这可能发生在作业仅检测到本地文件系统的情况下,它使用LocalFileSystem API与本地文件系统中的文件进行交互。 请参考以下链接, 使用MiniDFSCluster单元测试hadoop hdfs着作 这是我们在开发环境中开发的mapreduce / hdfs代码的单元测试选项之一。虽然在hadoop clsuter中部署相同的代码,但输入文件将在HDFS位置。 This probably happens in the scenario where the job only detects the ...
  • 请参阅org.apache.hadoop.examples.Sort 使用map / reduce并不是非常简单。 它涉及获取数据的直方图并使用TotalOrderPartitioner 。 或者,您可以使用Hive或Pig,它具有内置的排序功能。 See org.apache.hadoop.examples.Sort This is not super-straightforward to do using map/reduce. It involves taking a histogram of you ...
  • 尝试: Hadoop job -list 杀死所有工作并重新运行: Hadoop job –kill 尝试检查作业跟踪器的日志是否有错误 http://localhost:50070/ – web UI of the NameNode daemon http://localhost:50030/ – web UI of the JobTracker daemon http://localhost:50060/ – web UI of the TaskTracker daemon The ...
  • 在代码中添加以下两行: config.addResource(new Path("/HADOOP_HOME/conf/core-site.xml")); config.addResource(new Path("/HADOOP_HOME/conf/hdfs-site.xml")); 如果您未指定此项,则客户端将查看本地FS,该FS不包含指定的路径,因此会抛出该错误。 Add the following 2 lines in your code : config.addResource(new Path(" ...
  • 通过Configuration abject在作业中添加以下两行: Configuration.addResource(new Path("path-to-your-core-site.xml file")); Configuration.addResource(new Path("path-to-your-hdfs-site.xml file")); Add the following two lines in your job through your Configuration abject : C ...