java读写hdfs简单demo

环境:eclipse + eclipse hadoop插件, hadoop + rhel6.4

package test;

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

public class Test {

	public void WriteFile(String hdfs) throws IOException {
		Configuration conf = new Configuration();
		FileSystem fs = FileSystem.get(URI.create(hdfs),conf);
		FSDataOutputStream hdfsOutStream = fs.create(new Path(hdfs));
		hdfsOutStream.writeChars("hello");
		hdfsOutStream.close();
		fs.close();
	}

	public void ReadFile(String hdfs) throws IOException {
		Configuration conf = new Configuration();
		FileSystem fs = FileSystem.get(URI.create(hdfs),conf);
		FSDataInputStream hdfsInStream = fs.open(new Path(hdfs));

		byte[] ioBuffer = new byte[1024];
		int readLen = hdfsInStream.read(ioBuffer);
		while(readLen!=-1)
		{
			System.out.write(ioBuffer, 0, readLen);
			readLen = hdfsInStream.read(ioBuffer);
		}
		hdfsInStream.close();
		fs.close();
	}

	public static void main(String[] args) throws IOException {
		String hdfs = "hdfs://192.168.56.112:9000/test/hello.txt";
		Test t = new Test();
		t.WriteFile(hdfs);
		t.ReadFile(hdfs);
	  }
}
时间: 2024-10-07 02:15:18

java读写hdfs简单demo的相关文章

Java读写hdfs上的avro文件

1.通过Java往hdfs写avro文件 1 import java.io.File; 2 import java.io.IOException; 3 import java.io.OutputStream; 4 import java.nio.ByteBuffer; 5 6 import org.apache.avro.Schema; 7 import org.apache.avro.file.CodecFactory; 8 import org.apache.avro.file.DataFi

java读写HDFS

HDFS是一个分布式文件系统,既然是文件系统,就可以对其文件进行操作,比如说新建文件.删除文件.读取文件内容等操作.下面记录一下使用JAVA API对HDFS中的文件进行操作的过程. 对分HDFS中的文件操作主要涉及一下几个类: Configuration类:该类的对象封转了客户端或者服务器的配置. FileSystem类:该类的对象是一个文件系统对象,可以用该对象的一些方法来对文件进行操作.FileSystem fs = FileSystem.get(conf);通过FileSystem的静态

dom4j读写xml简单demo

package com.protocol; import java.io.*; import java.util.List; import org.dom4j.*; import org.dom4j.io.*; public class Dom4jDemo { public void createXml(String fileName) { DocumentFactory factory = new DocumentFactory(); Document document = factory.c

Java读写Excel文件DEMO

下载一定格式的Excel文件: @RequestMapping("/xxxx/xxxx/xxxx/copyfiledownload") @ResponseBody public void copyfiledownload(HttpServletRequest request, HttpServletResponse response, Model model) throws Exception{ response.setContentType("text/html; char

Java操作HDFS开发环境搭建以及HDFS的读写流程

Java操作HDFS开发环境搭建 在之前我们已经介绍了如何在Linux上进行HDFS伪分布式环境的搭建,也介绍了hdfs中一些常用的命令.但是要如何在代码层面进行操作呢?这是本节将要介绍的内容: 1.首先使用IDEA创建一个maven工程: maven默认是不支持cdh的仓库的,需要在pom.xml中配置cdh的仓库,如下: <repositories> <repository> <id>cloudera</id> <url>https://re

Java 多线程IO简单实用Demo

多线程主要作用是充分利用Cpu,而不在于它的乱序性.本Demo不讲它竞争什么的.之前看过乱序打印ABC的例子什么的,那些有意义吗? 本Demo 是多线程打印文件夹下的文件,主要实现是用数组存放文件,一个游标遍历. 我们需要考虑在什么时候加互斥访问,本例用synchronized . 先考虑单线程的流程:客户端启动-->读取文件下的文件放到数组(IO)--> 取游标打印 ,游标加1 -- > 改文件写文件(IO) -- 重复上两步至越界 -- 结束 多线程时显然需要在"取游标打印

HDFS简单介绍及用C语言訪问HDFS接口操作实践

一.概述 近年来,大数据技术如火如荼,怎样存储海量数据也成了当今的热点和难点问题,而HDFS分布式文件系统作为Hadoop项目的分布式存储基础,也为HBASE提供数据持久化功能,它在大数据项目中有很广泛的应用. Hadoop分布式文件系统(Hadoop Distributed File System.HDFS)被设计成适合运行在通用硬件(commodity hardware)上的分布式文件系统.HDFS是Hadoop项目的核心子项目,是一种具有高容错性.高可靠性.高可扩展性.高吞吐量等特征的分布

第三课:java开发hdfs

(1)关于hdfs小结 hadoop由hdfs + yarn + map/reduce组成, hdfs是数据库存储模块,主要由1台namenode和n台datanode组成的一个集群系统, datanode可以动态扩展,文件根据固定大小分块(默认为128M), 每一块数据默认存储到3台datanode,故意冗余存储,防止某一台datanode挂掉,数据不会丢失. HDFS = NameNode + SecondaryNameNode + journalNode + DataNode hdfs的典

Java-IO读写文件简单操作2

承接Java-IO读写文件简单操作,这里再次写个小demo巩固一下知识点. 代码文件:demo.java package com.test.demo; import java.io.*; public class demo { public static void main(String[] args) { // 写文件 writeFile(); // 读文件 readFile(); } /** * @function 读文件 * @param * @return void * @date 20