`

JAVA上传文件到HDFS

    博客分类:
  • HDFS
 
阅读更多

 

package com.hqgf.testhdfs;

import java.io.IOException;
import java.net.URI;

import org.apache.hadoop.conf.Configuration;
import org.apache.hadoop.fs.FileStatus;
import org.apache.hadoop.fs.FileSystem;
import org.apache.hadoop.fs.Path;

public class Hdfs {
	static Configuration conf = new Configuration();

    static {
        conf.set("fs.defaultFS", "hdfs://cluster");
        conf.set("dfs.nameservices", "cluster");
        conf.set("dfs.ha.namenodes.cluster", "nn1,nn2");
        conf.set("dfs.namenode.rpc-address.cluster.nn1", "xxx.xx.x.xxx:8020");
        conf.set("dfs.namenode.rpc-address.cluster.nn2", "xxx.xx.x.xxx:8020");
        conf.set("dfs.client.failover.proxy.provider.cluster"
                ,"org.apache.hadoop.hdfs.server.namenode.ha.ConfiguredFailoverProxyProvider");
    }
    
    public static void  getDirectoryFromHdfs(String direPath){
        try {
            FileSystem fs = FileSystem.get(URI.create(direPath),conf);
            FileStatus[] filelist = fs.listStatus(new Path(direPath));
            for (int i = 0; i < filelist.length; i++) {
                System.out.println("_________" + direPath + "目录下所有文件______________");
                FileStatus fileStatus = filelist[i];
                System.out.println("Name:"+fileStatus.getPath().getName());
                System.out.println("Size:"+fileStatus.getLen());
                System.out.println("Path:"+fileStatus.getPath());
            }
            fs.close();
        } catch (Exception e){

        }
    }

    public static void uploadFile(String src,String dst) throws IOException{
        
        FileSystem fs = FileSystem.get(conf);
        Path srcPath = new Path(src); //本地上传文件路径
        Path dstPath = new Path(dst); //hdfs目标路径
        //调用文件系统的文件复制函数,前面参数是指是否删除原文件,true为删除,默认为false
        fs.copyFromLocalFile(false, srcPath, dstPath);

        //打印文件路径
        System.out.println("Upload to "+conf.get("fs.default.name"));
        System.out.println("------------list files------------"+"\n");
        FileStatus [] fileStatus = fs.listStatus(dstPath);
        for (FileStatus file : fileStatus)
        {
            System.out.println(file.getPath());
        }
        fs.close();
    }
    
    public static void main(String[] args) throws IOException {

//        String localFilePath = "D:\\Project\\eclipse\\workspace\\DataCenterChanger\\test\\20180108.txt";
//        String hdfsFilePath = "/tmp/";
//        System.out.println(localFilePath);
//        System.out.println(hdfsFilePath);
//        uploadFile(localFilePath,hdfsFilePath);
        getDirectoryFromHdfs("/tmp/20180108.txt");

    }
}

 

 

分享到:
评论

相关推荐

    上传文件到HDFS

    当我们需要将本地文件系统中的文件上传到HDFS时,可以使用Java API来实现这一功能。以下是对“上传文件到HDFS”的Java代码实现的详细说明。 首先,我们需要引入Hadoop的相关依赖库。在Maven项目中,可以在pom.xml...

    java操作Hadoop源码之HDFS Java API操作-上传文件

    在Java编程环境中,Hadoop分布式文件系统(HDFS)提供了丰富的Java API,使得开发者能够方便地与HDFS进行交互,包括文件的上传、下载、读写等操作。本篇文章将详细探讨如何使用HDFS Java API来实现文件上传的功能。 ...

    利用javaAPI访问HDFS的文件

    示例代码中提供的`uploadToHdfs`方法展示了如何将本地文件上传到HDFS中: ```java private static void uploadToHdfs() throws FileNotFoundException, IOException { String localSrc = "d://qq.txt"; // 本地文件...

    利用JAVA代码将本地文件传入HDFS中

    标题 "利用JAVA代码将本地文件传入HDFS中" 涉及到的是在Java编程环境中,使用Hadoop Distributed File System (HDFS) API来上传本地文件系统的文件到HDFS的过程。HDFS是Hadoop的核心组件之一,它提供了一个分布式、...

    02--HDFS Java API操作.docx

    使用 HDFS Java API 可以上传文件到 HDFS 中。例如,使用 `FileSystem` 类的 `upload` 方法可以上传一个文件。 4. 下载文件 使用 HDFS Java API 可以下载文件从 HDFS 中。例如,使用 `FileSystem` 类的 `download`...

    向hdfs上传Excel文件.doc

    然而,由于HDFS本身并不直接支持Excel文件格式,通常的做法是先将Excel文件转换为CSV等更易于处理的格式,然后再上传到HDFS。这一过程如果手动操作不仅耗时而且容易出错,特别是在需要处理大量文件的情况下。 #### ...

    本地文件上传到HDFS

    ### 本地文件上传到HDFS知识点详解 #### 一、Hadoop HDFS简介 Hadoop分布式文件系统(HDFS)是Hadoop项目的核心组件之一,主要用于存储大量的数据,并且能够提供高吞吐量的数据访问能力,非常适合大规模数据集上的...

    hdfs java代码实现文件基础操作

    使用`FSDataOutputStream`的`create()`方法将本地文件上传到HDFS。 ```java public static void uploadFile(String localFilePath, String hdfsFilePath) throws Exception { FileSystem fs = FileSystem.get...

    大数据技术基础实验报告-调用Java API实现HDFS操作.doc

    本实验主要涵盖了大数据技术的基础,特别是如何在Linux环境下利用Java API对Hadoop分布式文件系统(HDFS)进行操作。实验涉及的主要步骤包括Eclipse的安装、Java项目的创建以及所需JAR包的添加。 首先,Eclipse是...

    java操作hadoop的hdfs的各种操作

    java操作hadoop的hdfs的各种操作,包括文件创建,删除,文件夹创建,上传文件,下载文件,读取文件等

    java操作hdfs.rar

    Java API是与HDFS进行交互的主要方式,它允许开发者编写程序来读取、写入和管理存储在HDFS上的文件。 在使用Java操作HDFS时,首先需要确保你已经在本地环境中安装了Hadoop,并且正确配置了环境变量。这包括设置`...

    HDFS文件系统基本文件命令、编程读写HDFS

    1. 上传本地文件:使用 FileSystem.copyFromLocalFile() 方法将本地文件上传到 HDFS。 2. 下载 HDFS 文件:使用 FileSystem.copyToLocalFile() 方法将 HDFS 文件下载到本地文件系统。 3. 创建 HDFS 目录:使用 ...

    HDFS存取实例(java)

    本教程将详细讲解如何使用Java API进行HDFS上的文件存取操作,包括文件上传和下载,以及客户端的基本使用。 一、HDFS简介 HDFS是Apache Hadoop项目的核心部分,设计用于处理海量数据,通过在廉价硬件上实现数据的...

    Hadoop分布式文件系统HDFS的实战的Hdfs.java

    Hadoop分布式文件系统HDFS的实战,需要的Hdfs.java文件 public static void main(String[] args) throws Exception { //上传文件到hadoop uploadFile(); createFile(); createDir(); fileRename(); deleteFile...

    厦门大学-林子雨-大数据技术基础-第3章 分布式文件系统HDFS-上机练习-熟悉常用的HDFS操作

    了解HDFS的基础知识是掌握大数据技术的基础,本次上机练习旨在帮助学生熟悉HDFS的基本操作,包括上传、下载、复制、删除文件等操作。通过本次上机练习,学生可以更好地理解HDFS在Hadoop体系结构中的角色,并掌握HDFS...

    win安装部署hadoop3.0.0并启动上传文件到HDFS(博文相关代码)

    在本文中,我们将深入探讨如何在Windows环境下安装和部署Hadoop 3.0.0,并进行基本的操作,如启动服务、上传文件到HDFS、创建目录以及运行MapReduce的WordCount示例。Hadoop是Apache基金会的一个开源项目,主要用于...

    java-Hdfs体系结构与基本概念

    * 测试 HDFS 文件上传:使用 Java-HDFS 客户端上传文件到 HDFS。 Eclipse 项目配置 要使用 Java-HDFS 客户端开发 HDFS 应用程序,需要在 Eclipse 中配置相应的项目结构。以下是配置步骤: * 新建一个 Java 项目:...

    《Hadoop大数据开发实战》教学教案—03HDFS分布式文件系统.pdf

    通过 Java API,可以对 HDFS 进行文件操作,例如上传文件、下载文件、删除文件等。 Hadoop 序列化 Hadoop 序列化是将 Java 对象转换为字节数组的过程。Hadoop 序列化主要用于将 Java 对象传输到 Hadoop 集群中。 ...

    上传文件到Hadoop失败的原因分析及解决方法.pdf

    在上传文件到 Hadoop HDFS 文件系统中,需要确保当前用户有写入权限,否则将无法上传文件。同时,在编写 Java Web 程序时,应该多使用“try , catch”语句,在运行 Java Web 程序中,需要多观察 Tomcat 的输出结果。...

    3、HDFS的使用(读写、上传、下载、遍历、查找文件、整个目录拷贝、只拷贝文件、列出文件夹下文件、删除文件及目录、获取文件及文件

    为了高效地与HDFS交互,Java API 提供了一套丰富的工具和类库,使得开发者能够方便地进行文件的读写、上传、下载、遍历、查找、拷贝以及管理HDFS上的文件和目录。以下将详细讲解如何使用Java API 操作HDFS。 ### 一...

Global site tag (gtag.js) - Google Analytics