简介
本文是对阅读《Hadoop基础教程》的学习笔记
绪论
- 软件智能化,硬件傻瓜化:为软件注入智能,并从硬件抽离智能
- Hadoop是实现了MR和GFS技术的开源平台,它可以由低成本硬件组成的集群上处理极大规模的数据集
- Hadoop项目包含许多子项目,最主要的两个子项目分别为Hadoop分布式文件系统HDFS和MapReduce
- HDFS:可以存储极大数据集的文件系统
- HDFS通常以最小64MB的数据块存储文件,比之前多数文件系统中的4KB~32KB分块大得多
- 能够高效处理对大文件的读请求流,但不擅长对众多小文件的定位请求
- “一次写入,多次读取”的工作负载进行了优化
- 每个存储节点上运行着一个DataNode进程,它管理相应主机上的所有数据块。
- 这些存储节点都由一个称为NameNode的主进程来协调
- MapReduce:数据处理凡是,规范了数据在两个处理阶段(Map和Reduce)的输入和输出,并将其应用于任意规模的大数据集。
- MapReduce任务直接在存储所需数据的HDFS的节点上运行
- map和reduce函数的概念直接来自于函数式编程语言
- “分而治之”,将单个问题分解成多个独立的子任务。例如一个需要运行1000分钟的任务,可以通过分解成1000个并行的子任务,在1分钟内即可完成
- 开发人员将精力集中于表达从数据源到结果数据集的转化关系上,而Hadoop框架会管理任务执行的各个方面:并行处理,协调配合等等
- HDFS:可以存储极大数据集的文件系统
- 公共架构(HDFS和MR软件集群的共同特点)
- 相同的体系机构:用专门的主节点对工作节点集群进行管理
- HDFS主节点是NameNode,MR主节点是JobTracker:监视集群的运行状况并处理故障,处理方式包括移走数据块或者重新调度失败的作业
- HDFS的进程是DataNode,MR的进程是TaskTracker:负责在物理主机上执行任务,包括从NameNode和JobTracker接受指令和向其报告健康状态和运行状况
- 主机或服务器通常指的是承载各种Hadoop组件的物理硬件。节点指的是作为集群组成部分的软件部件。
- 优势与劣势
- 单独的Hadoop不适用于低时延查询,例如网站、事是系统或者类似查询
- 对于小数据集而言,上述执行开销意味着,即使是简单的MR作业都可能花费至少10秒钟
- HBase是Hadoop生态的另一位成员,使用了多种方法提供低延时的查询服务
- 一个重要方面:如何将hadoop与其他技术合起来发挥共同优势