Chiriri's blog Chiriri's blog
首页
  • Java

    • JavaSE
    • JavaEE
    • 设计模式
  • Python

    • Python
    • Python模块
    • 机器学习
  • Golang

    • Golang
    • gRPC
  • 服务器

    • Linux
    • MySQL
    • NoSQL
    • Kubernetes
  • 项目

    • 传智健康
    • 畅购商城
  • Hadoop生态

    • Hadoop
    • Zookeeper
    • Hive
    • Flume
    • Kafka
    • Azkaban
    • Hbase
    • Scala
    • Spark
    • Flink
  • 大数据项目

    • 离线数仓
  • 青训营

    • 第四届青训营
  • HTML

    • HTML
    • JavaScript
  • Vue

    • Vue2
    • TypeScript
    • Vue3
    • Uni-APP
  • 数据结构与算法
  • C语言
  • 考研数据结构
  • 计算机组成原理
  • 计算机操作系统
  • Java基础

    • Java基础
    • Java集合
    • JUC
    • JVM
  • 框架

    • Spring
    • Dubbo
    • Spring Cloud
  • 数据库

    • MySQL
    • Redis
    • Elasticesearch
  • 消息队列

    • RabbitMQ
    • RocketMQ
  • 408

    • 计算机网络
    • 操作系统
    • 算法
  • 分类
  • 标签
  • 归档
  • 导航站
GitHub (opens new window)

Iekr

苦逼后端开发
首页
  • Java

    • JavaSE
    • JavaEE
    • 设计模式
  • Python

    • Python
    • Python模块
    • 机器学习
  • Golang

    • Golang
    • gRPC
  • 服务器

    • Linux
    • MySQL
    • NoSQL
    • Kubernetes
  • 项目

    • 传智健康
    • 畅购商城
  • Hadoop生态

    • Hadoop
    • Zookeeper
    • Hive
    • Flume
    • Kafka
    • Azkaban
    • Hbase
    • Scala
    • Spark
    • Flink
  • 大数据项目

    • 离线数仓
  • 青训营

    • 第四届青训营
  • HTML

    • HTML
    • JavaScript
  • Vue

    • Vue2
    • TypeScript
    • Vue3
    • Uni-APP
  • 数据结构与算法
  • C语言
  • 考研数据结构
  • 计算机组成原理
  • 计算机操作系统
  • Java基础

    • Java基础
    • Java集合
    • JUC
    • JVM
  • 框架

    • Spring
    • Dubbo
    • Spring Cloud
  • 数据库

    • MySQL
    • Redis
    • Elasticesearch
  • 消息队列

    • RabbitMQ
    • RocketMQ
  • 408

    • 计算机网络
    • 操作系统
    • 算法
  • 分类
  • 标签
  • 归档
  • 导航站
GitHub (opens new window)
  • Hadoop

    • Hadoop
    • 环境安装
    • HDFS
    • winutils
    • IDEA中创建hadoop项目
    • Java操作
      • HDFS文件上传
      • HDFS下载到本地
      • HDFS追加
      • ls
      • listFiles
      • 移动或重命名
    • HDFS的数据流
    • NameNode 工作机制
    • DataNode
    • MapReduce
    • MapReduce原理
    • Yarn
    • Hadoop企业优化
    • Hadoop 新特性
    • 日志
    • Hadoop HA高可用
  • Zookeeper

  • Hive

  • Flume

  • Kafka

  • Azkaban

  • Hbase

  • Scala

  • Spark

  • Flink

  • 离线数仓

  • 青训营

  • DolphinScheduler

  • Doris

  • 大数据
  • Hadoop
Iekr
2021-09-06
目录

Java操作

# Java 操作

# HDFS 文件上传

//获取配置对象
Configuration configuration = new Configuration();
//设置配置  将默认分块设置为2
configuration.set("dfs.replication","2");
//新建HDFS对象
FileSystem fileSystem = FileSystem.get(URI.create("hdfs://hadoop102:8020"), configuration, "atguigu");

//操作集群
fileSystem.copyFromLocalFile(new Path("D:\\图\\QQ图片20190517141148.jpg"),new Path("/"));

//关闭资源
fileSystem.close();
1
2
3
4
5
6
7
8
9
10
11
12
  • get (URI.crate ("hdfs://hadoop 地址"),new Configuation (), 集群用户名); 获取 HDFS 操作对象
    • copyFromLocalFile (new Path ("本地路径"),new Path (集群路径)); 上传文件到 HDFS

# HDFS 下载到本地

fileSystem.copyToLocalFile(
        new Path("/QQ图片20190517141148.jpg"),
        new Path("d:/images")
);
1
2
3
4

# HDFS 追加

FSDataOutputStream append = fileSystem.append(
        new Path("1.txt")
);

//写入流
append.write("testApi".getBytes(StandardCharsets.UTF_8));

//关闭流
IOUtils.closeStream(append);
1
2
3
4
5
6
7
8
9

# ls

//ls操作 返回数组
FileStatus[] fileStatuses = fileSystem.listStatus(new Path("/"));

for (FileStatus fileStatus : fileStatuses) {
    //获取文件对象路径
    System.out.println(fileStatus.getPath());
    //获取文件所属者
    System.out.println(fileStatus.getOwner());
1
2
3
4
5
6
7
8

# listFiles

//获取当前所有文件的迭代器 无论是文件夹还是文件  true返回一个迭代器 
RemoteIterator<LocatedFileStatus> locatedFileStatusRemoteIterator = fileSystem.listFiles(
        new Path("/"),
        true);
while (locatedFileStatusRemoteIterator.hasNext()) {
    LocatedFileStatus fileStatus = locatedFileStatusRemoteIterator.next();

    System.out.println(fileStatus.getPath());
    //获取当前文件的块 返回数组
    BlockLocation[] blockLocations = fileStatus.getBlockLocations();
    for (int i = 0; i < blockLocations.length; i++) {
        System.out.println("第" + i + "块");
        //获取当前文件 每个块存储的集群情况
        String[] hosts = blockLocations[i].getHosts();
        for (String host : hosts) {
            System.out.print(host + " ");

        }
        System.out.println();
    }


}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23

# 移动或重命名

//重命名或者移动文件
fileSystem.rename(new Path("/QQ图片20190517141148.jpg"),new Path("/test/233.jpg"));
1
2
编辑 (opens new window)
上次更新: 2023/12/06, 01:31:48
IDEA中创建hadoop项目
HDFS的数据流

← IDEA中创建hadoop项目 HDFS的数据流→

最近更新
01
k8s
06-06
02
进程与线程
03-04
03
计算机操作系统概述
02-26
更多文章>
Theme by Vdoing | Copyright © 2022-2025 Iekr | Blog
  • 跟随系统
  • 浅色模式
  • 深色模式
  • 阅读模式