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、
上传本地文件到HDFSimport 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 API提供了访问HDFS的接口,例如`org.apache.hadoop.fs.FileSystem`类,可以用于读取、写入和管理文件系统中的文件。 2. **Hadoop MapReduce**:MapReduce是Hadoop用于并行处理和分析大数据的编程模型。在GROUP...
总之,通过Hadoop的HDFS Java API,我们可以方便地在Java应用中与HDFS进行集成,实现文件的上传、下载等操作。理解并熟练掌握这些API,对于开发分布式应用,尤其是在大数据处理场景中,是至关重要的。在实际项目中,...
在Hadoop生态系统中,Java...总之,Java与Hadoop 2.4的HDFS交互涉及配置、连接、I/O操作以及文件和目录的管理。通过熟练掌握`FileSystem` API,你可以有效地编写管理HDFS的Java程序,实现对大数据集的高效存储和处理。
在Windows平台上,利用Hadoop HDFS(分布式文件系统)处理大量数据已经成为常见的操作。本示例将详述如何使用Eclipse集成开发环境(IDE)的Hadoop插件,执行一个基于HDFS的中文分词任务,对《唐诗三百首》进行分析,...
在Hadoop生态系统中,Java API是开发者与HDFS(Hadoop Distributed File System)进行交互的主要...通过学习和实践这些知识点,初学者能够熟练掌握使用Eclipse和Hadoop的HDFS API进行Java开发,实现对HDFS的高效操作。
1. **HDFS API集成**:为了操作HDFS,我们需要使用Hadoop的Java API。这包括创建HDFS客户端,连接NameNode,执行读写操作等。例如,`FileSystem`类用于打开、关闭和管理文件系统,`FSDataInputStream`和`...
总结起来,通过Eclipse与Hadoop的Java API,我们能实现HDFS的基本操作,包括文件的上传、下载、删除、移动以及目录的管理。这对于大数据开发人员来说是必不可少的技能,有助于理解和掌握Hadoop生态系统的工作原理。
本文件描述的是一个名为`HdfsService`的Java类,该类用于执行HDFS上的基本文件操作,如上传、下载、查看以及管理目录。下面将详细解释这些操作的实现及其相关的Hadoop API。 首先,`HdfsService`类初始化了一个`...
首先,Java对HDFS的操作主要通过Hadoop的`org.apache.hadoop`包中的类和接口实现。其中,`FileSystem`接口是与文件系统交互的主要入口,`Path`类代表文件或目录路径,`FSDataInputStream`和`FSDataOutputStream`分别...
1. **源代码**:实现了FTP与HDFS交互的Java类和库,可能包括FTP服务器的扩展,以及与Hadoop HDFS API的接口。 2. **配置文件**:用于设置FTP服务器和HDFS连接的参数,例如服务器端口、认证信息、HDFS集群配置等。 3....
在Eclipse中远程连接到Hadoop集群,并通过HDFS的Java API操作文件是一套涉及多个步骤的技术流程,这套流程主要涉及到分布式计算和文件系统操作的知识。首先,我们来梳理一下整个过程中的关键知识点。 第一步:启动...
在实际编程中,我们通常会创建一个Java类,导入Hadoop的相关库,然后使用FileSystem类和Path类等来执行HDFS操作。例如,使用`FileSystem.get(conf)`获取FileSystem实例,其中conf是包含HDFS配置信息的Configuration...
本文将详细介绍如何在Windows环境下完美解决这些问题,实现顺利连接Hadoop分布式文件系统(HDFS)。 首先,理解Hadoop HDFS:它是Apache Hadoop项目的核心组件之一,是一个分布式文件系统,设计用于跨大量廉价硬件...
在本实验中,我们主要关注的是对Hadoop分布式文件系统(HDFS)的熟悉和操作。HDFS是Hadoop的核心组件之一,它提供了一个高容错、可扩展的存储层,用于处理大规模的数据集。实验内容包括编程实现HDFS操作以及使用...
在Hadoop生态系统中,Java API是开发者常用的一种与HDFS(Hadoop Distributed File System)进行...通过这些操作,开发者可以在Java程序中实现对HDFS的读写、管理和操作,从而利用Hadoop的强大功能处理大规模的数据。
本篇将深入探讨如何利用Hadoop的Java接口进行文件操作,实现对Hadoop服务的增、删、改、查等功能。 首先,我们要了解Hadoop的核心组件:HDFS(Hadoop Distributed File System)和MapReduce。HDFS是Hadoop的数据...
JAVA API中包含了Hadoop的HDFS客户端库,它提供了与HDFS通信所需的类和方法,使程序员能够轻松地在应用程序中实现文件系统功能。 综上所述,Hadoop HDFS应用的知识点涵盖了HDFS的分布式文件系统概念、支持的多种...
本教程将详细介绍如何利用Java API进行HDFS的基础操作,包括创建目录、上传文件、下载文件、删除文件、重命名文件以及列举文件等。 首先,进行HDFS操作前,我们需要在项目中引入Hadoop的相关依赖,通常是`hadoop-...
在Java编程实现部分,学生通过`org.apache.hadoop.conf.Configuration`,`org.apache.hadoop.fs.FileSystem`和`org.apache.hadoop.fs.Path`等类,实现了文件存在性判断和本地文件复制到HDFS的功能。`FileSystem.get...
1. **Hadoop SDK**:Java的Hadoop SDK包含了一系列的类和方法,如`FileSystem`、`DFSClient`等,用于实现HDFS的读写操作。开发者可以通过这些API与HDFS进行交互。 2. **JSP页面**:作为Web前端,JSP页面负责接收...