1.基本操作
(1)安装eclipse,在终端中进入eclipse安装目录,执行./eclipse命令打开eclipse;或在桌面创建eclipse启动器打开eclipse;
(2)建立一个新的项目:File-new-java project:example
(3)为项目添加hadoop 相关jar包:
a.右击工程名--bulid path-configure bulid path-libraries-add extemal jars
b.打开Hadoop安装目录下的share-hadoop文件夹:
添加common目录下的所有jar包及common/lib 下的所有jar包
添加hdfs目录下的所有jar包及hdfs/lib 下的所有jar包
添加mapreduce目录下的所有jar包及mapreduce/lib 下的所有jar包
添加yarn目录下的所有jar包及yarn/lib 下的所有jar包
(4)新建一个package,例如com.test.org,在这个包里建立新的Java class,以实现所需操作。
(5)导出:右击所要导出的类-export-Java-Java file-jar file(填入所需保存的位置及命名:/home/linux/load.jar)-next-next(点击 browse 添加主类)
(6)执行hadoop jar load.jar (+路径等)(添加主类)
Hadoop jar load com.test.org.load (+路径等)(未添加主类)
2.实现建立及删除文件夹
(1)建立一个文件夹(hadoop fs -mkdir /test/example)
package com.test.data;
import java.io.IOException;
import org.apache.hadoop.conf.Configuration;
import org.apache.hadoop.fs.FileSystem;
import org.apache.hadoop.fs.Path;
public class mkdir {
public static void main(String[] args) throws IOException{
String str1=args[0];
Configuration configuration =new Configuration();
FileSystem fileSystem=FileSystem.get(configuration);
fileSystem.mkdirs(new Path(str1));
}
}
删除文件夹
package com.test.data;
import java.io.IOException;
import org.apache.hadoop.conf.Configuration;
import org.apache.hadoop.fs.FileSystem;
import org.apache.hadoop.fs.Path;
public class delete {
public static void main(String[] args) throws IOException{
String str1=args[0];
Configuration configuration =new Configuration();
FileSystem fileSystem=FileSystem.get(configuration);
fileSystem.mkdirs(new Path(str1));
}
}
3.上传数据(hadoop fs -put example.txt /example)
package com.test.data;
import java.io.BufferedInputStream;
import java.io.FileInputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;
import java.net.URI;
import org.apache.hadoop.conf.Configuration;
import org.apache.hadoop.fs.FileSystem;
import org.apache.hadoop.fs.Path;
import org.apache.hadoop.io.IOUtils;
public class load {
public static void main(String[] args) throws IOException{
String str1=args[0];
String str2=args[1];
InputStream in=new BufferedInputStream(new FileInputStream(str1));
Configuration conf=new Configuration();
FileSystem fs=FileSystem.get(URI.create(str2), conf);
OutputStream out=fs.create(new Path(str2));
IOUtils.copyBytes(in, out,4096, true);
}
}
4.读取数据(hadoop fs -cat /word)
package com.test.data;
import java.io.IOException;
import java.io.InputStream;
import org.apache.hadoop.conf.Configuration;
import org.apache.hadoop.fs.FileSystem;
import org.apache.hadoop.fs.Path;
import org.apache.hadoop.io.IOUtils;
public class read {
public static void main(String[] args) throws IOException{
String uri=args[0];
Configuration conf=new Configuration();
FileSystem fs=FileSystem.get(conf);
InputStream in=null;
try {
in=fs.open(new Path(uri));
IOUtils.copyBytes(in, System.out, 4096,false);
} finally {
IOUtils.closeStream(in);
}
}
}