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
【大数据开发技术】实验03-Hadoop读取文件
【大数据开发技术】实验03-Hadoop读取文件
200 0
|
1月前
Hadoop-09-HDFS集群 JavaClient 代码上手实战!详细附代码 安装依赖 上传下载文件 扫描列表 PUT GET 进度条显示(二)
Hadoop-09-HDFS集群 JavaClient 代码上手实战!详细附代码 安装依赖 上传下载文件 扫描列表 PUT GET 进度条显示(二)
40 3
|
1月前
|
分布式计算 Java Hadoop
Hadoop-09-HDFS集群 JavaClient 代码上手实战!详细附代码 安装依赖 上传下载文件 扫描列表 PUT GET 进度条显示(一)
Hadoop-09-HDFS集群 JavaClient 代码上手实战!详细附代码 安装依赖 上传下载文件 扫描列表 PUT GET 进度条显示(一)
40 2
|
1月前
|
分布式计算 Hadoop 网络安全
Hadoop-08-HDFS集群 基础知识 命令行上机实操 hadoop fs 分布式文件系统 读写原理 读流程与写流程 基本语法上传下载拷贝移动文件
Hadoop-08-HDFS集群 基础知识 命令行上机实操 hadoop fs 分布式文件系统 读写原理 读流程与写流程 基本语法上传下载拷贝移动文件
30 1
|
1月前
|
存储 机器学习/深度学习 缓存
Hadoop-07-HDFS集群 基础知识 分布式文件系统 读写原理 读流程与写流程 基本语法上传下载拷贝移动文件
Hadoop-07-HDFS集群 基础知识 分布式文件系统 读写原理 读流程与写流程 基本语法上传下载拷贝移动文件
44 1
|
4月前
|
分布式计算 Hadoop Java
Hadoop编辑hadoop-env.sh文件
【7月更文挑战第19天】
290 5
|
4月前
|
分布式计算 Hadoop Shell
Hadoop修改bashrc或profile文件
【7月更文挑战第16天】
128 2
|
4月前
|
分布式计算 Hadoop 关系型数据库
实时计算 Flink版操作报错合集之Hadoop在将文件写入HDFS时,无法在所有指定的数据节点上进行复制,该如何解决
在使用实时计算Flink版过程中,可能会遇到各种错误,了解这些错误的原因及解决方法对于高效排错至关重要。针对具体问题,查看Flink的日志是关键,它们通常会提供更详细的错误信息和堆栈跟踪,有助于定位问题。此外,Flink社区文档和官方论坛也是寻求帮助的好去处。以下是一些常见的操作报错及其可能的原因与解决策略。
|
5月前
|
存储 分布式计算 NoSQL
|
5月前
|
数据采集 SQL 分布式计算

相关实验场景

更多