`
tenght
  • 浏览: 51844 次
社区版块
存档分类
最新评论

Hadoop HDFS文件操作 Java实现类

 
阅读更多

1、创建HDFS目录

import java.io.IOException;
import org.apache.hadoop.conf.Configuration;
import org.apache.hadoop.fs.FileSystem;
import org.apache.hadoop.fs.Path;

public class MakeDir {
	public static void main(String[] args) throws IOException {
		Configuration conf = new Configuration();
		FileSystem fs = FileSystem.get(conf);
		Path path = new Path("/user/hadoop/data/20130709");
		fs.create(path);
		fs.close();
	}
}

2、删除HDFS目录

import java.io.IOException;
import org.apache.hadoop.conf.Configuration;
import org.apache.hadoop.fs.FileSystem;
import org.apache.hadoop.fs.Path;

public class DeleteDir {
	public static void main(String[] args) throws IOException {
		Configuration conf = new Configuration();
		FileSystem fs = FileSystem.get(conf);
		
		Path path = new Path("/user/hadoop/data/20130710");
		fs.delete(path);
		fs.close();
	}
}

3、HDFS写文件

import java.io.IOException;
import org.apache.hadoop.conf.Configuration;
import org.apache.hadoop.fs.FSDataOutputStream;
import org.apache.hadoop.fs.FileSystem;
import org.apache.hadoop.fs.Path;

public class WriteFile {
	public static void main(String[] args) throws IOException {
		Configuration conf = new Configuration();
		FileSystem fs = FileSystem.get(conf);
		Path path = new Path("/user/hadoop/data/write.txt");
		FSDataOutputStream out = fs.create(path);
		out.writeUTF("da jia hao,cai shi zhen de hao!");
		fs.close();
	}
}
4、HDFS读文件

import java.io.IOException;
import org.apache.hadoop.conf.Configuration;
import org.apache.hadoop.fs.FSDataInputStream;
import org.apache.hadoop.fs.FileStatus;
import org.apache.hadoop.fs.FileSystem;
import org.apache.hadoop.fs.Path;

public class ReadFile {
	public static void main(String[] args) throws IOException {
		Configuration conf = new Configuration();
		FileSystem fs = FileSystem.get(conf);
		Path path = new Path("/user/hadoop/data/write.txt");
		
		if(fs.exists(path)){
			FSDataInputStream is = fs.open(path);
			FileStatus status = fs.getFileStatus(path);
			byte[] buffer = new byte[Integer.parseInt(String.valueOf(status.getLen()))];
			is.readFully(0, buffer);
			is.close();
            fs.close();
            System.out.println(buffer.toString());
		}
	}
}

5、上传本地文件到HDFS
import java.io.IOException;
import org.apache.hadoop.conf.Configuration;
import org.apache.hadoop.fs.FileSystem;
import org.apache.hadoop.fs.Path;

public class CopyFromLocalFile {

	public static void main(String[] args) throws IOException {
		
		Configuration conf = new Configuration();
		FileSystem fs = FileSystem.get(conf);
		Path src = new Path("/home/hadoop/word.txt");
		Path dst = new Path("/user/hadoop/data/");
		fs.copyFromLocalFile(src, dst);
		fs.close();
	}
}

6、删除文件

import java.io.IOException;
import org.apache.hadoop.conf.Configuration;
import org.apache.hadoop.fs.FileSystem;
import org.apache.hadoop.fs.Path;

public class DeleteFile {

	public static void main(String[] args) throws IOException {
		Configuration conf = new Configuration();
		FileSystem fs = FileSystem.get(conf);
		
		Path path = new Path("/user/hadoop/data/word.txt");
		fs.delete(path);
		fs.close();
	}
}
7、获取给定目录下的所有子目录以及子文件

import java.io.IOException;
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 GetAllChildFile {
	static Configuration conf = new Configuration();
	
	
	public static void main(String[] args)throws IOException {
		FileSystem fs = FileSystem.get(conf);
		Path path = new Path("/user/hadoop");
		getFile(path,fs);
		//fs.close();
	}
	
	public static void getFile(Path path,FileSystem fs) throws IOException {
		
		FileStatus[] fileStatus = fs.listStatus(path);
		for(int i=0;i<fileStatus.length;i++){
			if(fileStatus[i].isDir()){
				Path p = new Path(fileStatus[i].getPath().toString());
				getFile(p,fs);
			}else{
				System.out.println(fileStatus[i].getPath().toString());
			}
		}
	}

}
8、查找某个文件在HDFS集群的位置

package com.hadoop.file;

import java.io.IOException;
import org.apache.hadoop.conf.Configuration;
import org.apache.hadoop.fs.BlockLocation;
import org.apache.hadoop.fs.FileStatus;
import org.apache.hadoop.fs.FileSystem;
import org.apache.hadoop.fs.Path;
import org.apache.hadoop.hdfs.DistributedFileSystem;
import org.apache.hadoop.hdfs.protocol.DatanodeInfo;

public class FindFile {
	
	public static void main(String[] args) throws IOException {	
		getHDFSNode();
	}
	
	/**
	 * HDFS集群上所有节点名称信息
	 * @Title:  
	 * @Description: 
	 * @param 
	 * @return 
	 * @throws
	 */
	public static void getHDFSNode() throws IOException{
		Configuration conf = new Configuration();
		FileSystem fs = FileSystem.get(conf);

		DistributedFileSystem  dfs = (DistributedFileSystem)fs;
		DatanodeInfo[] dataNodeStats = dfs.getDataNodeStats();
		
		for(int i=0;i<dataNodeStats.length;i++){
			System.out.println("DataNode_" + i + "_Node:" + dataNodeStats[i].getHostName());
		}
		
	}
}
9、HDFS集群上所有节点名称信息

package com.hadoop.file;
import java.io.IOException;
import org.apache.hadoop.conf.Configuration;
import org.apache.hadoop.fs.BlockLocation;
import org.apache.hadoop.fs.FileStatus;
import org.apache.hadoop.fs.FileSystem;
import org.apache.hadoop.fs.Path;
import org.apache.hadoop.hdfs.DistributedFileSystem;
import org.apache.hadoop.hdfs.protocol.DatanodeInfo;

public class FindFile {
	
	public static void main(String[] args) throws IOException {	
		getHDFSNode();
	}
	
	/**
	 * HDFS集群上所有节点名称信息
	 * @Title:  
	 * @Description: 
	 * @param 
	 * @return 
	 * @throws
	 */
	public static void getHDFSNode() throws IOException{
		Configuration conf = new Configuration();
		FileSystem fs = FileSystem.get(conf);

		DistributedFileSystem  dfs = (DistributedFileSystem)fs;
		DatanodeInfo[] dataNodeStats = dfs.getDataNodeStats();
		
		for(int i=0;i<dataNodeStats.length;i++){
			System.out.println("DataNode_" + i + "_Node:" + dataNodeStats[i].getHostName());
		}		
	}		
}







分享到:
评论

相关推荐

    java 从hadoop hdfs读取文件 进行groupby并显示为条形图

    Java API提供了访问HDFS的接口,例如`org.apache.hadoop.fs.FileSystem`类,可以用于读取、写入和管理文件系统中的文件。 2. **Hadoop MapReduce**:MapReduce是Hadoop用于并行处理和分析大数据的编程模型。在GROUP...

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

    总之,通过Hadoop的HDFS Java API,我们可以方便地在Java应用中与HDFS进行集成,实现文件的上传、下载等操作。理解并熟练掌握这些API,对于开发分布式应用,尤其是在大数据处理场景中,是至关重要的。在实际项目中,...

    java管理hdfs文件和文件夹项目hadoop2.4

    在Hadoop生态系统中,Java...总之,Java与Hadoop 2.4的HDFS交互涉及配置、连接、I/O操作以及文件和目录的管理。通过熟练掌握`FileSystem` API,你可以有效地编写管理HDFS的Java程序,实现对大数据集的高效存储和处理。

    windows平台使用hadoop hdfs文件进行中文分词的示例代码

    在Windows平台上,利用Hadoop HDFS(分布式文件系统)处理大量数据已经成为常见的操作。本示例将详述如何使用Eclipse集成开发环境(IDE)的Hadoop插件,执行一个基于HDFS的中文分词任务,对《唐诗三百首》进行分析,...

    elcipse java hadoop操作hdfs的api

    在Hadoop生态系统中,Java API是开发者与HDFS(Hadoop Distributed File System)进行交互的主要...通过学习和实践这些知识点,初学者能够熟练掌握使用Eclipse和Hadoop的HDFS API进行Java开发,实现对HDFS的高效操作。

    JavaWeb操作hadoop2.6 HDFS,从页面上传,下载,列表展示的demo

    1. **HDFS API集成**:为了操作HDFS,我们需要使用Hadoop的Java API。这包括创建HDFS客户端,连接NameNode,执行读写操作等。例如,`FileSystem`类用于打开、关闭和管理文件系统,`FSDataInputStream`和`...

    搭建hadoop后hdfs基本操作 ecplisec操作

    总结起来,通过Eclipse与Hadoop的Java API,我们能实现HDFS的基本操作,包括文件的上传、下载、删除、移动以及目录的管理。这对于大数据开发人员来说是必不可少的技能,有助于理解和掌握Hadoop生态系统的工作原理。

    hadoop中hdfs文件(上传、下载、查看)操作.docx

    本文件描述的是一个名为`HdfsService`的Java类,该类用于执行HDFS上的基本文件操作,如上传、下载、查看以及管理目录。下面将详细解释这些操作的实现及其相关的Hadoop API。 首先,`HdfsService`类初始化了一个`...

    java对大数据HDFS文件操作

    首先,Java对HDFS的操作主要通过Hadoop的`org.apache.hadoop`包中的类和接口实现。其中,`FileSystem`接口是与文件系统交互的主要入口,`Path`类代表文件或目录路径,`FSDataInputStream`和`FSDataOutputStream`分别...

    hdfs-over-ftp-hadoop-0.20.0.rar_ftp_ftpoverhdfs_hdfs文件传入ftp_java

    1. **源代码**:实现了FTP与HDFS交互的Java类和库,可能包括FTP服务器的扩展,以及与Hadoop HDFS API的接口。 2. **配置文件**:用于设置FTP服务器和HDFS连接的参数,例如服务器端口、认证信息、HDFS集群配置等。 3....

    ecplise远程连接hadoop--hdfs java api操作文件.pdf

    在Eclipse中远程连接到Hadoop集群,并通过HDFS的Java API操作文件是一套涉及多个步骤的技术流程,这套流程主要涉及到分布式计算和文件系统操作的知识。首先,我们来梳理一下整个过程中的关键知识点。 第一步:启动...

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

    在实际编程中,我们通常会创建一个Java类,导入Hadoop的相关库,然后使用FileSystem类和Path类等来执行HDFS操作。例如,使用`FileSystem.get(conf)`获取FileSystem实例,其中conf是包含HDFS配置信息的Configuration...

    window客户端连接hadoop hdfs,完美解决障碍

    本文将详细介绍如何在Windows环境下完美解决这些问题,实现顺利连接Hadoop分布式文件系统(HDFS)。 首先,理解Hadoop HDFS:它是Apache Hadoop项目的核心组件之一,是一个分布式文件系统,设计用于跨大量廉价硬件...

    数据科学导论实验报告 实验2:熟悉常用的HDFS操作

    在本实验中,我们主要关注的是对Hadoop分布式文件系统(HDFS)的熟悉和操作。HDFS是Hadoop的核心组件之一,它提供了一个高容错、可扩展的存储层,用于处理大规模的数据集。实验内容包括编程实现HDFS操作以及使用...

    Hadoop系统应用之java-API对HDFS的操作实验缺少的两个文件

    在Hadoop生态系统中,Java API是开发者常用的一种与HDFS(Hadoop Distributed File System)进行...通过这些操作,开发者可以在Java程序中实现对HDFS的读写、管理和操作,从而利用Hadoop的强大功能处理大规模的数据。

    hadoop Java接口 文件操作类

    本篇将深入探讨如何利用Hadoop的Java接口进行文件操作,实现对Hadoop服务的增、删、改、查等功能。 首先,我们要了解Hadoop的核心组件:HDFS(Hadoop Distributed File System)和MapReduce。HDFS是Hadoop的数据...

    Hadoop HDFS应用

    JAVA API中包含了Hadoop的HDFS客户端库,它提供了与HDFS通信所需的类和方法,使程序员能够轻松地在应用程序中实现文件系统功能。 综上所述,Hadoop HDFS应用的知识点涵盖了HDFS的分布式文件系统概念、支持的多种...

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

    本教程将详细介绍如何利用Java API进行HDFS的基础操作,包括创建目录、上传文件、下载文件、删除文件、重命名文件以及列举文件等。 首先,进行HDFS操作前,我们需要在项目中引入Hadoop的相关依赖,通常是`hadoop-...

    实验二:熟悉常用的HDFS操作

    在Java编程实现部分,学生通过`org.apache.hadoop.conf.Configuration`,`org.apache.hadoop.fs.FileSystem`和`org.apache.hadoop.fs.Path`等类,实现了文件存在性判断和本地文件复制到HDFS的功能。`FileSystem.get...

    web中进行HDFS文件系统操作的demo

    1. **Hadoop SDK**:Java的Hadoop SDK包含了一系列的类和方法,如`FileSystem`、`DFSClient`等,用于实现HDFS的读写操作。开发者可以通过这些API与HDFS进行交互。 2. **JSP页面**:作为Web前端,JSP页面负责接收...

Global site tag (gtag.js) - Google Analytics