Hadoop Java API操作HDFS文件系统(Mac)
2021-05-19 15:28
标签:from eclipse hosts files mac before java api 开始 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、开始写代码 Hadoop Java API操作HDFS文件系统(Mac) 标签:from eclipse hosts files mac before java api 开始 原文地址:https://www.cnblogs.com/chaofan-/p/9742727.htmlpackage 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();
}
}
上一篇:C语言记忆
文章标题:Hadoop Java API操作HDFS文件系统(Mac)
文章链接:http://soscw.com/index.php/essay/87687.html