学习时间:20130701

知识点积累:

  1. 数据的存储和分析:

    1. 为了实现数据读取的高效,可从多个磁盘并行读取数据,需要解决2个问题:

      1. 硬件故障,避免数据丢失

      2. 大部分分析任务需要通过某种方式把数据合并起来

  2. 相较于其他系统:

    1. 关系型数据库管理系统:

      162846849.png

    2. 网格计算:

      1. 高性能计算(High Performance Computing)的方法是将作业分配给一个机器集群,这些机器访问共享文件系统,由一个存储区域网络(Storage Area Network,SAN)进行管理;这非常适用于CPU密集型的作业,但当节点需要访问大数据量时,网络带宽将成为“瓶颈”

      2. MapReduce尝试在计算节点本地存储数据,这项“数据本地化”功能成为MapReduce的核心功能

      3. MapReduce检测失败的map或者reduce任务,在健康的机器上重新安排任务,而不需要程序员考虑失败任务的处理机制

    3. 志愿计算:

      1. 志愿计算项目通过将他们试图解决的问题分成多个块,每个块称为一个工作单元,并将它们发到世界各地的电脑上进行分析

      2. SETI@home问题是CPU高度密集型的,并在接入互联网的不可信的计算机上运行,这些计算机的网速不同,而且数据也不在本地

  3. Hadoop生态圈:

    180807220.png

    1. Common:一组分布式文件系统和通用I/O的组件与接口(序列化、Java RPC和持久化数据结构)

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

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

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

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

    6. Hive:一个分布式、按列存储的数据仓库,管理HDFS中存储的数据,并提供基于SQL的查询语句用以查询数据;

    7. HBase:一个分布式、按列存储数据库,使用HDFS作为底层存储,同时支持MapReduce的批量式计算和点查询(随机读取);

    8. Zookeeper:一个分布式、可用性高的协调服务;提供分布式锁之类的基本服务用于构建分布式应用;

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