Hadoop的一些基本操作

下面的就是hadoop的一些文件基本操作,主要有上传文件,下载文件和删除文件;不过要使用以下功能的需要注意一些地方:

1、要注意是否已经在windows系统配置了域名与ip的映射关系;

2、要操作hdfs系统上的文件时,可以用"/"来代替hdfs的根路径(hdfs://hadoop01:9000/)

 


import java.io.FileInputStream;
import java.io.FileOutputStream;
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;
import org.junit.Before;
import org.junit.Test;


public class HadoopDemo {
 private static FileSystem fs = null;
 @Before
 public  void init()throws Exception{
  //如果没有第三个参数,则在上传文件的时候会出现没有权限的错误,不过这样用是不安全的
  //hadoop提供一个叫做kerberos的框架来解决其安全问题
        fs = FileSystem.get(new URI("hdfs://hadoop1:9000"), new Configuration(), "root");
 }
 
 /*
  * 下载文件
  */
 @Test
 public void downLoad()throws Exception{
  InputStream in = fs.open(new Path("/jdk.bin"));     //打开一个输入流
  OutputStream out = new FileOutputStream("C:\\jdk_1.7");  //创建一个文件输出流
  IOUtils.copyBytes(in, out, 4096, true);   //第三个参数表示缓存的字节数、第四个参数表示当下载完成后,自动关闭流
 }
 
 /*
  * 上传文件
  */
 @Test
 public void upLoad()throws Exception{
  InputStream in = new FileInputStream("E://android-sdk_r24.3.3-windows.zip"); //创建一个本地的文件输入流
  OutputStream out = fs.create(new Path("/ni/android.zip")); //创建一个hdfs的输出流
  IOUtils.copyBytes(in, out, 4096, true);
 }
 
 /*
  * 删除文件
  */
 @Test
 public void delete()throws Exception{
  fs.delete(new Path("/jdk.bin"),true);
 }
 public static void main(String[] args) throws Exception {
  // TODO Auto-generated method stub
  
  

 }

}

转载于:https://www.cnblogs.com/0726b/p/4696287.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值