HDFS的文件操作(Java代码实现)

对于hdfs的操作,可以使用hadoop fs 的命令,同时也可以使用java来进行操作,下面的一段小例子,就是简单介绍了java操作hdfs的文件等......

package com.hdfs.nefu;
/**
 * @auther XD
 **/
import java.io.FileInputStream;
import java.io.IOException;
import java.net.URI;
import java.net.URISyntaxException;
import org.apache.hadoop.conf.Configuration;
import org.apache.hadoop.fs.FSDataInputStream;
import org.apache.hadoop.fs.FSDataOutputStream;
import org.apache.hadoop.fs.FileSystem;
import org.apache.hadoop.fs.Path;
import org.apache.hadoop.io.IOUtils;

public class App {
	final static String url = "hdfs://localhost/hello";
	final static String dir_path = "d1/1000";
	final static String file_path = "d1/1000/f100";
	public static void main(String[] args) throws IOException, URISyntaxException {
		/**
		*加载文件 hdfs流式数据 所以进行操作的时候需要 获得输入输出流等问题
		*根据以下代码 可见进行hdfs操作只需要获得 filesystem对象即可
		**/
		final FileSystem filesystem = FileSystem.get(new URI(url), new Configuration());

		//创建文件夹
		mkdir(filesystem);

		/*上传文件的前提是 需要这个文件存在,创建文件形成一个输出流*/
		final FSDataOutputStream out = filesystem.create(new Path(file_path));
		final FileInputStream in = new FileInputStream("D:\\log.txt");
		uploadData(out, in);

		//下载文件 	需要先打开一个文件 才可以下载
		final FSDataInputStream input = filesystem.open(new Path(file_path));
		downloadData(input);

		//删除文件夹
		deletefile(filesystem);
	}
	/*以下方法只是通过快捷键 抽取重构的方法
	 * 在调用的地方使用快捷键 :Alt+Shift+M 就会出现以下情形*/
	private static void deletefile(final FileSystem filesystem)
			throws IOException {
		filesystem.delete(new Path(file_path), true);
	}
	private static void downloadData(final FSDataInputStream input)
			throws IOException {
		IOUtils.copyBytes(input, System.out, 1024, true);
	}
	private static void uploadData(final FSDataOutputStream out,
			final FileInputStream in) throws IOException {
		IOUtils.copyBytes(in, out, 1024, true);
	}
	private static void mkdir(final FileSystem filesystem) throws IOException {
		filesystem.mkdirs(new Path(dir_path));
	}
}
时间: 2025-01-04 15:26:57

HDFS的文件操作(Java代码实现)的相关文章

使用ant批量将corba的idl文件生成java代码

这次有30多个idl文件需要生成java代码,并且其中有些idl之间相互引用,用命令一个个生成感觉非常反锁,并且容易出问题,看到jacorb中的例子是用ant来生成的,与自己也用ant批量生成了,在这里记录下主要的代码内容,供下次参考. ant的build.xml文件内容如下: <?xml version="1.0"?> <!-- 批量将idl生成java代码 --> <project name="idlBuilder" default

HDFS读写文件操作

1    运行环境说明 1.1     硬软件环境 1.2     机器网络环境 2    书面作业1:编译并运行<权威指南>中的例3.2 2.1     书面作业1内容 2.2     运行代码 2.3     实现过程 2.3.1   创建代码目录 2.3.2   建立例子文件上传到hdfs中 2.3.3   配置本地环境 2.3.4   编写代码 2.3.5   编译代码 2.3.6   使用编译代码读取文件 3    书面作业2:写入HDFS成为一个新文件 3.1    书面作业2内容

Hadoop第4周练习—HDFS读写文件操作

1    运行环境说明... 3 1.1     硬软件环境... 3 1.2     机器网络环境... 3 2    书面作业1:编译并运行<权威指南>中的例3.2. 3 2.1     书面作业1内容... 3 2.2     运行代码... 3 2.3     实现过程... 4 2.3.1   创建代码目录... 4 2.3.2   建立例子文件上传到hdfs中... 4 2.3.3   配置本地环境... 5 2.3.4   编写代码... 5 2.3.5   编译代码... 6

HDFS的文件操作

格式化HDFS 命令:[email protected]:Hadoop$bin/hadoop namenode -format 启动HDFS 命令:[email protected]:hadoop$bin/start-dfs.sh 列出HDFS上的文件 命令:[email protected]:hadoop$bin/hadoop dfs -ls 使用hadoop API public List<String[]>GetFileBolckHost(Configuration conf, Stri

Android有感(9):10.使用XML文件和Java代码控制UI界面

Android推荐使用XML文件设置UI界面,然后用Java代码控制逻辑部分,这体现了MVC思想. MVC全名是Model View Controller,是模型(model)-视图(view)-控制器(controller)的缩写,一种软件设计典范,用一种业务逻辑.数据.界面显示分离的方法组织代码,将业务逻辑聚集到一个部件里面,在改进和个性化定制界面及用户交互的同时,不需要重新编写业务逻辑. 我们可以在app\src\main\res\layout目录下定义一个XML文件(R.java文件会自

axis2处理webservice接口的wsdl文件生成java代码

第一步: 下载axis2,我下载的版本是[axis2-1.6.2-bin.zip],要把文件夹解压 第二步: 打开命令窗口,进入到axis的路径下bin目录 第三步: 执行语句:./wsdl2java.sh -uri 文件.xml(wsdl文件) -o 生成路径 -p 包结构(com.b.c) 就可以在设置的[生成路径]下找到对应[包结构]的java代码 [~/work/axis2-1.6.2/bin]$./wsdl2java.sh -uri 文件.xml(wsdl文件) -o 生成路径 -p 

【hadoop】使用javaAPI对hdfs进行文件操作

前提:1.搭建好hadoop伪分布式环境:2.安装好eclipse: 注:修改 /etc/hosts 添加 “本机IP hadoop01” , 那么代码中创建hdfs文件系统的时候的URI hdfs://hadoop01:9000 相当于  hdfs://hadoop服务器ip(例如:192.168.1.1XX):9000 import java.io.FileInputStream; import java.io.FileOutputStream; import java.io.IOExcep

Objective--C之文件操作练习代码(随便写的,有错误)

1 #import <Foundation/Foundation.h> 2 3 @interface Baby : NSObject <NSCoding> 4 //声明实例变量 5 @property (nonatomic, assign) int age; 6 @property (nonatomic, retain) NSString *name; 7 @property (nonatomic, assign) double score; 8 9 - (id)initWithA

怎么查看jar包里面的.class文件源java代码

http://book.zhulang.com/299056/736458.html http://book.zhulang.com/299056/736459.html http://book.zhulang.com/299056/736460.html http://book.zhulang.com/299056/736461.html http://book.zhulang.com/299056/736462.html http://book.zhulang.com/299056/7364