Java: Hadoop文件系统的读写操作

简介: Java: Hadoop文件系统的读写操作

所需jar包路径:


hadoop-2.8.5/share/hadoop/common
hadoop-2.8.5/share/hadoop/common/bin
hadoop-2.8.5/share/hadoop/hdfs
hadoop-2.8.5/share/hadoop/hdfs/bin

java代码实例


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 java.io.*;
import java.net.URI;
import java.net.URISyntaxException;
/**
 * HDFS操作,需要导入common和hdsf文件夹下的jar
 */
public class HDSFDemo {
    private FileSystem fs = null;
    HDSFDemo() throws IOException, URISyntaxException, InterruptedException {
        Configuration conf = new Configuration();
        fs = FileSystem.get(new URI("hdfs://master:9000"), conf, "root");
    }
    /**
     * 下载文件
     *
     * @throws IOException
     */
    public void download() throws IOException {
        InputStream in = fs.open(new Path("/java"));
        OutputStream out = new FileOutputStream("/Users/Desktop");
        IOUtils.copyBytes(in, out, 4096, true);
    }
    /**
     * 上传文件
     *
     * @throws IOException
     */
    public void upload() throws IOException {
        System.out.println("开始上传...");
        InputStream in = new FileInputStream("/Users/Desktop/compare.py");
        OutputStream out = this.fs.create(new Path("/compare.py"));
        IOUtils.copyBytes(in, out, 4096, true);
    }
    /**
     * 删除文件
     *
     * @throws IOException
     */
    public void delete() throws IOException {
        boolean ret = this.fs.delete(new Path("/java"), true);
        System.out.println("文件删除结果:" + ret);
    }
    /**
     * 创建文件夹
     *
     * @throws IOException
     */
    public void mkdir() throws IOException {
        boolean ret = this.fs.mkdirs(new Path("/temp"));
        System.out.println("文件创建成功:" + ret);
    }
    public static void main(String[] args) throws URISyntaxException, IOException, InterruptedException {
        HDSFDemo hdfs = new HDSFDemo();
        hdfs.upload();
    }
}

备注:

URI的端口号一定要和配置文件中的端口号一致


问题:

log4j:WARN Please initialize the log4j system properly


可参考:log4j:WARN Please initialize the log4j system properly 问题解决

相关文章
|
9月前
|
Java API 数据处理
深潜数据海洋:Java文件读写全面解析与实战指南
通过本文的详细解析与实战示例,您可以系统地掌握Java中各种文件读写操作,从基本的读写到高效的NIO操作,再到文件复制、移动和删除。希望这些内容能够帮助您在实际项目中处理文件数据,提高开发效率和代码质量。
225 4
|
10月前
|
存储 分布式计算 Hadoop
基于Java的Hadoop文件处理系统:高效分布式数据解析与存储
本文介绍了如何借鉴Hadoop的设计思想,使用Java实现其核心功能MapReduce,解决海量数据处理问题。通过类比图书馆管理系统,详细解释了Hadoop的两大组件:HDFS(分布式文件系统)和MapReduce(分布式计算模型)。具体实现了单词统计任务,并扩展支持CSV和JSON格式的数据解析。为了提升性能,引入了Combiner减少中间数据传输,以及自定义Partitioner解决数据倾斜问题。最后总结了Hadoop在大数据处理中的重要性,鼓励Java开发者学习Hadoop以拓展技术边界。
320 7
|
12月前
|
分布式计算 Java Hadoop
linux中HADOOP_HOME和JAVA_HOME删除后依然指向旧目录
通过以上步骤,可以有效地解决 `HADOOP_HOME`和 `JAVA_HOME`删除后依然指向旧目录的问题。确保在所有相关的配置文件中正确设置和删除环境变量,并刷新当前会话,使更改生效。通过这些措施,能够确保系统环境变量的正确性和一致性。
210 1
|
分布式计算 NoSQL Java
Hadoop-32 ZooKeeper 分布式锁问题 分布式锁Java实现 附带案例和实现思路代码
Hadoop-32 ZooKeeper 分布式锁问题 分布式锁Java实现 附带案例和实现思路代码
187 2
|
分布式计算 Java Hadoop
Hadoop-30 ZooKeeper集群 JavaAPI 客户端 POM Java操作ZK 监听节点 监听数据变化 创建节点 删除节点
Hadoop-30 ZooKeeper集群 JavaAPI 客户端 POM Java操作ZK 监听节点 监听数据变化 创建节点 删除节点
225 1
|
SQL 分布式计算 Java
Hadoop-11-MapReduce JOIN 操作的Java实现 Driver Mapper Reducer具体实现逻辑 模拟SQL进行联表操作
Hadoop-11-MapReduce JOIN 操作的Java实现 Driver Mapper Reducer具体实现逻辑 模拟SQL进行联表操作
193 3
|
分布式计算 资源调度 Hadoop
Hadoop-10-HDFS集群 Java实现MapReduce WordCount计算 Hadoop序列化 编写Mapper和Reducer和Driver 附带POM 详细代码 图文等内容
Hadoop-10-HDFS集群 Java实现MapReduce WordCount计算 Hadoop序列化 编写Mapper和Reducer和Driver 附带POM 详细代码 图文等内容
292 3
|
分布式计算 Hadoop 网络安全
Hadoop-08-HDFS集群 基础知识 命令行上机实操 hadoop fs 分布式文件系统 读写原理 读流程与写流程 基本语法上传下载拷贝移动文件
Hadoop-08-HDFS集群 基础知识 命令行上机实操 hadoop fs 分布式文件系统 读写原理 读流程与写流程 基本语法上传下载拷贝移动文件
167 1
|
存储 机器学习/深度学习 缓存
Hadoop-07-HDFS集群 基础知识 分布式文件系统 读写原理 读流程与写流程 基本语法上传下载拷贝移动文件
Hadoop-07-HDFS集群 基础知识 分布式文件系统 读写原理 读流程与写流程 基本语法上传下载拷贝移动文件
264 1
|
分布式计算 资源调度 Hadoop
大数据-01-基础环境搭建 超详细 Hadoop Java 环境变量 3节点云服务器 2C4G XML 集群配置 HDFS Yarn MapRedece
大数据-01-基础环境搭建 超详细 Hadoop Java 环境变量 3节点云服务器 2C4G XML 集群配置 HDFS Yarn MapRedece
323 4