package cn.framelife.hadoop;
import java.io.IOException;
import java.io.InputStream;
import org.apache.hadoop.conf.Configuration;
import org.apache.hadoop.fs.FileSystem;
import org.apache.hadoop.fs.Path;
import org.apache.hadoop.io.IOUtils;
/**
* 使用FileSystem API读取数据
* @author 潘广伟
*
*/
public class FileSystemCat {
public static Configuration getConf(){
Configuration configuration = new Configuration();
configuration.addResource(new Path("core-site.xml"));
configuration.addResource(new Path("hdfs-site.xml"));
return configuration;
}
public static void main(String[] args) {
InputStream in = null;
String url = "hdfs://namenode:9000/user/hadoop/hello1.txt";
try {
FileSystem fs = FileSystem.get(getConf());
in = fs.open(new Path(url));
IOUtils.copyBytes(in, System.out, in.available(), false);
} catch (IOException e) {
e.printStackTrace();
}finally{
IOUtils.closeStream(in);
}
}
}
package cn.framelife.hadoop;
import java.io.IOException;
import java.io.InputStream;
import java.net.MalformedURLException;
import java.net.URL;
import org.apache.hadoop.fs.FsUrlStreamHandlerFactory;
import org.apache.hadoop.io.IOUtils;
/**
* 使用Hadoop URL读取数据
* @author 潘广伟
*
*/
public class URLCat {
static{
URL.setURLStreamHandlerFactory(new FsUrlStreamHandlerFactory());
}
public static void main(String[] args) {
InputStream in = null;
String url = "hdfs://namenode:9000/user/hadoop/hello1.txt";
try {
in = new URL(url).openStream();
byte[] b = new byte[in.available()];
in.read(b, 0, in.available());
String msg = new String(b);
System.out.println("接收到的信息:"+msg);
//下面是通过IOUtils工具把输入流中的数据使用系统输出
// IOUtils.copyBytes(in, System.out, 4096, false);
} catch (MalformedURLException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}finally{
IOUtils.closeStream(in);
}
}
}
分享到:
相关推荐
本篇文章将深入讲解如何使用HDFS Java API进行文件的上传、下载、查看以及集群环境的相关操作。 首先,我们要了解HDFS API的基本概念。HDFS API是Hadoop的核心组件之一,它提供了一组Java类和接口,允许用户在HDFS...
2. 从HDFS下载文件到本地: 使用`FileSystem`对象的`copyToLocalFile`方法可以将HDFS上的文件下载到本地。这个方法有多个重载版本,可以根据需要选择。以下是一个简单的示例: ```java fs.copyToLocalFile(new ...
本篇文章将详细探讨如何使用HDFS Java API来实现文件上传的功能。 首先,我们需要引入Hadoop相关的jar包。在描述中提到,附件包含了所有必要的jar包,这通常包括`hadoop-common`、`hadoop-hdfs`等核心组件的库文件...
适合刚接触hadoop的学生或小白,内容包括HDFS shell操作及HDFS Java API编程 有图片有代码
【大数据技术基础实验报告-调用Java API实现HDFS操作】 本实验主要涵盖了大数据技术的基础,特别是如何在Linux环境下利用Java API对Hadoop分布式文件系统(HDFS)进行操作。实验涉及的主要步骤包括Eclipse的安装、...
在分布式存储领域,Hadoop HDFS(Hadoop Distributed File System)是广泛使用的系统,它提供了高容错性和高吞吐量的数据访问。本教程将详细讲解如何利用HDFS API进行文件的上传、创建、删除以及重命名等基本操作。...
HDFS Java api 简单程序.zip
在分布式存储领域,Hadoop Distributed...总之,HDFS的JAVA接口API为Java开发者提供了强大的工具,使得在分布式环境中处理大量数据变得简单高效。无论是基本的文件操作还是复杂的集群管理,都可以通过这些API轻松实现。
HDFS采用了简单的一致性模型,支持文件的一次写入和多次读取,允许追加写入但不支持文件的随机修改。HDFS特别适合于流式数据访问模式,关注的是数据吞吐量而不是访问延迟,典型应用场景包括存储大型文件(GB~TB级别...
HDFS Java API的使用简化了对HDFS的操作,使得开发者能够在应用程序中轻松地读取、写入和管理HDFS上的大数据。然而,为了保证高可用性和数据安全性,还需要考虑如HA(High Availability)配置,以防止NameNode单点...
本教程将详细讲解如何使用Java API进行HDFS上的文件存取操作,包括文件上传和下载,以及客户端的基本使用。 一、HDFS简介 HDFS是Apache Hadoop项目的核心部分,设计用于处理海量数据,通过在廉价硬件上实现数据的...
2. **配置文件**:用于设置FTP服务器和HDFS连接的参数,例如服务器端口、认证信息、HDFS集群配置等。 3. **文档**:包括用户指南、开发者手册,可能详细解释了如何安装、配置和使用这个FTP-over-HDFS服务。 4. **...
2. **HDFS API**:Java API提供了对HDFS的全面操作,包括文件创建、读写、删除等,常用于开发MapReduce程序。 3. **WebUI监控**:NameNode提供了一个Web界面,用户可以查看HDFS的状态,包括文件系统树、数据块分布...
总之,使用Hadoop的Java API上传文件到HDFS是一个相对简单的过程,主要涉及配置、文件系统的获取、目录检查以及数据的读写操作。理解这些概念和步骤对于任何处理Hadoop相关任务的开发人员都至关重要。
2. **读取数据**:使用`client.read()`方法可以读取HDFS上的文件内容。 ```python with client.read('/path/to/file') as reader: content = reader.read() # 处理content ``` 3. **写入数据**:使用`client....
下载HDFS上的文件到本地同样简单,只需使用`FileSystem#copyToLocalFile`方法: ```java import org.apache.hadoop.conf.Configuration; import org.apache.hadoop.fs.FileSystem; import org.apache.hadoop.fs....
这个模块提供了一个简单易用的API来执行读写操作。以下是如何使用`pyhdfs`进行文件操作的示例: 1. **文件读取**: - 首先,需要导入`HdfsClient`,指定HDFS的地址和端口,例如:`client = HdfsClient(hosts='ghym...