从Hadoop URL中读取数据

2023-05-16

为什么80%的码农都做不了架构师?>>>   hot3.png

要从Hadoop文件系统中读取文件,一个最简单的方法是使用java.net.URL对象来打开一个数据流,从而从中读取数据。一般的格式如下:
1.    InputStream in = null;  
2. try {  
3.     in = new URL("hdfs://host/path").openStream();  
4.     // process in  
5. } finally {  
6.     IOUtils.closeStream(in);  
7. } 
这里还需要一点工作来让Java识别Hadoop文件系统的URL 方案,就是通过一个FsUrlStreamHandlerFactory实例来调用在URL中的setURLStreamHandler-Factory方法。这种方法在一个Java虚拟机中只能被调用一次,因此一般都在一个静态块中执行。这个限制意味着如果程序的其他部件(可能是不在你控制中的第三方部件)设置一个URLStreamHandlerFactory,我们便无法再从Hadoop中读取数据。下一节将讨论另一种方法。
例3-1展示了以标准输出显示Hadoop文件系统的文件的程序,它类似于Unix的cat命令。
例3-1:用URLStreamHandler以标准输出格式显示Hadoop文件系统的文件
1. public class URLCat {  
2.  
3.  static {  
4.    URL.setURLStreamHandlerFactory(new FsUrlStreamHandlerFactory());  
5.  }  
6.    
7.  public static void main(String[] args) throws Exception {  
8.    InputStream in = null;  
9.    try {  
10.      in = new URL(args[0]).openStream();  
11.      IOUtils.copyBytes(in, System.out, 4096, false);  
12.    } finally {  
13.      IOUtils.closeStream(in);  
14.    }  
15.  }  
16. } 
我们使用Hadoop中简洁的IOUtils类在finally子句中关闭数据流,同时复制输入流和输出流之间的字节(本例中是System.out)。copyBytes方法的最后两个参数,前者是要复制的缓冲的大小,后者表示复制结束后是否关闭数据流。这里是将输入流关掉了,而System.out不需要关闭。
下面是一个运行示例:
1.    % hadoop URLCat hdfs://localhost/user/tom/quangle.txt  
2. On the top of the Crumpetty Tree  
3. The Quangle Wangle sat,  
4. But his face you could not see,  

5. On account of his Beaver Hat. 

 

了解更多详情请登录超人学院网站http://www.crxy.cn?sxy或者关注超人学院微信号:CRXY-CN

转载于:https://my.oschina.net/crxy/blog/692521

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

