Hadoop Java API操作HDFS文件系统(Mac)

2021-05-19 15:28

阅读:475

标签:from   eclipse   hosts   files   mac   before   java   api   开始   

1、下载Hadoop的压缩包 tar.gz   https://mirrors.tuna.tsinghua.edu.cn/apache/hadoop/common/stable/

2、关联jar包

  在eclipse中新建项目中,建lib文件夹,把要用的jar包拷贝进来,jar包在解压好的 hadoop-2.9.1/share/hadoop中

  我们这里不拷贝,选择关联你所存放在电脑上的路径

  在项目上右键选择 Bulid Path > Add Libraries > User Library > ok > new > 命名 > ok > Add External JARs > 选择jar包

  技术分享图片  

  技术分享图片

      技术分享图片

 

  然后会看到项目下多了个包

  技术分享图片

3、开始写代码

package bigdata.hdfs;

import java.net.URI;

import org.apache.hadoop.conf.Configuration;
import org.apache.hadoop.fs.FileSystem;
import org.apache.hadoop.fs.Path;
import org.junit.Before;
import org.junit.Test;

/* 客户端操作hdfs时,需要一个用户身份,
 * 默认情况下,hdfs客户端会从jvm中获取一个参数来作为自己的用户身份:-DHADOOP_USER_NAME=hadoop,
 * 解决方法方法有两种,我这里用第二种:
 * 1、设置外部参数;
 * 2、在代码中写明,用get方法时,选择三个参数的,将用户名传进去;
 */
public class HdfsClientDemo {
    FileSystem fs = null;
    
    @Before
    public void init() throws Exception {
        Configuration conf = new Configuration();
        //这里要识别master的话,需要修改本机hosts文件
        conf.set("fs.defaultFS", "hdfs://master:9000");
        //拿到一个文件操作系统的客户端实例对象,第三个参数就是用户身份,写你的master上的用户名
        fs = FileSystem.get(new URI("hdfs://master:9000"), conf, "wang");
    }
    
   //上传 @Test
public void testUpload() throws Exception { fs.copyFromLocalFile(new Path("/Users/wang/Desktop/upload.jpg"),new Path("/upload_copy.jpg")); fs.close(); }
   //下载 @Test
public void testDownload() throws Exception { fs.copyToLocalFile(new Path("/upload_copy.jpg"), new Path("/Users/wang/Desktop/download.jpg")); fs.close(); } }

 

  

Hadoop Java API操作HDFS文件系统(Mac)

标签:from   eclipse   hosts   files   mac   before   java   api   开始   

原文地址:https://www.cnblogs.com/chaofan-/p/9742727.html


评论


亲,登录后才可以留言!