Hadoop从入门到精通之 如何运行hadoop程序
Hadoop从入门到精通之 如何运行hadoop程序
Hi 大家好,我是stefan,今天给大家带来的时如何运行Hadoop程序。
大家学习所有的IT技术都是通过先运行它们的范例开始的,Hadoop也不例外。Hadoop的运行可以分为三种:
1、在bash中敲代码,对每个文件编译运行
2、在bash中敲代码,打包成jar包后执行
3、在eclipse中编译后直接执行
===>首先我们来看看第1种方法:
第一种方法首先将我们写好的.java的Hadoop文件使用javac -classpath命令进行编译,示例如下:
javac -classpath /Users/guoshenglong/Documents/Hadoop/hadoop-2.2.0/share/hadoop/common/hadoop-common-2.2.0.jar urlRead.java
这里由于我们的程序urlRead.java使用到了Hadoop中的hadoop-common-2.2.0.jar包中的一些类,所有我们把它设置为urlRead.java编译时的classpath。
现在我们编译好了,接下来是运行了,我们通过命令:
hadoop urlRead hdfs://localhost:9000/user/guoshenglong/hdfsTest/a.txt
来运行我们的程序,这里的urlRead指的就是hadoop帮助里面的(在bash中敲入hadoop回车就可以看到帮助)
CLASSNAME run the class named CLASSNAME
后面hdfs://...就是程序执行的参数;运行完成,得到结果:
aaa bbb
===>接下来看第二种执行方法:
我们可以通过maven来管理我们的项目,maven大家可以自己百度然后安装一下,是一个比较常见的项目管理工具。首先我们新建项目,在命令行中敲下面的命令:
mvn archetype:generate -DgroupId=com.vertra.testFs -DartifactId=URLRead -DinteractiveMode=false
archetype:generate参数是创建一个新的项目,记住,最好不要用archetype:create,这个方法已经被弃用了。-DgroupId指定了程序的包结构,-DartifactId指定了项目根目录的名字,-DinteractiveMode指定了关闭用户交互 ,执行完成后生成的项目目录结构如下:
URLRead/
|-- pom.xml
`-- src
|-- main
| `-- java
| `-- com
| `-- vertra
| `-- testFs
| |-- App.java
| `-- urlRead.java
`-- test
`-- java
`-- com
`-- vertra
`-- testFs
`-- AppTest.java
我们需要修改根目录下面的pom.xml文件,pom文件内容如下:
<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/maven-v4_0_0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>com.vertra.testFs</groupId>
<artifactId>URLRead</artifactId>
<packaging>jar</packaging>
<version>1.0</version>
<name>URLRead</name>
<url>http://maven.apache.org</url>
<dependencies>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>3.8.1</version>
<scope>test</scope>
</dependency>
</dependencies>
<dependency>
<groupId>org.apache.hadoop</groupId>
<artifactId>hadoop-common</artifactId>
<version>2.2.0</version>
</dependency>
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-jar-plugin</artifactId>
<configuration>
<archive>
<addMavenDescriptor>false</addMavenDescriptor>
<manifest>
<mainClass>com.vertra.testFs.urlRead</mainClass>
</manifest>
</archive>
</configuration>
</plugin>
</plugins>
</build>
</project>
注意:我们需要添加依赖:
<dependency>
把hadoop-common-2.2.0.jar添加到依赖项中,还要注意我们需要指定编译对象,
<mainClass>com.vertra.testFs.urlRead</mainClass>
很多人就是由于没有指定编译对象导致打包出错。我们可以进去到URLRead目录下打包了,执行命令:
mvn package
我们会发现根目录下多了一个target目录,里面有我们打包好的jar包。
我们运行jar包:
Hadoop jar test.jar args
args是传入的参数。
===>eclipse中运行:
我们需要编译一个eclipse的插件,安装后就可以执行hadoop程序了
这部分比较简单,这里就不累述了。
转载请注明出处:http://blog.csdn.net/guoshenglong11/article/details/23443473
评论暂时关闭