大数据学习笔记之一分布式文件系统HDFS

本文详细介绍Hadoop分布式文件系统HDFS的安装配置与使用,通过具体Java代码演示如何进行HDFS文件的读写操作,包括文件存在性的判断、文件读取及文件写入等关键步骤。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1 大数据学习笔记之一分布式文件系统HDFS

1.1 Hadoop安装

1.2 Hadoop HDFS学习

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;

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;

public class HDFSFileOperate {
	private Configuration m_conf;
	private  FileSystem m_hdfs;
	HDFSFileOperate(){
		try {
			m_conf = new Configuration();
			m_conf.set("fs.defaultFS", "hdfs://localhost:9000");
			m_conf.set("fs.hdfs.impl", "org.apache.hadoop.hdfs.DistributedFileSystem");
			m_hdfs = FileSystem.get(m_conf);
		} catch (IOException e) {
			e.printStackTrace();
		}	
	}
	// judge hadoop file existed ?
	public boolean isHadoopFileExist(String fileName) {
		boolean ret = false;
		try {
            if(m_hdfs.exists(new Path(fileName))){
                System.out.println("文件存在");
                ret = true;
            }else{
                System.out.println("文件不存在");
                ret = false;
            }
		}catch(Exception e) {
			e.printStackTrace();
		}
		return ret;
	}
	
	// read hadoop file
	public void readHadoopFile(String fileName) {
		try {
			Path file = new Path(fileName); 
            FSDataInputStream getIt = m_hdfs.open(file);
            BufferedReader d = new BufferedReader(new InputStreamReader(getIt));
            String content = d.readLine(); //读取文件一行
            System.out.println(content);
            d.close(); //关闭文件		
		}catch(Exception e) {
			e.printStackTrace();
		}
	}
	
	// write hadoop file
	public void writeHadoopFile(String filename) {
        try {
            byte[] buff = "Hello world".getBytes(); // 要写入的内容
            FSDataOutputStream os = m_hdfs.create(new Path(filename));
			os.write(buff,0,buff.length);
	        System.out.println("Create:"+ filename);
	        os.close();
		} catch (IOException e) {
			e.printStackTrace();
		}
	}
	
	// close HDFS File
	public void closeHDFSFile() {
		try {
			m_hdfs.close();
		} catch (IOException e) {
			e.printStackTrace();
		}
	}
	
	// main function
	public static void main(String[] args) {
		String fsInputFile = "/user/hadoop/input/myLocalFile.txt";
		String fsOutputFile = "/user/hadoop/input/myOutFile.txt";
		HDFSFileOperate hdfs = new HDFSFileOperate();
		if(hdfs.isHadoopFileExist(fsInputFile)) {
			hdfs.readHadoopFile(fsInputFile);
		}
		hdfs.writeHadoopFile(fsOutputFile);
		hdfs.closeHDFSFile();
	}
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值