分享

HDFS中 数据存储的两个问题

oYaoXiang1 发表于 2013-10-25 10:43:36 [显示全部楼层] 回帖奖励 阅读模式 关闭右栏 2 5571
HDFS如何连续读取一个大文件中的小文件
1,到底流数据是什么吗?与普通数据在存储和操作上有什么区别吗?
2,序列化的意义在哪里吗?在hadoop中怎么体现(虽然书上说是为了存储和传输)吗? 序列化的文件同原文件的区别吗?

已有(2)人评论

跳转到指定楼层
goldtimes 发表于 2013-10-25 10:43:36
HDFS如何连续读取一个大文件中的小文件
>>>>>>>>>>>>>>>>
你在HDFS中读取这个大文件后要对其进行解析,先能得到其中的小文件,也就是说小文件要你自己去解析。如大文件是big.zip,其中有很多小文件,你要先用HDFS的接口读取big.zip这个大文件,再调用zip的解析库来读取其中的小文件。如果你要用MapReduce来对大文件进行分块的话,最好用bzip2格式进行压缩,因为其格式是splitable,但是它的缺点是压缩速度比较慢。
1,到底流数据是什么吗?与普通数据在存储和操作上有什么区别吗?
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
流数据是一组顺序、大量、快速、连续到达的数据序列,一般情况下,数据流可被视为一个随时间延续而无限增长的动态数据集合。流数据具有四个特点:
1)数据实时到达;
2)数据到达次序独立,不受应用系统所控制;
3)数据规模宏大且不能预知其最大值;
4)数据一经处理,除非特意保存,否则不能被再次取出处理,或者再次提取数据代价昂贵。
数据流是一般是现象驱动的,其速度与数据项到达的次序无法被控制,而且数据流中的流数据在被读取一次之后,就被丢弃。流数据的处理可以按其描述方式来处理,一般都有通用的数据流处理模型。
这里有一些资料http://wenku.baidu.com/view/e158b06db84ae45c3b358c54.html
2,序列化的意义在哪里吗?在hadoop中怎么体现(虽然书上说是为了存储和传输)吗? 序列化的文件同原文件的区别吗?
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
序列化的目标是为网络传输与数据的持久化,其过程是把结构化对象转换成字节流的形式,其序列化架构工具一般有Google的protobuffer, Apache 的avro和facebook的thrift, 这里的thrift是带rpc框架的,还有新出来的messagePack。 序列化的文件一般用二进制形式。
回复

使用道具 举报

atsky123 发表于 2013-10-25 10:43:36
回复 2# amuseme
    多谢你的解释
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

关闭

推荐上一条 /2 下一条