从Hadoop URL中读取数据 的相关文章

  • 使用 Hadoop 映射两个数据集

    假设我有两个键值数据集 数据集A和B 我们称它们为数据集A和B 我想用 B 组的数据更新 A 组中的所有数据 其中两者在键上匹配 因为我要处理如此大量的数据 所以我使用 Hadoop 进行 MapReduce 我担心的是 为了在 A 和 B
  • 日期/时间值的 Django URL 转换器

    我正在尝试使用 Django 内置的 URL 转换器将 URL 中的日期时间字符串转换为视图中的日期对象 如果我手动输入 URL 它们会按预期工作 但尝试为其生成 URL 时找不到匹配项 我的转换器很简单 from django utils
  • 我应该如何使用 Perl URI 类?

    我需要在 Perl 程序中处理一些 HTTP URL 但我怀疑应该如何处理URI https metacpan org module URI类帮助我 特别是 我想使用URI用于解析相对 URL 并获取其组件的类 然而 问题是 我需要一个可以
  • 如何从 Grails 应用程序的 URL 中删除应用程序名称?

    我有一个应用程序在这样的 URL 上运行 http myapp mydomain com myapp http myapp mydomain com myapp 我不想要 myappURL 中的部分 那么如何去掉应用程序名称呢 我只想 ht
  • Spark 上的 Hive 2.1.1 - 我应该使用哪个版本的 Spark

    我在跑蜂巢2 1 1 Ubuntu 16 04 上的 hadoop 2 7 3 根据Hive on Spark 入门 https cwiki apache org confluence display Hive Hive on Spark
  • 如何在 Django 中获取 URL(带有协议和域)(无需请求)?

    我想在 cron 作业中发送邮件 邮件应包含 我的应用程序的链接 在 cron 作业中 我没有请求对象 并且无法使用 request build absolute uri 据我所知 网站框架可以在这里提供帮助 但没有给我协议 http vs
  • 如何从替换特殊字符的字符串创建 URL?

    我正在尝试从 iframe 内部发出 jsonp 请求 由于某种原因 它似乎不起作用 看到这个question https stackoverflow com questions 20422125 no callback in jsonp
  • http://localhost:50070/ 的 hadoop Web UI 不起作用

    命令 jps 显示以下详细信息 第5144章 5464 节点管理器 5307 资源管理器 5800 Jps 显然namenode和datanode丢失了 网络用户界面位于http 本地主机 50070 http localhost 5007
  • 为什么 window.location 无法加载新页面?

    这段代码以前可以工作 但现在不行了 var url myurl id id phase phase window location url 使用 IE 开发工具栏 我已经验证 url 具有有效的 url 并且 window location
  • 这个 Java 语法是什么意思? [复制]

    这个问题在这里已经有答案了 可能的重复 java中的是什么意思 https stackoverflow com questions 12649572 what does the type in java mean 在下面的代码中 Itera
  • 如何将Hive数据表迁移到MySql?

    我想知道如何将日期从 Hive 转移到 MySQL 我看过有关如何将 Hive 数据移动到 Amazon DynamoDB 的示例 但没有看到有关如何将 Hive 数据移动到 MySQL 等 RDBMS 的示例 这是我在 DynamoDB
  • 使用javascript向url添加哈希而不滚动页面?

    在不滚动页面的情况下向 url 添加哈希 使用 JavaScript 我打开页面 我向下滚动 我单击添加哈希的链接 可能带有值 test 示例 http www example com test http www example com t
  • 遍历 ArrayWritable - NoSuchMethodException

    我刚刚开始使用 MapReduce 并且遇到了一个奇怪的错误 我无法通过 Google 回答该错误 我正在使用 ArrayWritable 制作一个基本程序 但是当我运行它时 在Reduce过程中出现以下错误 java lang Runti
  • 如何通过Python访问Hive?

    https cwiki apache org confluence display Hive HiveClient HiveClient Python https cwiki apache org confluence display Hi
  • 什么是 RFC 2396?

    有人能告诉我 RFC 2396 与 NSURL 或其他相关的术语的含义吗 RFC 2396 http www ietf org rfc rfc2396 txt描述 URI 的语法和格式 维基百科有很好的概述 http en wikipedi
  • 猪参考

    我正在学习 Hadoop Pig 并且我总是坚持引用元素 请查找下面的示例 groupwordcount group chararray words bag of tokenTuples from line token chararray
  • 伪分布式模式下的 Hadoop。连接被拒绝

    P S 请不要将此标记为重复 Hi 我一直在尝试以伪分布式模式设置和运行 Hadoop 当我运行 start all sh 脚本时 我得到以下输出 starting namenode logging to home raveesh Hado
  • 对 URL 进行编码 C#

    所以我有一个看起来像这样的 URL http www test com folder1 id 3 但基本上 当他们单击按钮时 我想在 URL 栏中显示与该 id 关联的值的名称 例如 id 3 是名为 Rollex 的手表 所以我想要读取
  • 从 URL 获取页面内容?

    我想通过以下代码从 URL 获取页面内容 public static String getContentResult URL url throws IOException InputStream in url openStream Stri
  • 如何在url请求中发送数组

    我的要求如下 我想给出演员姓名 开始日期 结束日期并获取他在该时期出演的所有电影 因此 我的服务请求是这样的 http localhost 8080 MovieDB GetJson name Actor startDate 20120101

