`

Hadoop读书笔记(三)Java API操作HDFS

阅读更多

Hadoop读书笔记(一)Hadoop介绍:http://blog.csdn.net/caicongyang/article/details/39898629

 

Hadoop读书笔记(二)HDFS的shell操作:http://blog.csdn.net/caicongyang/article/details/41253927

JAVA URL 操作HDFS

OperateByURL.java

 

package hdfs;

import java.io.InputStream;
import java.net.URL;

import org.apache.hadoop.fs.FsUrlStreamHandlerFactory;
import org.apache.hadoop.io.IOUtils;

public class OperateByURL {
	private static final String PATH ="hdfs://192.168.80.100:9000/test.txt";
	public static void main(String[] args) throws Exception {
		//查看文件
		URL.setURLStreamHandlerFactory(new FsUrlStreamHandlerFactory());
		URL url = new URL(PATH);
		InputStream in = url.openStream();
		IOUtils.copyBytes(in, System.out, 1024,true);
	}
}


Hadoop Java api 操作HDFS

OperateByHadoopAPI.Java

 

package hdfs;

import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.net.URI;

import org.apache.hadoop.conf.Configuration;
import org.apache.hadoop.fs.FSDataInputStream;
import org.apache.hadoop.fs.FSDataOutputStream;
import org.apache.hadoop.fs.FileStatus;
import org.apache.hadoop.fs.FileSystem;
import org.apache.hadoop.fs.Path;
import org.apache.hadoop.io.IOUtils;

public class OperateByHadoopAPI {
	//Hadoop HDFS路径
	private static final String PATH="hdfs://192.168.80.100:9000/";
	private static final String DIR="/d1";
	private static final String FILE="/d1/default.cfg";
	public static void main(String[] args) throws Exception {
		FileSystem fileSystem = FileSystem.get(new URI(PATH), new Configuration());
		//创建文件夹
		fileSystem.mkdirs(new Path(DIR));
		
		//上传文件
		//方法一
		//fileSystem.copyFromLocalFile(new Path("F:/hadoopbaiduyundownload/liclog.txt"), new Path(DIR));
		//方法二
		FSDataOutputStream out = fileSystem.create(new Path(FILE));
		FileInputStream in = new FileInputStream(new File("F:/hadoopbaiduyundownload/default.cfg"));
		IOUtils.copyBytes(in, out, 1024, true);
		
		//下载
		//方法一  产生WARN 待解决:14/11/19 21:39:49 WARN util.NativeCodeLoader: Unable to load native-hadoop library for your platform... using builtin-java classes where applicable
		File file = new File("F:/hadoopbaiduyundownload/test.txt");
		File file2 = new File("F:/hadoopbaiduyundownload/test2.txt");
		fileSystem.copyToLocalFile(new Path("hdfs://192.168.80.100:9000/test.txt"), new Path(file.getAbsolutePath()));
		
		//方法二
		FSDataInputStream inputStream = fileSystem.open(new Path("hdfs://192.168.80.100:9000/test.txt"));
		FileOutputStream outputStream = new FileOutputStream(file2.getAbsolutePath());
		IOUtils.copyBytes(inputStream, outputStream, 1024, true);
		
		//遍历文件夹
		
		FileStatus[] listStatus = fileSystem.listStatus(new Path("/"));
		for (FileStatus fileStatus : listStatus) {
			System.out.println(fileStatus.isDir()?"文件夹":"文件"+" "+fileStatus.getOwner()+" "+fileStatus.getReplication()+" "+ fileStatus.getPath());
		}
		
		//删除文件
		/**
		 * @parameter path
		 * @parameter boolean :如果填true,path为文件夹时递归删除
		 * 
		 */
		fileSystem.delete(new Path(DIR), true);
		
	}
}



 

 

欢迎大家一起讨论学习!

有用的自己收!

记录与分享,让你我共成长!欢迎查看我的其他博客;我的博客地址:http://blog.csdn.net/caicongyang

 

 

 

 

 

分享到:
评论

相关推荐

    Hadoop学习文档笔记,基本原理 HDFS

    本文将深入探讨HDFS的基本原理和操作,以及如何通过Java API进行文件操作。 Hadoop分布式文件系统(HDFS)是Google文件系统(GFS)的一种实现,设计用于处理海量数据。HDFS的核心特点是分布式存储,它将大文件分割...

    Hadoop学习笔记(一):HDFS分布式文件系统(从环境搭建到Java API)-附件资源

    Hadoop学习笔记(一):HDFS分布式文件系统(从环境搭建到Java API)-附件资源

    03.hadoop上课笔记之java编程和hbase

    Hadoop 上课笔记之 Java 编程和 HBase Hadoop 是一个分布式计算框架,HBase 是基于 Hadoop 的一个分布式数据库系统。下面是 Java 编程和 HBase 相关的知识点: 一、HBase 主要类和接口 1. Admin 类:用于建立...

    最新Hadoop学习笔记

    本笔记将从环境搭建、HDFS配置、YARN配置、分布式配置到MapReduce编程,全方位介绍Hadoop的学习过程,并结合JavaWeb项目实践,帮助读者深入理解Hadoop的工作原理和应用。 ### 一、环境搭建 在开始Hadoop的学习之前...

    Hadoop分布式安装笔记.rar

    用户可以通过Hadoop的shell命令或编程接口(如Hadoop的Java API)与HDFS进行交互。 **六、MapReduce编程模型** MapReduce是Hadoop处理大数据的核心。它将大型任务拆分成小的Map任务,在各个节点并行执行,然后通过...

    hadoop安装及详细学习笔记

    - **API 基础操作**:使用 Hadoop 提供的 Java API 进行文件上传、下载、修改等操作。 - **API 数据清洗**:使用 API 实现数据清洗功能,例如去除无效数据或格式化数据。 #### MapReduce 初级 1. **分片逻辑**:...

    Hadoop大数据开发教程笔记软件.zip

    1. **Hadoop环境搭建**:如何在本地或者集群环境中安装配置Hadoop,包括Java环境设置、Hadoop版本选择、配置文件的修改(如core-site.xml、hdfs-site.xml、yarn-site.xml和mapred-site.xml)以及启动和停止Hadoop...

    Hadoop,SPRK开发学习笔记

    本文将围绕“Hadoop,SPARK开发学习笔记”这一主题,深入探讨Hadoop的组件HDFS(分布式文件系统)、HBase(分布式数据库)和Hive(数据仓库工具),以及Spark的核心特性与开发实践。 首先,Hadoop是Apache基金会的...

    java云笔记

    9. **云存储**:为了实现数据的云端存储,应用可能会使用云服务商如Amazon S3或Google Cloud Storage,或者自建分布式文件系统,如Hadoop HDFS,来存储和备份用户笔记。 10. **数据一致性**:为了确保多用户环境下...

    Hadoop学习网址

    - **API文档**: 针对Hadoop的各种API提供详细的说明,包括Java API文档,这对于开发者来说是非常宝贵的资源。 - **最佳实践**: 分享了一些实际应用场景下的配置和优化技巧,帮助用户更好地利用Hadoop解决实际问题...

    大数据笔记

    3. HDFS的Java操作:除了Shell命令,Hadoop还提供了Java API,使得开发者可以直接在Java程序中对HDFS进行操作,实现更复杂的任务。 4. DataNode的工作机制:DataNode负责存储数据块,并定期向NameNode发送心跳信息,...

    Java分布式应用学习笔记

    Java Transaction API (JTA) 和Java Transaction Service (JTS) 提供了分布式事务管理的框架,允许跨多个资源(如数据库和消息队列)的事务操作。 6. 高可用性和容错 为了确保系统的稳定性,Java提供了负载均衡...

    自己的学习笔记ppt

    根据提供的文件信息,我们可以推断出这是一份关于Hadoop分布式文件系统(HDFS)的学习笔记。接下来将基于这些信息,详细阐述HDFS的核心概念、架构以及读写操作流程。 ### Hadoop概述 Hadoop是一个开源软件框架,...

    hadoop文档

    - **hadoop笔记.ppt**:这可能是一个PPT形式的学习笔记,整理了Hadoop的关键概念、核心组件的工作原理以及一些实例分析。 总之,Hadoop作为一个强大的分布式计算框架,对于大数据处理和分析有着至关重要的作用。...

Global site tag (gtag.js) - Google Analytics