`
k_lb
  • 浏览: 843083 次
  • 性别: Icon_minigender_1
  • 来自: 郑州
社区版块
存档分类
最新评论
  • kitleer: 据我所知,国内有款ETL调度监控工具TaskCTL,支持ket ...
    kettle调度

HADOOP JAVA接口

 
阅读更多

从Hadoop URL 中读取数据


package org.urlcat;


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

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

public class URLCat {
	static{
		URL.setURLStreamHandlerFactory(new FsUrlStreamHandlerFactory());
	}
	
	public static void main(String args[]) throws Exception{
		InputStream in = null;
		try{
			in = new URL(args[0]).openStream();
			IOUtils.copyBytes(in,System.out,4096,false);
		} finally{
			IOUtils.closeStream(in);
		}
	}
}

这里采用的方法是通过 FsUrlStreamHandlerFactory 实例调用URL 中的setURLStreamHandlerFactory 方法。由于JAVA 虚拟机只能用一次上述方法,因此 通常在静态方法中调用上述方法。这个限制意味首如果程序的其他组件--如不受你控制的第三方组件--已经声明了一个URL实例,你将无法再使用上述方法从Hadoop 中读取数据。


我们可以调用Hadoop 中简洁的IOUtils 类,并在finally子句中关闭数据流,同时也可以在输入流和输出流之间复制数据。copyBytes方法的最后两个参数,第一个用于设置复制的缓冲区大小,第二个用于设置复制结束后是否关闭数据流。


通过FfileSystem API 读取数据


package org.filesystemcat;

import java.io.InputStream;
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.io.IOUtils;

public class FileSystemCat {
	public static void main(String args[])  throws Exception{
		String uri = args[0];
		Configuration conf = new Configuration();
		FileSystem fs = FileSystem.get(URI.create(uri),conf);
		InputStream in = null;
		try{
			in = fs.open(new Path(uri));
			IOUtils.copyBytes(in, System.out, 4096,false);
		}finally{
			IOUtils.closeStream(in);
		}
	}
}


分享到:
评论

相关推荐

    hadoop Java接口 文件操作类

    Java接口在Hadoop中扮演着核心角色,提供了丰富的API供开发者进行编程。本篇将深入探讨如何利用Hadoop的Java接口进行文件操作,实现对Hadoop服务的增、删、改、查等功能。 首先,我们要了解Hadoop的核心组件:HDFS...

    Hadoop Java接口+RPC代码实现

    1.java接口操作Hadoop文件系统(文件上传下载删除创建...可举一反三) 2.RPC远程过程调用的java代码实现,便于理解Hadoop的RPC协议,具体使用方法可参考我的博客...

    hadoop的java_api

    在这个Java API中,我们可以找到一系列的类和接口,它们允许开发者编写应用程序来利用Hadoop的功能。 在Hadoop 2.x及以上版本中,Java API进行了许多优化和改进,以提高性能和稳定性。以下是一些主要的组件和概念:...

    Hadoop的shell接口和java接口

    ### Hadoop的Shell接口和Java接口知识点解析 #### 一、Shell接口操作 **1. 文件上传** - **步骤**: 使用`hadoop fs -put <from> <to>`命令进行文件上传。 - **注意事项**: - 需要确保文件已存在于本地文件系统...

    java管理hdfs文件和文件夹项目hadoop2.4

    在Hadoop 2.4版本中,`org.apache.hadoop.fs.FileSystem` API是Java程序与HDFS交互的主要接口。这个API提供了创建、读取、写入、删除文件和目录等操作。以下是一些关键的类和方法: 1. **配置Hadoop环境**:在Java...

    云计算hadoop java写的源代码

    1. **HDFS操作**:代码可能包含了使用Hadoop的FSDataInputStream和FSDataOutputStream接口读写HDFS文件的示例,以及如何创建、删除、移动和复制文件或目录的操作。 2. **MapReduce编程**:Java源码中会包含Mapper和...

    基于Hadoop的分布式系统依赖的所有JAR包

    HDFS的JAR包包含了实现文件系统接口的类,如`hadoop-hdfs-client.jar`,以及在集群中运行的DataNode和NameNode的服务器端组件,如`hadoop-hdfs.jar`。 2. **MapReduce**:Hadoop的MapReduce是一种编程模型,用于大...

    hadoop的JAVA编程包

    Java编程包是Hadoop的核心组成部分,因为Hadoop主要是用Java编写的,并且提供了丰富的API供开发者进行扩展和自定义。下面将详细讨论Hadoop与Java编程的相关知识点。 1. **Hadoop的基本概念** - **分布式文件系统...

    hdfs_design.rar_HDFS-OPERATE_hadoop_hadoop java_hdfs

    HDFS提供了丰富的Java接口,允许开发人员在应用程序中直接操作HDFS。例如,`FileSystem`类提供了创建、打开、关闭文件或目录的方法,`DFSClient`类负责实际的网络通信,而`DFSOutputStream`和`DFSInputStream`则用于...

    Hadoop+HBase+Java API

    **Java API** 是Java编程语言提供的应用程序接口,允许开发者使用Java来访问和操作Hadoop和HBase的功能。对于Hadoop,Java API主要包括`org.apache.hadoop.mapreduce`包下的类,如Job、Mapper、Reducer等,用于实现...

    java操作Hadoop源码之HDFS Java API操作-上传文件

    在Java编程环境中,Hadoop分布式文件系统(HDFS)提供了丰富的Java API,使得开发者能够方便地与HDFS进行交互,包括文件的上传、下载、读写等操作。本篇文章将详细探讨如何使用HDFS Java API来实现文件上传的功能。 ...

    java项目Hadoop依赖包

    Hadoop MapReduce Client则提供了与MapReduce框架交互的接口,使得Java开发者可以在自己的应用程序中调用MapReduce任务。Hadoop HDFS模块提供了对HDFS的编程接口,让开发者可以编写代码来操作文件系统。 使用这些...

    Hadoop入门程序java源码

    这个“Hadoop入门程序java源码”是为初学者准备的,目的是帮助他们快速掌握如何在Hadoop环境中编写和运行Java程序。Hadoop的主要组件包括HDFS(Hadoop分布式文件系统)和MapReduce,这两个部分将在下面详细介绍。 ...

    Hadoop教学使用java_jdk

    Hadoop的编程接口主要是用Java实现的,因此,使用Hadoop进行开发通常需要Java基础。`Hadoop教学使用java_jdk.txt`很可能是包含了一些教学指导或者示例代码,帮助学生了解如何使用Java编写Hadoop程序。MapReduce任务...

    hadoop Java API

    Java API是Hadoop的主要编程接口,允许开发人员用Java语言编写分布式应用程序。本篇将深入探讨Hadoop Java API的相关知识点,包括Hadoop的核心组件、API的使用、数据存储与处理以及常见问题解决。 首先,Hadoop由两...

    Hadoop下Eclipse用Java编程实现WordCount

    ### Hadoop下Eclipse用Java编程实现WordCount #### 一、环境配置与说明 **操作系统**: CentOS 6.5 x64 (安装类型选择软件开发平台) **安装软件**: - hadoop-2.7.1.tar.gz - jdk-7u79-linux-x64.tar.gz / jdk-8u...

    Java-org.apache.hadoop

    Hadoop的核心库`hadoop-core`包含了实现这些功能的Java类和接口。在`hadoop-core-0.20.2-320-sources.jar`这个文件中,我们可以找到源代码,这对于开发者来说非常有价值,因为它允许他们深入了解Hadoop的工作原理,...

    hbase hadoop chm java 帮助文档

    【标题】"hbase hadoop chm java 帮助文档"揭示了这是一份针对Java程序员在Hadoop和HBase开发中使用的CHM(Windows帮助文档)工具集。CHM文件是一种常见的技术文档格式,它将多个HTML页面、图像和其他资源打包成一个...

    Hadoop客户端Java代码.zip

    本压缩包"**Hadoop客户端Java代码.zip**"包含了使用Java语言编写Hadoop客户端应用的源代码,这对于理解Hadoop的客户端编程接口以及进行数据处理是非常有帮助的。以下是基于Hadoop客户端Java代码的一些关键知识点: ...

    HDFS文件系统JAVA api访问接口(基于hadoop大数据平台)

    在搭建完hadoop大数据系统(CDH5.16.1)后,如何访问hdfs文件系统上的数据呢?那当然是通过构建maven项目 使用java api接口进行文件了。为此,特别进行了hdfs文件系统java api访问的整理。

Global site tag (gtag.js) - Google Analytics