随机推荐

  • 使用dig或nslookup指定dns服务器查询域名解析

    一般来说linux下查询域名解析有两种选择 xff0c nslookup或者dig xff0c 而在使用上我觉得dig更加方便顺手 如果是在linux下的话 xff0c 只要装上dnsutils这个包就可以使用dig命令 安装bind ut
  • freeswitch系列六 freeswitch在拨号计划中通过lua实现对redis操作

    3种freeswitch访问redis方案的分析 由于项目的原因 xff0c 需要在freeswitch的拨号计划中根据redis中特定key的值 xff0c 判断后续的操作是转发请求或者播放录音 这里需要freeswitch中实现对red
  • 接口异常状态统一处理方案在 Firefox 下无效的原因和解决方案

    没想到会是在双十一这么忙的时间段把这篇文章写完 xff0c 公司很忙很紧张 xff0c 可我还有时间在公司做分享 xff0c 写博文 xff0c 惭愧惭愧 做后台系统在双十一期间不如 2c 端的小伙伴有参与感呀 问题根源 上文 接口异常状态
  • 玩转神龙服务器的Hyper-V虚拟化网络之 配置直通网卡

    在上一篇 玩转神龙服务器的Hyper V虚拟化网络之 配置NAT网络 的文章中我们使用NAT的方式使Hyper V VM可以访问公网 在这一篇里 xff0c 我们会使用直通网卡的特性来使VM有对外提供服务的功能 前置条件 神龙服务器 xff
  • postgresql学习笔记1---安装和psql基本操作

    本文是PostgreSQL修炼之道这本书的学习笔记 xff0c 记录下疑惑或不解的地方 xff0e 这里也列一些资源 官方文档 http www postgresql org files documentation pdf 9 4 post
  • python 在字典中添加键值对的方法。

    list 添加元素的方法是 list append xff08 a xff09 将 a 添加到 list 里 dict 添加元素的方法是 dict update dict2 意为 xff0c 将 dict2 的内容添加到 dict 中 转载
  • 常用的4种开发模式

    常用的4种开发模式 1 瀑布式开发 瀑布式开发是由W W Royce在1970年提出的软件开发模型 xff0c 是一种比较老的计算机软件开发模式 xff0c 也是典型的预见性的开发模式 在瀑布式开发模式中 xff0c 开发严格遵循预先计划的
  • 骚猪队的模板

    SaoZhu Team Code Library 2017 11 TAGS ACM for newest edition click here East China Normal University Chen WeiWen Softwar
  • 用nodejs库cheerio抓取网页内容与图片

    之前都是PHP phpQuery 抓取 xff0c 但jQuery更强大 xff0c 于是用nodejs 只是node jquery的依赖太多 xff0c 只好用cheerio 下面是一个抓取脚本 xff1a var http 61 req
  • 完整的系统帮助类Utils

    来源 xff1a http www cnblogs com yuangang p 5477324 html using System using System Collections Generic using System Linq us
  • 转载--git教程

    http lazynight me 2898 html 转载于 https www cnblogs com benchan2015 p 4897797 html
  • 网络通信第一课 C++封装HTTP请求报文说明

    一个HTTP请求报文由请求行 xff08 request line xff09 请求头部 xff08 header xff09 空行和请求数据4个部分组成 使用C 43 43 组装上述报文 boost asio streambuf requ
  • [重要新功能]删除自己发表的评论

    当你登录后 使用cookie也可以 发表评论 不管是使用普通评论还是高级评论 xff0c 你就可以在其他人的Blog中删除自己发表过的评论 这样你在发表评论时 xff0c 如果写错了内容 可以删除后重发 接着 xff0c 准备增加在管理页面
  • 解析FAT16文件系统

    引导扇区的信息例如以下 xff1a 1 偏移地址00H xff0c 长度3 xff0c 内容 xff1a EB 3C 90 跳转指令 2 偏移地址03H xff0c 长度8 内容 xff1a 4D 53 44 4F 53 35 2E 30
  • 将 n个球放入M个盒子中, 设每个球落入各个盒子是等可能的,求有球的盒子数X 的期望...

    将 n个球放入M个盒子中 设每个球落入各个盒子是等可能的 求有球的盒子数X 的期望 引入随机变量 xi 表示第i个盒子有没有球 则 X 61 X1 43 X2 43 43 XM 于是 E X 61 E X1 43 E X2 43 43 E
  • Navicat for MySQL Mac 破解版

    今天在macOS 系统下搭建 Java开发环境 xff0c 需要配置MySQL xff0c 按照Windows的习惯 xff0c 使用Navicat for MySQL 操作比较习惯 然后找不到比较好的破解版 xff0c 这里介绍一个老版的
  • Echarts中X轴只显示最大值和最小值

    目标 xff1a 本篇文章是介绍使用Echarts时设置X轴上的刻度只显示最大值和最小值 xff0c 不显示其他的刻度 这个我在做项目的过程中遇到的一个需求 xff0c 我花费了很长的时间才找到的一种解决办法 xff0c 希望对后面遇到此坑
  • 机器学习期中考复习(md全是证明题)

    佛了
  • 页面字体随窗口变化大小

    详细描述 遇到了一个手机页面字体不能定死的问题 xff0c 页面会随着页面改变 xff0c 而改变大小 师弟遇到的问题 xff0c 我也遇到过 xff0c 我感觉这个东西可能还会有人遇到 截图 分辨是1000px的字体大小和400px的字体
  • 从Hadoop URL中读取数据

    为什么80 的码农都做不了架构师 xff1f gt gt gt 要从Hadoop文件系统中读取文件 xff0c 一个最简单的方法是使用java net URL对象来打开一个数据流 xff0c 从而从中读取数据 一般的格式如下 xff1a 1