Java实现hdfs文件读写
一、创建java maven工程对hdfs文件进行读取
1、新建maven工程
新建maven工程,选择quickstart方式
2、修改pom.xml
<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<maven.compiler.source>1.8</maven.compiler.source>
<maven.compiler.target>1.8</maven.compiler.target>
</properties>
<dependencies>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>4.12</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.apache.hadoop</groupId>
<artifactId>hadoop-hdfs</artifactId>
<version>2.6.0</version>
</dependency>
<dependency>
<groupId>org.apache.hadoop</groupId>
<artifactId>hadoop-common</artifactId>
<version>2.6.0</version>
</dependency>
<dependency>
<groupId>org.apache.hadoop</groupId>
<artifactId>hadoop-client</artifactId>
<version>2.6.0</version>
</dependency>
</dependencies>
3、java代码
package cn.kgc.kb11.test;
import org.apache.hadoop.conf.Configuration;
import org.apache.hadoop.fs.FileSystem;
import org.apache.hadoop.fs.LocatedFileStatus;
import org.apache.hadoop.fs.Path;
import org.apache.hadoop.fs.RemoteIterator;
import org.apache.hadoop.yarn.api.records.URL;
import java.io.File;
import java.io.IOException;
import java.net.URI;
import java.net.URISyntaxException;
public class TestHDFS {
FileSystem fs;
public void initFS(String fsPath, String user) {
Configuration conf = new Configuration();
try {
fs = FileSystem.get(new URI(fsPath), conf, user);
} catch (IOException e) {
e.printstacktrace();
} catch (InterruptedException e) {
e.printstacktrace();
} catch (URISyntaxException e) {
e.printstacktrace();
}
}
public void createDir(String path) {
try {
fs.mkdirs(new Path(path));
} catch (IOException e) {
e.printstacktrace();
}
}
public static void main(String[] args) {
TestHDFS test = new TestHDFS();
test.initFS(args[0], args[1]);
test.createDir(args[2]);
}
二、jar包打包
选择main class
显示全类名
修改java包名
把jar包拷贝到 虚拟机 186.100的/opt/software 路径下
用一下语句进行文件创建
hadoop jar _20210319hdfs.jar cn.kgc.kb11.test.TestHDFS hdfs://hadoop100:9000 root /testHDFS/java/abc/dfs
hadoop 50070下文件夹创建成功
三、args[]传参方法
代码中的args String数组
public static void main(String[] args) {
TestHDFS test = new TestHDFS();
test.initFS(args[0], args[1]);
test.createDir(args[2]);
}
编辑本类的配置
传递参数,用空格隔开
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。