当前位置:首页>开发>正文

hadoop家族先学什么 hadoop sequencefile 怎么使用

2023-04-20 07:31:35 互联网 未知 开发

 hadoop家族先学什么 hadoop sequencefile 怎么使用

hadoop家族先学什么

优先学习hadoop,总体架构先了解清楚,有助于以后细节的具体学习。刘鹏的基本书写的很入门,推荐看一看。炼数成金的hadoop视频教程很不错,值得入门看看。然后就可以学习hadoop权威指南。hadoop源码分析,这个地方有张鑫写的《深入云计算:hadoop源代码分析》,和《hadoop源码分析》,之后就可以学习hive和pig,habse,zookeeper,这时候你如果有一定的数据库知识,会简单一点,如果不知道,那可以去了解一下数据库的知识。等你把这些学会了,新的项目,我想hadoop源码都会的人,应该不难了吧!欢迎采纳,交流。——支持开源!热爱学习!吼吼。

hadoop sequencefile 怎么使用

1.SequenceFile特点:是 Hadoop 的一个重要数据文件类型,它提供key-value的存储,但与传统key-value存储(比如hash表,btree)不同的是,它是appendonly的,于是你不能对已存在的key进行写操作。

  2.SequenceFile 有三种压缩态:
  1 Uncompressed – 未进行压缩的状
  2.record compressed - 对每一条记录的value值进行了压缩(文件头中包含上使用哪种压缩算法的信息)
  3. block compressed – 当数据量达到一定大小后,将停止写入进行整体压缩,整体压缩的方法是把所有的keylength,key,vlength,value 分别合在一起进行整体压缩
  3.结构组成:
  3.1 header数据:保存文件的压缩态标识;
  3.2 Metadata数据:简单的属性/值对,标识文件的一些其他信息。Metadata 在文件创建时就写好了,所以也是不能更改
  3.3 追加的键值对数据
  3.4 流存储结构:流的存储头字节格式:
Header: *字节头”SEQ”, 后跟一个字节表示版本”SEQ4”,”SEQ6”.//这里有点忘了 不记得是怎么处理的了,回头补上做详细解释
*keyClass name
*valueClass name
*compression boolean型的存储标示压缩值是否转变为keys/values值了
*blockcompression boolean型的存储标示是否全压缩的方式转变为keys/values值了
*compressor 压缩处理的类型,比如我用Gzip压缩的Hadoop提供的是GzipCodec什么的..
*元数据 这个大家可看可不看的

  4.扩展实现:
  4.1 MapFile 一个key-value 对应的查找数据结构,由数据文件/data 和索引文件 /index 组成,数据文件中包含所有需要存储的key-value对,按key的顺序排列。索引文件包含一部分key值,用以指向数据文件的关键位置
  4.2 SetFile – 基于 MapFile 实现的,他只有key,value为不可变的数据。
  4.3 ArrayFile – 也是基于 MapFile 实现,他就像我们使用的数组一样,key值为序列化的数字。
  4.4 BloomMapFile – 他在 MapFile 的基础上增加了一个 /bloom 文件,包含的是二进制的过滤表,在每一次写操作完成时,会更新这个过滤表。

  5.使用如下:主要是Writer和Reader对象完成文件的添加和读功能,应用demo参照下面链接,其中Map端以SequenceFileInputFormat格式接收,Map的key-value应为SequenceFile保持一致。

最新文章