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时,可以使用Java API来实现这一功能。以下是对“上传文件到HDFS”的Java代码实现的详细说明。 首先,我们需要引入Hadoop的相关依赖库。在Maven项目中,可以在pom.xml...
在Java编程环境中,Hadoop分布式文件系统(HDFS)提供了丰富的Java API,使得开发者能够方便地与HDFS进行交互,包括文件的上传、下载、读写等操作。本篇文章将详细探讨如何使用HDFS Java API来实现文件上传的功能。 ...
示例代码中提供的`uploadToHdfs`方法展示了如何将本地文件上传到HDFS中: ```java private static void uploadToHdfs() throws FileNotFoundException, IOException { String localSrc = "d://qq.txt"; // 本地文件...
标题 "利用JAVA代码将本地文件传入HDFS中" 涉及到的是在Java编程环境中,使用Hadoop Distributed File System (HDFS) API来上传本地文件系统的文件到HDFS的过程。HDFS是Hadoop的核心组件之一,它提供了一个分布式、...
使用 HDFS Java API 可以上传文件到 HDFS 中。例如,使用 `FileSystem` 类的 `upload` 方法可以上传一个文件。 4. 下载文件 使用 HDFS Java API 可以下载文件从 HDFS 中。例如,使用 `FileSystem` 类的 `download`...
然而,由于HDFS本身并不直接支持Excel文件格式,通常的做法是先将Excel文件转换为CSV等更易于处理的格式,然后再上传到HDFS。这一过程如果手动操作不仅耗时而且容易出错,特别是在需要处理大量文件的情况下。 #### ...
### 本地文件上传到HDFS知识点详解 #### 一、Hadoop HDFS简介 Hadoop分布式文件系统(HDFS)是Hadoop项目的核心组件之一,主要用于存储大量的数据,并且能够提供高吞吐量的数据访问能力,非常适合大规模数据集上的...
使用`FSDataOutputStream`的`create()`方法将本地文件上传到HDFS。 ```java public static void uploadFile(String localFilePath, String hdfsFilePath) throws Exception { FileSystem fs = FileSystem.get...
本实验主要涵盖了大数据技术的基础,特别是如何在Linux环境下利用Java API对Hadoop分布式文件系统(HDFS)进行操作。实验涉及的主要步骤包括Eclipse的安装、Java项目的创建以及所需JAR包的添加。 首先,Eclipse是...
java操作hadoop的hdfs的各种操作,包括文件创建,删除,文件夹创建,上传文件,下载文件,读取文件等
Java API是与HDFS进行交互的主要方式,它允许开发者编写程序来读取、写入和管理存储在HDFS上的文件。 在使用Java操作HDFS时,首先需要确保你已经在本地环境中安装了Hadoop,并且正确配置了环境变量。这包括设置`...
1. 上传本地文件:使用 FileSystem.copyFromLocalFile() 方法将本地文件上传到 HDFS。 2. 下载 HDFS 文件:使用 FileSystem.copyToLocalFile() 方法将 HDFS 文件下载到本地文件系统。 3. 创建 HDFS 目录:使用 ...
本教程将详细讲解如何使用Java API进行HDFS上的文件存取操作,包括文件上传和下载,以及客户端的基本使用。 一、HDFS简介 HDFS是Apache Hadoop项目的核心部分,设计用于处理海量数据,通过在廉价硬件上实现数据的...
Hadoop分布式文件系统HDFS的实战,需要的Hdfs.java文件 public static void main(String[] args) throws Exception { //上传文件到hadoop uploadFile(); createFile(); createDir(); fileRename(); deleteFile...
了解HDFS的基础知识是掌握大数据技术的基础,本次上机练习旨在帮助学生熟悉HDFS的基本操作,包括上传、下载、复制、删除文件等操作。通过本次上机练习,学生可以更好地理解HDFS在Hadoop体系结构中的角色,并掌握HDFS...
在本文中,我们将深入探讨如何在Windows环境下安装和部署Hadoop 3.0.0,并进行基本的操作,如启动服务、上传文件到HDFS、创建目录以及运行MapReduce的WordCount示例。Hadoop是Apache基金会的一个开源项目,主要用于...
* 测试 HDFS 文件上传:使用 Java-HDFS 客户端上传文件到 HDFS。 Eclipse 项目配置 要使用 Java-HDFS 客户端开发 HDFS 应用程序,需要在 Eclipse 中配置相应的项目结构。以下是配置步骤: * 新建一个 Java 项目:...
通过 Java API,可以对 HDFS 进行文件操作,例如上传文件、下载文件、删除文件等。 Hadoop 序列化 Hadoop 序列化是将 Java 对象转换为字节数组的过程。Hadoop 序列化主要用于将 Java 对象传输到 Hadoop 集群中。 ...
在上传文件到 Hadoop HDFS 文件系统中,需要确保当前用户有写入权限,否则将无法上传文件。同时,在编写 Java Web 程序时,应该多使用“try , catch”语句,在运行 Java Web 程序中,需要多观察 Tomcat 的输出结果。...
为了高效地与HDFS交互,Java API 提供了一套丰富的工具和类库,使得开发者能够方便地进行文件的读写、上传、下载、遍历、查找、拷贝以及管理HDFS上的文件和目录。以下将详细讲解如何使用Java API 操作HDFS。 ### 一...