要从Hadoop文件系统中读取文件,最简单的方法就是使用java.net.URL 对象打开数据流,进而从中读取数据。
例如:
InputStream in = null;
try{
in = new URL("hdfs://host/path").openStream();
}finally{
IOUtils.closeStream(in);
}
但是要让java能够识别hadoop的hdfs 的url 方案还需要一些额外的工作,可以采用通过FsUrlStreamHandlerFactory 的实例调用URL中的setURLStreamHandlerFactory方法。
URL.setURLStreamHandlerFactory(new FsUrlStreamHandlerFactory());
但是这样操作,也会存在一定的问题。java虚拟机只能调用一次上述方法,因此通常在静态方法中去调用,这就意味着,如果其他程序已经调用过这个方法,那么你的程序将不再能调用这个方案。
完整实例
package gucas.xiaoxia;
import java.io.InputStream;
import java.net.URL;
import org.apache.hadoop.fs.FsUrlStreamHandlerFactory;
import org.apache.hadoop.io.IOUtils;
public class CatURL {
static {
URL.setURLStreamHandlerFactory(new FsUrlStreamHandlerFactory());
}
/**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
InputStream input = null;
try {
input = new URL("hdfs://localhost/user/hadoop/map.txt")
.openStream();
IOUtils.copyBytes(input, System.out, 4096, false);
} catch (Exception e) {
e.printStackTrace();
} finally {
IOUtils.closeStream(input);
}
}
}
输出:
hello world:10hello world:10hello world:10hello world:10hello world:10hello world:10hello world:10hello world:10
hello world:10hello world:10hello world:10hello world:10hello world:10hello world:10hello world:10hello world:10
hello world:10hello world:10hello world:10hello world:10hello world:10hello world:10hello world:10hello world:10
hello world:10hello world:10hello world:10hello world:10hello world:10hello world:10hello world:10hello world:10
分享到:
相关推荐
从Hadoop URL中读取数据 通过FileSystem API读取数据 写入数据 目录 查询文件系统 删除数据 数据流 文件读取剖析 文件写入剖析 一致模型 通过 distcp并行拷贝 保持 HDFS 集群的均衡 ...
从Hadoop URL中读取数据 通过FileSystem API读取数据 写入数据 目录 查询文件系统 删除数据 数据流 文件读取剖析 文件写入剖析 一致模型 通过 distcp并行拷贝 保持 HDFS 集群的均衡 Hadoop的归档文件 使用Hadoop归档...
020 结合WordCount实例讲解Hadoop的数据存储和数据计算 021 Hadoop 五大服务与配置文件中的对应关系 022 分析Hadoop 三种启动停止方式的Shell 脚本 023 去除警告【Warning$HADOOP HOME is deprecated。】 024 Hadoop...
hadoop 中文文档index Prefetch chain 预处理链 Pre selector Precondition Enforcer Fetch chain 提取链 Fetch DNS Fetch Http Extractor chain抽取链 Extractor HTML Extractor JS Write Chain 写链 ARC ...
6.1.1 提取作业统计信息的工具6.1.2 监控6.2 确定性能问题的原因6.2.1 了解哪些因素会影响MapReduce 作业的性能 6.2.2 map 端异常技术点28 发现输入数据中的坑技术点29 确定map 端数据倾斜问题 技术...
2. 编程实现一个类“MyFSDataInputStream”,该类继承“org.apache.hadoop.fs.FSDataInputStream”,要求如下:实现按行读取 HDFS 中指定文 件的方法“readLine()”,如果读到文件末尾,则返回空,否则返回文件 一行...
11.2 使用Pig 在日志数据中发现恶意行为者 11.2.1 加载数据 技术点67 加载Apache 日志文件 11.2.2 过滤和投影 技术点68 通过过滤和投影减少数据处理量 11.2.3 分组和聚合UDF 技术点69 IP 地址的分组...
其主要功能是访问网页、提取数据并存储,以便后续分析或展示。爬虫通常由搜索引擎、数据挖掘工具、监测系统等应用于网络数据抓取的场景。 爬虫的工作流程包括以下几个关键步骤: URL收集: 爬虫从一个或多个初始...
⼤数据中数据采集的⼏种⽅式 ⼀、采集⼤数据的⽅法 1.1通过系统⽇志采集⼤数据 ⽤于系统⽇志采集的⼯具,⽬前使⽤最⼴泛的有:Hadoop 的Chukwa、ApacheFlumeAFacebook的Scribe和LinkedIn的Kafka等。这 ⾥主要学习...
⼤数据应⽤测试过程与传统的web系统有较⼤的不同,⼤数据应⽤测试通常会分为web侧和ETL侧测试,web侧基本就是功能测试,⽽ETL(Extracting-Transfroming- Loading)测试主要指从任何外部系统提取、转换、载⼊数据到...
mail "SMS "URL's " Social " Advertising 模板模型 设备 Apps"ESB"… Beacons"物联网"… 数据流 企业系统 大数据 Hadoop"NoSQL"… 社交网络 Twitter"Yammer"… Search"News"… 其他 机械设备 "日志"… 可视化 医疗...
client通过hdfs的api并发读取数据。 3. 关闭连接。 1. 举⼀个简单的例⼦说明mapreduce是怎么来运⾏的 ? wordcount的例⼦ 1. 1. ⽤mapreduce来实现下⾯需求? 现在有10个⽂件夹,每个⽂件夹都有1000000个url.现在让你...
95_从db输入数据进行mr计算: L. M4 I6 y, R2 l/ u/ L 96_输出数据到db中 97_NLineInputFormat& u( k1 T& z( O# P, S* y1 Y 98_KeyValueTextInputFormat* p$ O1 z- h, n" e( x1 s& c% z' v 99_join mapper端连接- N, ...
中的是使用带有 python 脚本的 hadoop 流从元数据集中提取链接的示例 提供了文本数据集的快速概览,并提供了一个用于提取名词短语的简单 NLTK 应用程序(再次使用 python 流) 显示了如何使用 java mapreduce 运行...
在专业搜索引擎中 ,网络爬虫的任务是获取 Web页面和决定链接的访问顺序 ,它通常从一个 "种子集 "(如用户查询、种子链接或种子页面 )发,以迭代的方式访问页面和提取链接。搜索过程中 ,未访问的链接被暂存在一个称为 ...
在专业搜索引擎中 ,网络爬虫的任务是获取 Web页面和决定链接的访问顺序 ,它通常从一个 "种子集 "(如用户查询、种子链接或种子页面 )发,以迭代的方式访问页面和提取链接。搜索过程中 ,未访问的链接被暂存在一个称为 ...
在专业搜索引擎中 ,网络爬虫的任务是获取 Web页面和决定链接的访问顺序 ,它通常从一个 "种子集 "(如用户查询、种子链接或种子页面 )发,以迭代的方式访问页面和提取链接。搜索过程中 ,未访问的链接被暂存在一个...
第 28 章 Python 通过 amqp 消息队列协议中的 Qpid 实现数据通信 第 29 章 python simplejson 模块浅谈 第 30 章 python Howto 之 logging 模块 第 31 章 Python FAQ3-python 中 的原始(raw)字符串
Map过程: MapReduce程序读取输入文件中的url,作为一个map任务进行帖子爬取,将爬取到的每一条帖子输出 Reduce过程:将得到的帖子原样输出 不足 这里map过程应该拿到一个帖子就输出的,而我是拿到该板块所有帖子再输出...
这是我的毕设,基于Hadoop做了个JSON文件信息提取工具. what specifial? 依赖org.json:json:20141113 提取特定路径的信息,如路径:o$user->o$url->a$urls->o$0->s$expanded_url, 会提取到http://abcd.exjkd信息. 路径...