Hadoop eclipse使用jar运行实例
来源:互联网 发布:java语法分析器 编辑:程序博客网 时间:2024/06/05 07:12
一、.在eclipse中使用编写程序,然后打成jar包,
程序代码:
- package tju.chc;
- import java.io.File;
- import java.io.IOException;
- import java.util.Scanner;
- import org.apache.hadoop.conf.Configuration;
- import org.apache.hadoop.fs.FSDataInputStream;
- import org.apache.hadoop.fs.FSDataOutputStream;
- import org.apache.hadoop.fs.FileStatus;
- import org.apache.hadoop.fs.FileSystem;
- import org.apache.hadoop.fs.Path;
- public class ResultFilter {
- public static void main(String[] args) throws IOException{
- Configuration conf = new Configuration();
- //以下两句中,hdfs和local分别对应HDFS实例和本地文件系统实例
- FileSystem hdfs = FileSystem.get(conf);
- FileSystem local = FileSystem.getLocal(conf);
- Path inputDir , localFile;
- FileStatus[] inputFiles;
- FSDataOutputStream out = null;
- FSDataInputStream in = null;
- Scanner scan;
- String str;
- byte[] buf;
- int singleFileLines;
- int numLines, numFiles, i;
- if(args.length != 4) {
- //输入参数数量不够,提示参数格式后终止程序执行
- System.out.println("usage resultFilter <dfs path><local path><match str><single file lines>");
- return;
- }
- inputDir = new Path(args[0]);
- singleFileLines = Integer.parseInt(args[3]);
- inputFiles = hdfs.listStatus(inputDir);
- numLines = 0;
- numFiles = 1;
- localFile = new Path(args[1]);
- if(local.exists(localFile)){
- local.delete(localFile, true);
- }
- for(i = 0; i < inputFiles.length; i++){
- if(inputFiles[i].isDirectory() == true){
- continue;
- }
- System.out.println(inputFiles[i].getPath().getName());
- in = hdfs.open(inputFiles[i].getPath());
- scan = new Scanner(in);
- while(scan.hasNext()){
- str = scan.nextLine();
- if(str.indexOf(args[2]) == -1){
- continue;
- }
- numLines++;
- if(numLines == 1){
- localFile = new Path(args[1] + File.separator + numFiles);
- out = local.create(localFile);
- numFiles++;
- }
- buf = (str + "\n").getBytes();
- out.write(buf, 0 , buf.length);
- if(numLines == singleFileLines){
- out.close();
- numLines = 0;
- }
- }
- scan.close();
- in.close();
- }
- if(out != null){
- out.close();
- }
- }
- }
打包可参考
转自http://www.cnblogs.com/mq0036/p/3885407.html
1、首先要确认自己写的程序有没有报错。
2、第一次我写的是Web Project到现在,我一直没有执行成功,所以最好创建的是JavaProject
打包步骤:
1.在项目上,右键,选择Export。
2.进入到下图界面,选择Java 下面的JAR file
3.选择项目,确认必要的文件是否选中,选择保存jar文件包的路径,如下图
4.完成步骤3之后,点击Next,进入如下图界面:
5.直接点Next,进入下面的界面:
6.直接点Finish,jar文件包完成。
备注:
1.可以根据自己的需要选择一些条件。
2.打开jar文件包下面的META-INF\MANIFEST.MF这个文件,查看信息是否正确。
Class-Path:这个导入的是,本项目需要的一些其他的jar文件包
Main-Class:这个是main()方法所在的类的.class文件的路径,并且在最后有个回车符(如:上面显示的是,main()方法在test包下面的PostgresSQLSync类中。)
在windows下面运行jar包,确认导出的jar包是否存在问题:
1.打开DOS命令:通过cd切换到本项目路径下,然后,输入java -jar xxx.jar。
如果输入的信息,和运行项目时,在控制台输出的信息一样,就表示jar文件包已经完成。
下面是我碰到的一些问题:
1.在DOS命令中,出现如下错误时,表示Main-Class没有在META-INF\MANIFEST.MF这个文件中配置。
2.在DOS命令中,出现如下错误时,表示在Class-Path:或者在Main-Class:后面没有输入空格。
二、进入Hadoop根目录,运行
- bin/hadoop jar ~/local/chc/resultFilter.jar tju/chc/ResultFilter hdfs://master:9000/test/input/ file:///home/hadoopuser1/local/chc/tmp/ txt 50
注意,
1、运行命令前确保,hdfs已启动。 启动命令: bin/start-dfs.sh (sbin/start-dfs.sh) 或者 sbin/start-all.sh (hadoop 2.6.4版本)
2、运行过程可能会遇到权限问题
- Hadoop eclipse使用jar运行实例
- Hadoop使用jar运行实例
- hadoop运行eclipse生成jar
- hadoop运行eclipse简单实例
- linux下jar命令和eclipse两种方式生成wordcount.jar包和hadoop下wordcount实例的运行
- hadoop开发:eclipse运行wordcount实例
- 020_自己编写的wordcount程序在hadoop上面运行,不使用插件hadoop-eclipse-plugin-1.2.1.jar
- Hadoop运行Jar配置
- hadoop 运行jar文件
- Hadoop运行jar文件
- hadoop运行WordCount.jar
- hadoop eclipse jar打包
- hadoop eclipse 导出jar
- 【hadoop学习笔记】4.eclipse运行wordcount实例
- Hadoop在Linux下伪分布式的安装以及wordcount实例的运行还有Eclipse的使用
- hadoop wordcount运行实例
- hadoop-运行WordCount实例
- Hadoop 命令行运行实例
- Tensorflow学习
- underscore.string
- eval()函数的注意事项
- 动态规划 04题
- CSUOJ 1869 树上最大数
- Hadoop eclipse使用jar运行实例
- jQuery EasyUI插件
- zoj 3870 Paint the Grid Again( 拓扑排序字典序)
- Web Sercice基础使用-->天气,号码归属地
- Matlab Online 体验
- git push错误failed to push some refs to的解决
- 谁获得了最高奖学金[结构体数组]
- java学习中遇到的Scanner死循环问题
- ArrayList类的实现