Hadoop学习笔记API(2)文件读取与上传

package com.zhanbk.hadoop;


import java.io.File;
import java.io.FileInputStream;
import java.io.IOException;

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 HDFSApp {

	/**
	 * get filesystem
	 * @return
	 * @throws IOException
	 */
	public static FileSystem getFileSystem() throws IOException{
		//core-site.xml, core-default.xml, hdfs-site.xml, hdfs-default.xml
		Configuration conf = new Configuration();
		
		//get filesystem
		FileSystem fileSystem = FileSystem.get(conf);
		return fileSystem;
		
	}
	
	/**
	 * read file
	 * @param fileName
	 * @throws IOException
	 */
	public static void readFile(String fileName) throws IOException{
		
		//get filesystem
		FileSystem fileSystem = getFileSystem();
		
		Path readPath = new Path(fileName); //read path
		
		//open file
		FSDataInputStream inStream = fileSystem.open(readPath);
		
		//
		try{
			//read
			IOUtils.copyBytes(inStream, System.out, 4096, false);
			
		}catch(Exception e){
			e.printStackTrace();
		}finally {
			IOUtils.closeStream(inStream);
		}
	}
	
	public static void putFileToHdfs(String srcFile, String tarFile) throws IOException{
		
		//get fileSystem
		FileSystem fileSystem = getFileSystem();
		
		//write path
		Path writePath = new Path(tarFile);
		
		//output stream
		FSDataOutputStream outputStream = fileSystem.create(writePath);
		
		//file input stream
		FileInputStream inStream = new FileInputStream(new File(srcFile));
		
		try{
			//read and write
			IOUtils.copyBytes(inStream, outputStream, 4096, false);
			
		}catch(Exception e){
			e.printStackTrace();
		}finally {
			IOUtils.closeStream(inStream);
			IOUtils.closeStream(outputStream);
		}
	}
	
	public static void main(String[] args) throws IOException{
		
//		String fileName = "/input_hbase/fruit.tsv";
//		readFile(fileName);
		
		putFileToHdfs("/data/datas/fruit.tsv", "/input_hbase/fruit2.tsv");
	}
}

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值