如何在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支持C++,Java开发语言

Hadoop带有用Java语言编写的框架,因此运行在 Linux 生产平台上是非常理想的。Hadoop 上的应用程序也可以使用其他语言编写,比如 C++。MapReduce是处理大量半结构化数据集合的编程模型。编程模型是一种处理并结构化特定问题的方式。

例如,在一个关系数据库中,使用一种集合语言执行查询,如SQL。告诉语言想要的结果,并将它提交给系统来计算出如何产生计算。还可以用更传统的语言(C++,Java),一步步地来解决问题。这是两种不同的编程模型,MapReduce就是另外一种。

扩展资料

特点

1、确定哪些数据属于企业的敏感数据。根据公司的隐私保护政策,以及相关的行业法规和政府规章来综合确定。

2、确保数据保护方案同时采用了隐藏和加密技术,尤其是如果我们需要将敏感数据在Hadoop中保持独立的话。

3、确保需要加密的时候有合适的技术(比如Java、Pig等)可被部署并支持无缝解密和快速访问数据。

参考资料来源:百度百科—Hadoop   

(1)首先将好的Hadoop源码解压,将解压后顶级目录和lib中的压缩文件加载到你的工程中(他们包括了hadoop源码和一些需要的第三方源码),然后就可以编写hadoop程序了。

(2)编写好hadoop程序,调试没有错误后,就可以通过(jar -cvf yourname.jar -C bin/ .),将工程中bin目录下编译好的.class文件打包成你想要的.jar压缩文件包。

(3)将yourname.jar压缩包复制到你的hadoop目录下,通过命令hadoop jar yourname.jar yourMainClass /data/inputfile /data/outputfile。如果是在完全分布式的hadoop配置环境下,需要通过hadoop命令在hadoop的hdfs系统中创建文件目录然后将本地的输入数据复制到hdfs系统中,命令有:

hadoop fs -mkdir data:创建一个名问data的文件夹

hadoop fs -ls :查看hdfs文件系统中的文件目录

hadoop fs -copyFromLocal /data/input /user/data :将本地文件input复制到hdfs系统的/user/data目录下

hadoop fs -copyToLocal /user/data/output/ /data/ :将hdfs系统中的output文件夹复制到本地系统中。


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

原文地址: http://outofmemory.cn/yw/12075347.html

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

发表评论

登录后才能评论

评论列表(0条)

保存