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

如何在hadoop-2.6.0上编译运行自己编写的java代码?,第1张

在不使用eclipse情况使java程序在hadoop 2.2中运行的完整过程。整个过程中其实分为java程序的编译,生成jar包,运行测试。\x0d\x0a这三个步骤运用的命令都比较简单,主要的还是如何找到hadoop 2.2提供给java程序用来编译的jar包。具体可以查看:\x0d\x0aHADOOP_HOME/share/hadoop/httpfs/tomcat/webapps/webhdfs/WEB-INF/lib目录\x0d\x0a下面会通过一个在hadoop中创建一个目录的JAVA例子来进行演示\x0d\x0a具体代码如下:\x0d\x0a\x0d\x0apackage com.wan.demo\x0d\x0a\x0d\x0aimport java.io.IOException\x0d\x0aimport org.apache.hadoop.conf.Configuration\x0d\x0aimport org.apache.hadoop.fs.FileSystem\x0d\x0aimport org.apache.hadoop.fs.Path\x0d\x0a\x0d\x0apublic class HADemo {\x0d\x0a\x0d\x0apublic static void main(String[] args) {\x0d\x0a// TODO Auto-generated method stub\x0d\x0amkdir(args[0])\x0d\x0a}\x0d\x0a\x0d\x0apublic static void mkdir(String dir){\x0d\x0aConfiguration configuration=new Configuration()\x0d\x0aFileSystem fs\x0d\x0atry {\x0d\x0afs = FileSystem.get(configuration)\x0d\x0afs.mkdirs(new Path(dir))\x0d\x0afs.close()\x0d\x0a} catch (IOException e) {\x0d\x0a// TODO Auto-generated catch block\x0d\x0ae.printStackTrace()\x0d\x0a}\x0d\x0a}\x0d\x0a}\x0d\x0a\x0d\x0a把HADemo.java文件拷贝到linux环境中\x0d\x0a配置HADOOP_HOME/bin到环境中,启动集群,进入HADemo.java文件目录中\x0d\x0a注:下面的lib目录里面的文件由HADOOP_HOME/share/hadoop/httpfs/tomcat/webapps/ webhdfs/WEB-INF/lib目录中获取,下面做的目的是为了缩减命令长度\x0d\x0a1.编译java\x0d\x0a# mkdir class\x0d\x0a#Javac -classpath .:lib/hadoop-common-2.2.0.jar:lib/hadoop-annotations-2.2.0.jar -d class HADemo.java\x0d\x0a2.生成jar包\x0d\x0a#jar -cvf hademo.jar -C class/ .\x0d\x0aadded manifest\x0d\x0aadding: com/(in = 0) (out= 0)(stored 0%)\x0d\x0aadding: com/wan/(in = 0) (out= 0)(stored 0%)\x0d\x0aadding: com/wan/demo/(in = 0) (out= 0)(stored 0%)\x0d\x0aadding: com/wan/demo/HADemo.class(in = 844) (out= 520)(deflated 38%)\x0d\x0a3.测试运行\x0d\x0a#hadoop jar hademo.jar com.wan.demo.HADemo /test\x0d\x0a检测:\x0d\x0a#hadoop fs -ls /\x0d\x0a \x0d\x0a结束!

当Hadoop运行子程序时,可能会出现“Picked up _JAVA_OPTIONS: -XmxXXXm -XmsXXXm -XX:+UseSerialGC”的警告信息,同时子程序运行失败并提示“Error: Could not find or load main class pimainclass”的错误信息。这种情况通常是由于环境变量_JAVA_OPTIONS引起的。这个环境变量可以用来设置JVM的启动参数,然而如果_JAVA_OPTIONS中的参数设置不正确,就会导致错误的发生。解决方法如下:

检查_JAVA_OPTIONS环境变量是否正确设置。可以使用以下命令来查看_JAVA_OPTIONS的值:plaintextCopy codeecho $JAVA_OPTIONS

如果_JAVA_OPTIONS中设置了不正确的参数,可以将其设置为正确的值,例如:plaintextCopy codeexport JAVA_OPTIONS="-Xmx1024m -Xms256m"

将_JAVA_OPTIONS环境变量设置为一个空值。可以使用以下命令来将_JAVA_OPTIONS设置为空值:plaintextCopy codeexport JAVA_OPTIONS=""

这将清除_JAVA_OPTIONS中设置的参数,以便Hadoop子程序可以顺利运行。

请注意,如果_JAVA_OPTIONS环境变量在其他程序中被使用,可能需要更加谨慎地修改它的值。建议在修改_JAVA_OPTIONS之前备份原始值,以便在需要时可以恢复到原始状态。

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 /


欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/yw/7789707.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-04-09
下一篇2023-04-09

发表评论

登录后才能评论

评论列表(0条)

    保存