Java代码复制tar包 java如何把复制的代码运行

hadoop里怎么运行java的tar包第一种:原生态运行jar包
1,利用eclipse编写Map-Reduce方法,一般引入Hadoop-core-1.1.2.jar 。注意这里eclipse里没有安装hadoop的插件,只是引入其匝包,该eclipse可以安装在windows或者linux中,如果是在windows中安装的 , 且在其虚拟机安装的linux,可以通过共享文件夹来实现传递 。
2,编写要测试的数据,如命名为tempdata
3,利用eclipse的export来打包已编写好的,在利用eclipse打包jar的时候 , 只需要选择src即可 , 一般只打包程序文件,并且需要选择main class,将该jar放到如/home/hadoop/docum/Test.jar
4,将要分析的数据传到hdfs上
hadoop fs -put /home/hadoop/myhadoopdata/tempdata./testdata/
5,开始执行jar
hadoop jar /home/hadoop/Docum/Test.jar/user/hadoop/temperatur output
这是一种利用jar来运行的 。
这里Test.jar在本地,jar没必要上传到hdfs上
参数依次为
本地mapred程序 , hdfs的测试数据即输入文件,输出文件夹 。
hadoop jar /home/hadoop/Temperature.jar inputpath outputpath
注意:这里可以不需要指定类的名称,而输出的文件夹outputpath不能事先已经存在 。
第二种:伪分布式下运行WordCount
1,拷贝源代码
cp /usr/local/hadoop1.1.2/src/examples/org/apache/hadoop/examples/WordCount.java~/ygch/hadoop/
2,编译源代码,放到指定的文件夹如这里的class下
javac
-classpath /usr/local/hadoop1.1.2/hadoop-core1.1.2.jar:
/usr/local/hadoop1.1.2/lib/commons-cli-1.2.jarWordCount.java-d class,
利用-classpath选项指定WordCount需要的jar包 。hadoop目录下存放jar包的位置有两个:根目录和/lib目录 。然后我们可以通过jar tvf*.jar查看jar包内容,进而可以知道WordCount需要的是哪几个jar包 。
-d选项指定生成的类文件的位置,在编译的时候这个选项必须重新指定,不能让class文件生成在当前目录下 。
3,将class文件打包成一个jar包:
jar cvf WordCount.jar -C classes/.
注意不要忘记最后有一个点.,这个点点必须和前面要有空格,否则jar命令报错 。该点指示jar命令的文件列表,表示指定目录下的所有文件 。
4,生成input文件:
由于运行hadoop时指定的输入文件只能是HDFS文件系统中的文件,所以我们必须将要进行wordcount的文件从本地文件系统拷贝到HDFS文件系统中 。
hadoop fs -mkdir input
hadoop fs -put testfile input
5. 运行jar包:
hadoop jar WordCount.jar org.apache.hadoop.examples.WordCount input output
在运行命令中由于WordCount.java中包括package信息,所以我们在指定类时要包含package的完整信息 。
6. 查看结果
在hadoop程序运行完后 , 结果会放在output目录下,该目录是自动生成的 。查看命令为:
hadoop fs -cat output/part-r-00000
使用-cat或者-text都行
第三种Hadoop直接执行Class文件
可以事先在eclipse中编译好class,然后直接利用hadoop来执行该class文件
在Hadoop集群中运行作业的时候,必须要将程序打包为jar文件 。
在Hadoop本地和伪分布中可以运行jar文件,也可以直接运行class文件,注意直接运行class文件 , 必须是没有map和reducer的,直接获取FileSystem来进行操作 。
如果类有包名,拷贝的时候也要将其包名拷贝 , 然后
Java能否对压缩文件进行操作,例如:对zip,rar , tar等文件进行复制 。首先看你是什么操作系统
其次你说的都不是问题 压缩 拷贝 删除 解压缩 这些网上都有现成的例子
java 调用linux命令 解压 tar.Z 包的路径问题没使用过这样的命令来解压的,不过你那样说了,可以使用File这个的常量separatorChar和separator来自己根据系统来判断是什么符号作为文件路径分割的嘛,好久没用都忘了改用哪个了,自己看吧!

推荐阅读