我跟着一篇文章,设法在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文件来说我们需要一个特定的配置(我使用Hadoop 2.2甚至是单节点配置我假设它需要在xml的xome中进行一些修改文件)。
在上面的例子中,我没有改变任何xml文件来说明。只有罐子里的eclipse才能解决它。
此方法是否依赖于除JAVA_HOME或PATH之外的任何环境变量?(Eclipse是否在我的机器中搜索任何hadoop安装)
答案 0 :(得分:1)
如你所说,hadoop可以以3种方式运行
Local mode (Only for test purpose no mapreduce daemons needed)
Pseudo distributed mode(1 node cluster)
Distributed mode(Multinode cluster)
在本地模式下,不需要运行任何hadoop守护进程(jobrcker,mr1中的taskters)。这通常用于eclipse的测试目的但是在伪分布式和分布式模式的情况下,Mapreduce守护进程应该运行。当您从任何客户机节点以伪/分布式模式运行mapreduce作业时,必须在mapred-site.xml中指定jobtracker节点和端口号(mapred.job.tracker),在core-site中指定HDFS namenode Host:port。 xml
从eclipse开始,执行将处于本地模式,不会运行任何守护进程(不会连接到任何守护进程),因此在提交作业时无需配置任何xml文件