Hadoop 学习笔记

Some Terminologies

Job & Task

In Hadoop, Job is divided into multiple small parts known as Task.

Slot

YARN

集群计算层:YARN;集群存储层:HDFS & HBase

  • Storage: HDFS & HBase
  • Compute: YARN
  • Application: MapReduce, Spark, Tez

(Spark & Tez 是 DAG 任务) 更高层的应用建立在这里的 Application 之上,例如 Hive, Pig

Yarn 的运行机制

resource manager, container, node manager

YARN 资源请求的本地化:尽量同一个节点、同一个机架

在 Mapreduce 中,一个用户作业对应一个应用;在 Spark 中,作业的每个工作流/每个用户对话对应一个应用;

一般都使用 Yarn 上的应用来构建新的应用,例如 MR, Spark。

YARN 与 MapReduce 1 对比

惯例:

  • MapReduce 1 来指代 Hadoop 1 中的 MapReduce 分布式执行框架
  • YARN (Hadoop2) 指代 MapReduce 2

在 MapReduce 1 中,两类守护进程:1 个 jobtracker,1 个/多个 tasktracker。在 MapReduce 中,jobtracker 完成了很多的管理任务;而在 YARN 中,这些分别由不同的工具来替代:

  • resource manager
  • application master (每个 MapReduce job 一个)
  • timeline

YARN 的优点:

  • 可扩展性(Scalability)
  • 可用性(Availability)
  • 利用率(Utilization)
  • 多租户(Multitenancy) YARN 之下可以有多种版本的分布式系统,例如多种版本的 Hadoop

YARN 调度

三种调度器:FIFO Scheduler, Capacity Scheduler, Fair Scheduler。FIFO 会让小作业等待很久,Capacity 为小作业设置另外的队列,会牺牲整体性能。Fair 可以动态地分配资源。(书中还讲到了两种调度器的细节配置)

Hadoop I/O

数据完整性

数据量过大的时候会有可能会造成数据损坏,Hadoop 用校验码进行检验。

client 读数据的时候会验证校验和,同时每个 datanode 有一个后台线程 DataBlockScanner 在检验数据。

序列化

Serialization & Deserialization。需要将内存中的数据结构序列化以存储或传输到另外的节点——多个节点上的进程间通信(“远程过程调用” RPC: remote procedure call)。Hadoop 的序列化格式是 Writable,它紧凑、速度快,但不太容易用 Java 以外的语言进行拓展;Writable 是 Hadoop 的核心。

Writable 接口定义了两个方法,一个用来写入 DataOutput 二进制流,另一个从 DataInput 二进制流读取状态。

WritableComparable 能够直接比较数据流中的数据,WritableComparator 提供了一种默认的 compare 方法(但是要反序列化)。

Writable Class

JAVA 基本类型都有对应的 Writable 实现,这本书比较推荐 变长的 VintWritableVlongWritable

Text 是针对 UTF-8 优化的 Writable 类,可以认为是 java.lang.StringWritable 等价,但其实还是有一定的差别。 Text 的存储方式和 String 并不一样,Text 用整形索引来存储字符串编码中的字节数,而 String 则是

In Java, the char data type is a single 16-bit Unicode character (from 0x0000 to 0xffff, so 2 Btyes), while Class Character is a wrapper for the primitive type.

基于文件的数据结构

Hadoop, SequenceFile - 二进制键值对。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值