如何在hadoop-2.6.0上编译运行自己编写的java代码

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何在hadoop-2.6.0上编译运行自己编写的java代码相关的知识,希望对你有一定的参考价值。

参考技术A 在不使用eclipse情况使java程序在hadoop 2.2中运行的完整过程。整个过程中其实分为java程序的编译,生成jar包,运行测试。
这三个步骤运用的命令都比较简单,主要的还是如何找到hadoop 2.2提供给java程序用来编译的jar包。具体可以查看:
HADOOP_HOME/share/hadoop/httpfs/tomcat/webapps/webhdfs/WEB-INF/lib目录
下面会通过一个在hadoop中创建一个目录的JAVA例子来进行演示
具体代码如下:

package com.wan.demo;

import java.io.IOException;
import org.apache.hadoop.conf.Configuration;
import org.apache.hadoop.fs.FileSystem;
import org.apache.hadoop.fs.Path;

public class HADemo

public static void main(String[] args)
// TODO Auto-generated method stub
mkdir(args[0]);


public static void mkdir(String dir)
Configuration configuration=new Configuration();
FileSystem fs;
try
fs = FileSystem.get(configuration);
fs.mkdirs(new Path(dir));
fs.close();
catch (IOException e)
// TODO Auto-generated catch block
e.printStackTrace();




把HADemo.java文件拷贝到linux环境中
配置HADOOP_HOME/bin到环境中,启动集群,进入HADemo.java文件目录中
注:下面的lib目录里面的文件由HADOOP_HOME/share/hadoop/httpfs/tomcat/webapps/ webhdfs/WEB-INF/lib目录中获取,下面做的目的是为了缩减命令长度
1.编译java
# mkdir class
#Javac -classpath .:lib/hadoop-common-2.2.0.jar:lib/hadoop-annotations-2.2.0.jar -d class HADemo.java
2.生成jar包
#jar -cvf hademo.jar -C class/ .
added manifest
adding: com/(in = 0) (out= 0)(stored 0%)
adding: com/wan/(in = 0) (out= 0)(stored 0%)
adding: com/wan/demo/(in = 0) (out= 0)(stored 0%)
adding: com/wan/demo/HADemo.class(in = 844) (out= 520)(deflated 38%)
3.测试运行
#hadoop jar hademo.jar com.wan.demo.HADemo /test
检测:
#hadoop fs -ls /

结束!本回答被提问者和网友采纳

以上是关于如何在hadoop-2.6.0上编译运行自己编写的java代码的主要内容,如果未能解决你的问题,请参考以下文章

如何在 Windows 上编译和使用 java-dbus 2.7?

为啥在我的 Mac 上编译的 C++ 库不能在服务器上运行?

C++/LapackE 代码在 Windows 上编译良好,但相同的代码在 Linux 上编译失败

在 Linux 服务器上编译代码似乎以不同的方式运行 [关闭]

如何使用 Webpack Encore 在 Heroku 上编译资产?

rust交叉编译配置:windows上编译linux可执行程序