Hadoop 个人学习笔记(一)——HAWQ介绍

1.Hadoop是什么?

​ 开源的 分布式存储 分布式计算

2.核心部分

HDFS:(系统)分布式文件系统,用于存储海量的数据

MapReduce:(框架)并行处理框架,实现任务分解和调度

​ 其他 :

​ HIV

​ HBASE (HDFS的区别,它可以提供数据的随机读写和实时访问,实现对表数据的读写功能)

​ zookeeper (监控,维护)

3.优势

​ 1.高扩展

​ 2.低成本

​ 3.成熟的生态圈

4.HDFS

4.1基本概念

块(Block):HDFS的文件都被分成块进行存储,默认大小64MB

NameNode:管理节点,存放文件元数据

​ ①文件与数据块的映射表

​ ②数据库与数据节点的映射表

Hadoop 个人学习笔记(一)——HAWQ介绍

DataNode:HDFS的工作节点,存放真正的数据块

4.2HDFS中数据管理与容错

​ 1.数据块的放置(数据块副本):每个数据块3个副本,分布在两个机架内的三个节点。(确保数据可靠)

​ 2.心跳测试:DataNode定期向NameNode发送心跳消息(检测DataNode的状态,是否挂了)

Hadoop 个人学习笔记(一)——HAWQ介绍

​ 3.二级NameNode(SeconderyNameNode):二级NameNode定期同步元数据映像文件和修改日志NameNode发生故障时,备胎转正。

Hadoop 个人学习笔记(一)——HAWQ介绍

4.3HDFS读取文件的流程

​ 1.客户端向NameNode发起读取请求(可能是java程序,可能是命令行),把文件名、路径告诉NameNode。

​ 2.NameNode返回元数据,客户端知道文件包含哪些块,这是块分别会在哪些地方。(例如问,A在哪,NameNode告诉在 DN1、2、4中)

​ 3.客户端找到Block下载

Hadoop 个人学习笔记(一)——HAWQ介绍

4.4HDFS写入文件的流程

​ 1.文件要拆分成块block(最大64MB)

​ 2.客户端找NameNode 寻找当前在线、空间够、可用的DN返回。

​ 3.客户端写入Blocks

​ 4.流水线复制(再复制2个出来,放不同的DN中)

​ 5.更新元数据到NameNode
Hadoop 个人学习笔记(一)——HAWQ介绍

4.4HDFS的特点

​ 1.数据冗余,硬件容错

​ 2.流式的数据访问(写一次都多次,一旦数据写入,不好修改)

​ 3.存储大文件

  • 适合数据批量读写,吞吐量高
  • 不适合做交互式应用,满足不了低延迟
  • 适合一次写入,多次读取,顺序读写
  • 不支持多个用户并发写相同的文件

5.MapRedce

​ 一个大任务分成多个小的子任务(map),并行执行后,合并结果(reduce)。
Hadoop 个人学习笔记(一)——HAWQ介绍

5.1基本概念

  • Job&Task 一个job被拆分成几个Task (MapTask 和 ReduceTask)
  • JobTracker 调度,分配任务,监控执行进度,监控TrackTracker的状态
  • TaskTracker 执行任务,向JobTracker汇报任务状态

Hadoop 个人学习笔记(一)——HAWQ介绍
Hadoop 个人学习笔记(一)——HAWQ介绍

5.3MapRedce的容错机制

  1. 重复执行 默认执行4次
  2. 推测执行