Hadoop-No.2之标准文件格式
标准文件格式可以指文本格式,也可以指二进制文件类型.前者包括逗号分隔值(Comma-Separated Value,CSV和可扩展的标记语言文本(Extensible Markup Language. XML)格式 , 后者包括图像.
Hadoop最强大的一个功能就是可以存储任何一种格式的数据. 原始的数据格式能够在线访问,数据完全保真.
1 文本数据
Hadoop非常常见的一个应用是日志(如网络日志和服务器日志)存储于分析.文本数据当然也可以是其他很多格式,包括CSV文件和邮件之类的非结构化数据.在Hadoop中存储文本数据时,主要是考虑文件在系统中的组织形式.另外,因为文本文件会非常快速的消耗Hadoop集群的存储空间 ,所以虽好对其压缩.还有一点需要谨记,使用文本格式存储数据会因类型转换带来额外开销
数据的使用方式会影响压缩格式的选择.如果是为了存档,可能会选择压缩率最高的压缩方式.如果数据需要使用MapReduce进行处理,那么可能选择一种支持分片的压缩格式.可分片格式允许Hadoop将文件分成不同分片进行处理,这对数据的高效并行处理至关重要.
在许多(甚至大多数)场景中,运用SequenceFile, Avro等容器格式都能带来益处,因此容器格式是文本等大部分文件类型的优选格式.此外,容易格式还能够支持可分片的压缩.
2 结构化文本数据
XML和JSON这样的结构化格式是文本文件格式中比较特殊的一种. XML和JSON文件比较难分片,Hadoop也没有为这种格式提供内置的InputFormat.在Hadoop中,JSON格式比XML跟俺处理,因为这里没有标记可以标识记录的开始与结束.处理这类格式时,你可以有一下两个选择进行参考:
- 使用类似于Avro的容器格式.将数据转化为Avro的内容,从而为数据存储与数据处理提供更加紧密,有效的方法.
- 使用处理XML或JSON文件的专用库,比如,说到XML, Pig的PiggyBank库(https://cwiki.apache.org/confluence/display/PIG/PiggyBank)中就有XMLLoader可供使用.而JSON则可以利用Elephant Bird 项目 (https://github.com/twitter/elephant-bird)提供的LzoJsonInputFormat.
3 二进制数据
Hadoop中最常见的源数据格式是文本. 但Hadoop也可以处理二进制文件(比如图像).对于Hadoop上的大多数应用场景来说,二进制文件的存储和处理最好能使用Sequencefile之类的容器格式.如果二进制数据的每个分片大雨64MB,则可以考虑使用该二进制数据自己的格式,无需使用容器格式
Hadoop-No.2之标准文件格式的更多相关文章
- Hadoop基础-MapReduce的常用文件格式介绍
Hadoop基础-MapReduce的常用文件格式介绍 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.MR文件格式-SequenceFile 1>.生成SequenceF ...
- hadoop编程小技巧(5)---自定义输入文件格式类InputFormat
Hadoop代码测试环境:Hadoop2.4 应用:在对数据需要进行一定条件的过滤和简单处理的时候可以使用自定义输入文件格式类. Hadoop内置的输入文件格式类有: 1)FileInputForma ...
- hadoop编程小技巧(7)---自己定义输出文件格式以及输出到不同文件夹
代码測试环境:Hadoop2.4 应用场景:当须要定制输出数据格式时能够採用此技巧,包含定制输出数据的展现形式.输出路径.输出文件名称称等. Hadoop内置的输出文件格式有: 1)FileOutpu ...
- hadoop编程小技巧(5)---自己定义输入文件格式类InputFormat
Hadoop代码測试环境:Hadoop2.4 应用:在对数据须要进行一定条件的过滤和简单处理的时候能够使用自己定义输入文件格式类. Hadoop内置的输入文件格式类有: 1)FileInputForm ...
- [hadoop in Action] 第3章 Hadoop组件
管理HDFS中的文件 分析MapReduce框架中的组件 读写输入输出数据 1.HDFS文件操作 [命令行方式] Hadoop的文件命令采取的形式为: hadoop fs -cmd < ...
- hadoop面试100道收集(带答案)
1.列出安装Hadoop流程步骤 a) 创建hadoop账号 b) 更改ip c) 安装Java 更改/etc/profile 配置环境变量 d) 修改host文件域名 e) 安装ssh 配置无密码登 ...
- Hadoop 和 HDInsight:Windows Azure 中的大数据
世界的大数据包含一个庞大而充满活力的生态系统,但一个开放源码项目上面有这一切,那就是 Hadoop 的王朝. Hadoop 是事实上的标准的分布式的数据运算.Hadoop 提供了一个 MapReduc ...
- How to read video frames in hadoop?如何在Hadoop中读取视频帧?
To process specialized file formats (such as video) in Hadoop, you'd have to write a custom InputFor ...
- HBase文件格式演变之路
Apache HBase是Hadoop的分布式开源的存储管理工具,很适合随机实时的io操作. 我们知道,Hadoop的Sequence File是一个顺序读写,批量处理的系统.可是为什么HBase能做 ...
随机推荐
- 批量导出docker images 的一个简单方法
docker images |cut -c - |xargs docker save -o iamges.tar 主要 最大的长度不能超过 18 超过了就得改一下 -c 后面的数据长度 最终效果为: ...
- Springboot问题解决记录
本随笔只为了方便查阅 如何将SpringBoot项目地打成一个war包: 传送门:https://blog.csdn.net/zhoucheng05_13/article/details/779152 ...
- Linux系列(5):入门之文件类型与扩展名
通过本章你会了解到: 文件类型有哪些? 文件扩展名的意义是什么? 1.文件类型 任何设备在Linux系统中都是文件,不仅如此,连数据沟通的接口也有专属的文件在负责,所以Linux的文件种类真的很多,除 ...
- centos配置发送邮件
邮件已经可以接收到了 CentOS下发送邮件有很多种方法,这里采用比较简单的mail客户端,配置第三方邮件服务商,例如:163.com 1.安装所用软件 yum install mailx sendm ...
- python numpy 的用法——diag函数
当 np.diag(array) 中 array是一个1维数组时,结果形成一个以一维数组为对角线元素的矩阵 array是一个二维矩阵时,结果输出矩阵的对角线元素
- centos7安装nginx服务
Nginx发音引擎x是一个免费的开源高性能HTTP和反向代理服务器,负责处理互联网上一些最大的网站的负载. 本教程将教你如何在你的CentOS Linux 7.5机器上安装和管理Nginx. 安装Ng ...
- 百度URL链接中文转码
百度搜索链接规则为: http://www.baidu.com/s?wd=[搜索词目]&cl=3 有多个搜索词通过加号进行链接: http://www.baidu.com/s?wd=keywo ...
- input 禁止输入特殊字符
方式一:拿到value值以后 在你传递之前处理 function stripscript(value) { var pattern = new RegExp("[`~!@#$^&*( ...
- HTML的学习(注释)
<!--charset 编码字符集--> <!--UTF-8 万国码 gb2312 中国标准第2312条 中文,韩文....大部分的亚裔语言(繁体字不支持) GBK 在上面的基础之上 ...
- http协议:http请求、http响应、间隔时间跳转页面、禁用浏览器缓存
转自:https://blog.csdn.net/u013372487/article/details/46991623 http协议 1. http协议是建立在 tcp/ip协议基础上. 2. 我 ...