我阅读了一篇文章,并设法在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>
maven安装必要的jar,当我将程序作为java应用程序运行时,输出按预期保存。
正如我所读到的,hadoop可以在3种模式下运行。
1)Single node
2)psuedo-distributed mode
3)distributed mode
我假设eclipse以单节点配置运行程序。
如果我们要单独安装hadoop,我们将不得不编辑一些xml文件来表示我们需要特定的配置(我使用的是hadoop2.2,甚至对于单节点配置,我也假设它需要对xml文件的xome进行一些修改)。
在上面的例子中,我没有更改任何xml文件来说明这一点。eclipse是如何只使用jar来解决这个问题的。
这个方法是否还依赖于除javahome或path之外的任何环境变量?(eclipse是否在我的机器中搜索任何hadoop安装)
1条答案
按热度按时间d6kp6zgx1#
正如您提到的,hadoop可以通过3种方式运行
在本地模式下,不需要运行任何hadoop守护程序(jobtracker、mr1中的taskters)。这通常用于eclipse的测试目的,但是在伪分布式和分布式模式下,mapreduce守护进程应该运行。从任何客户端节点以伪/分布式模式运行mapreduce作业时,需要在mapred-site.xml、hdfs namenode中指定jobtracker节点和端口号(mapred.job.tracker)host:port in core-site.xml文件
从eclipse开始,执行将处于本地模式,没有守护进程运行(不会连接到任何守护进程),因此在提交作业时不需要配置任何xml文件