在eclipse新建一个java的项目,然后在根目录创建一个新的文件夹
把hadoop所需要的jar包导入
hdfs dfs -help查看所有基本的dfs命令
9000端口是NameNode的RPC端口,50070是NameNode的http端口
1、把hadoop-2.6.5上传上去
2、创建一个lib放置jar包的地方,然后把hadoop有关的lib里的jar包全部放入进去
3、Build Path 出现这东西,右边点击Add Library… 把刚才创建的lib导入生效
注
如果你上传,重命名什么都不报错但是web页面不显示没有效果,那就是你配置没有生效, 右击项目 Build Path 一下,让你新创的文件夹变成源文件,这样才能找到你的xml配置
以下代码块,高能预警!!!
// 引入配置文件
Configuration conf=null;
// 创建文件流 --- 引用的是hadoop内部封装的方法
FileSystem fs = null;
@Before
public void conn() throws Exception{
// 设置是否读取配置信息
conf=new Configuration(true);
fs=FileSystem.get(conf);
}
@After
public void close() throws Exception{
//关流
fs.close();
}
@Test
public void mkdir() throws Exception{
// new一个文件
Path f = new Path("/aaa/");
// 判断文件是否存在
if(fs.exists(f)){
// 如果存在删除
fs.delete(f);
}
// 没有的话就创建
fs.mkdirs(f);
}
@Test
public void exist() throws Exception{
Path f = new Path("/user/root/aaa.txt");
if(fs.exists(f)){
System.out.println("文件存在"+true);
}
}
// 创建文件
@Test
public void tc() throws Exception{
Path p1=new Path("/aaa/bbb");
boolean mkdirs = fs.mkdirs(p1);
System.out.println("mkdirs"+mkdirs);
}
// 重命名
@Test
public void rn() throws Exception{
Path p1=new Path("/user/root/aaa.txt");
Path p2=new Path("/user/root/bbb.txt");
// 重命名
boolean rename = fs.rename(p1, p2);
System.out.println("rename"+rename);
}
// 上传文件
@Test
public void uploadFile() throws Exception{
// 输出位置
Path inputFile=new Path("/user/root/bbb.txt");
// 相当于文件内容的输出
FSDataOutputStream output=fs.create(inputFile);
// 输入位置,相当于文件内容的输入
InputStream input =new BufferedInputStream(new FileInputStream(new File("E:\\123.txt")));
IOUtils.copyBytes(input, output, conf, true);
}
//下载文件
@Test
public void downloadFile() throws Exception{
//上传文件到HDFS
Path src = new Path("/user/root/aaa.txt");
//输入源:将我集群中的文件作为输入
FSDataInputStream input=fs.open(src);
//输出位置
FileOutputStream output=new FileOutputStream("E://a.txt"); //E盘下
IOUtils.copyBytes(input, output, conf, true);
}