大数据学习-Hadoop绪论

Posted on By Vivian Sun

简介

本文是对阅读《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和MR软件集群的共同特点)
    • 相同的体系机构:用专门的主节点对工作节点集群进行管理
    • HDFS主节点是NameNode,MR主节点是JobTracker:监视集群的运行状况并处理故障,处理方式包括移走数据块或者重新调度失败的作业
    • HDFS的进程是DataNode,MR的进程是TaskTracker:负责在物理主机上执行任务,包括从NameNode和JobTracker接受指令和向其报告健康状态和运行状况
    • 主机或服务器通常指的是承载各种Hadoop组件的物理硬件。节点指的是作为集群组成部分的软件部件。
  • 优势与劣势
    • 单独的Hadoop不适用于低时延查询,例如网站、事是系统或者类似查询
    • 对于小数据集而言,上述执行开销意味着,即使是简单的MR作业都可能花费至少10秒钟
    • HBase是Hadoop生态的另一位成员,使用了多种方法提供低延时的查询服务
    • 一个重要方面:如何将hadoop与其他技术合起来发挥共同优势