Hadoop学习笔记(1) 初识Hadoop

1. Hadoop提供了一个可靠的共享存储和分析系统。HDFS实现存储,而MapReduce实现分析处理,这两部分是Hadoop的核心

2. MapReduce是一个批量查询处理器,并且它能够在合理的时间范围内处理针对整个数据集的即时查询

3. MapReduce适合一次写入、多次读取数据的应用,而关系型数据库更适合持续更新的数据集。二者的比较如表所述:

                    表1 关系型数据库和MapReduce的比较

  传统关系型数据库 MapReduce
数据大小 GB PB
访问 交互式和批处理 批处理
更新 多次读写 一次写入、多次读取
结构 静态模式 动态模式
完整性
横向扩展 非线性 线性

4. MapReduce对半结构化和非结构化数据非常有效(如文本或图像),因为MapReduce输入的键和值并不是数据固有的属性,而是由分析数据的人员来选择的。而关系型数据往往是规范的,以保持数据的完整性且不含冗余。

  MapReduce是一种线性可伸缩的编程模型。程序员编写两个函数:map和reduce,在每个函数定义一个键/值对集合到另一个键/值对集合的映射。这些函数无需关注数据集及其所用集群的大小,因此可以原封不动地应用到小规模或大规模数据集。

  数据本地化特性是MapReduce的核心特征,MapReduce的设计目标是服务于那些只需数分钟或数小时即可完成的作业,并且运行于内部通过高速网络连接的单一数据中心内,并且该数据中心内的计算机需要由可靠的、定制的硬件构成。

5. Apache Hadoop的生态圈

  1) Common: 一组分布式文件系统和通用I/O的组件与接口

  2) Avro:一种支持高效、跨语言的RPC以及永久存储数据的序列化系统

  3) MapReduce:分布式数据处理模型和执行环境,运行于大型商用集群

  4) HDFS:分布式文件系统,运行于大型商用集群

  5) Pig:一种数据流语言和运行环境,用以检索非常大的数据集。

  6) Hive:分布式、按列存储数据库,管理HDFS中存储的数据,并提供基于SQL的查询语言用以查询数据。

  7) HBase:分布式、按列存储的数据库,使用HDFS作为底层存储,同时支持MapReduce的批量式和点查询。

  8) ZooKeeper:分布式、可用性高的协调服务。

  9) Sqoop:在数据库和HDFS之间高效传输数据的工具。

你可能感兴趣的:(Hadoop学习笔记(1) 初识Hadoop)