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

news/2024/5/20 0:49:20 标签: Hadoop, HDFS

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

Hadoop_2">1.1 Hadoop安装

  • Hadoop Web
    • http://hadoop.apache.org/
  • Hadoop安装教程
    • http://dblab.xmu.edu.cn/blog/285/
  • Eclipse安装
    • https://jingyan.baidu.com/article/ac6a9a5e2f1a7a2b653eac3f.html

Hadoop_HDFS_9">1.2 Hadoop HDFS学习

  • 学习教程
    • http://dblab.xmu.edu.cn/blog/290-2/
  • 代码实例
    • HDFSFileOperate.java
    • 使用Java来实现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();
	}
}


http://www.niftyadmin.cn/n/765277.html

相关文章

ElasticSearch学习笔记-Python API使用

ElasticSearch学习笔记-Python API使用 1. 参考资料 Elasticsearch 开发指南Elasticsearch 官网CSDN文章ElasticSearch博客园Python操作ElasticSearchElasticSearch Python API官网 2. 代码实例 通过Python简单操作ElasticSearch # -.- coding:utf-8 -.- import json from …

Python2.7学习笔记-中文编码通用转码函数

Python2.7 中文编码通用转码函数Python2.7学习笔记-中文编码通用转码函数Python2.7学习笔记-中文编码通用转码函数 # encoding handler begin def getCoding(strInput):"""获取编码格式"""if isinstance(strInput, unicode):return "unico…

ONE STM32单片机使用寄存器点亮LED灯

ONE 使用寄存器点亮LED灯(一)寄存器1. 寄存器是什么?2. 寄存器的作用是什么?(二)利用寄存器点亮LED灯1. 利用寄存器点亮LED灯的步骤是什么?1.1 定义寄存器:1.2 代码书写:…

STM32固件库文件分析

STM32固件库文件分析(一)汇编编写的启动文件(二)时钟配置文件(三)外设相关的(四)内核相关的(五)头文件的配置文件(六) 专门存放中断服务函数的c文…

stm32进行固件库点亮led灯

固件库点亮LED灯(一)main()(二)bsp_led.c()(三)bsp_led.h32固件库编程点亮led灯:在已经建好工程的基础上,进行建立文件,包括bsp文件,是…

按键检测 LED灯

【TOC】(按键检测) one bsp_ked.h #ifndef _BSP_KEY_H #define _BSP_KEY_H#include"stm32f10x.h"//更换IO口,只需要更改宏定义即可 #define KEY1_G_GPIO_PIN GPIO_Pin_0 //PA0 #define KEY1_G_GPIO_PORT GPIOA …

PCB基础知识

PCBPCB规则信号线的粗细回路规则串扰控制禁止走线区布局立创快捷键PCB规则 信号线的粗细 一般设计为12mil(0.2mm左右),电源线最小25mil,最好30mil,因为电流越大,需要的线宽越宽,电流线比较大&…

GIT分支操作_查看分支_创建分支_切换分支_合并分支_获取远程分支更改

GIT分支操作 一、GIT分支概念二、git分支操作1、查看分支2、新建分支3、切换分支(1)查看一个分支内的提交对HEAD的影响(2)查看切换分支对HEAD的影响4、合并分支(1) 子模块(2)提交当前分支到主分支5、获取远程分支更改一、GIT分支概念 对于GIT的分支概念,我们这样参照下图来理…