Java Eclipse如何运行MapReduce作业?

Java Eclipse如何运行MapReduce作业?,java,xml,eclipse,maven,hadoop,Java,Xml,Eclipse,Maven,Hadoop,我阅读了一篇文章,并设法在eclipse中运行了一个mapreduce程序 下面是pom.xml文件 <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4

我阅读了一篇文章,并设法在eclipse中运行了一个mapreduce程序

下面是pom.xml文件

<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
  <modelVersion>4.0.0</modelVersion>



  <groupId>virtusa</groupId>
  <artifactId>fazlan</artifactId>
  <version>0.0.1-SNAPSHOT</version>
  <packaging>jar</packaging>

  <name>fazlan</name>
  <url>http://maven.apache.org</url>

  <properties>
    <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
  </properties>

  <dependencies>

    <dependency>
      <groupId>junit</groupId>
      <artifactId>junit</artifactId>
      <version>3.8.1</version>
      <scope>test</scope>
    </dependency>


    <dependency>
    <groupId>org.apache.hadoop</groupId>
    <artifactId>hadoop-client</artifactId>
    <version>2.2.0</version>
    </dependency>

  </dependencies>
</project>
我假设eclipse以单节点配置运行程序

如果我们要单独安装hadoop,我们将不得不编辑一些xml文件来表示我们需要一个特定的配置(我正在使用hadoop 2.2,甚至对于单节点配置,我假设它需要对xml文件的xome进行一些修改)

在上面的例子中,我没有更改任何xml文件来说明这一点。eclipse是如何仅使用JAR解决的


此外,该方法是否依赖于除JAVA_HOME或PATH之外的任何环境变量?(Eclipse是否在我的机器中搜索任何hadoop安装)

正如您所提到的,hadoop可以通过3种方式运行

Local mode (Only for test purpose no mapreduce daemons needed)
Pseudo distributed mode(1 node cluster)
Distributed mode(Multinode cluster)
在本地模式下,不需要运行任何hadoop守护进程(jobtracker、mr1中的Taskers)。这通常用于eclipse的测试目的,但在伪分布式和分布式模式下,Mapreduce守护进程应该运行。从任何客户端节点以伪/分布式模式运行mapreduce作业时,需要在mapred-site.xml、HDFS namenode Host:port in core-site.xml中指定jobtracker节点和端口号(mapred.job.tracker)


从eclipse开始,执行将在本地模式下进行,没有守护进程将运行(不会连接到任何守护进程),因此在提交作业时无需配置任何xml文件

如何在eclipse中以伪分布式模式运行hadoop程序?不能直接以伪分布式模式运行hadoop程序以进行调试。由于mapper和reducer作为单独的JVM运行,eclipse无法为Hadoop处理这一问题。为了调试pupose,您可以使用本地模式或编写MR单元测试用例等。
Local mode (Only for test purpose no mapreduce daemons needed)
Pseudo distributed mode(1 node cluster)
Distributed mode(Multinode cluster)