1.Hadoop简介

99 阅读2分钟
    1. hadoop在分布式服务器集群上存储海量数据并运行分布式分析应用的开源框架,其核心部件是HDFS、YARN与MapReduce;

    2. 为什么不能用配有大量硬盘的数据库来进行数据分析?为什么需要Hadoop?

      1. 因为寻址时间的提升远远比不上传输速率的提升。寻址是将磁头移动到特定硬盘位置进行读\写操作的过程,它是导致硬盘操作延迟的主要原因,而传输速率主要取决于硬盘的带宽,如果数据访问模式包含大量的硬盘寻址,那么读取大量数据集就必然会花更长的时间;

      2. 另一方面,如果数据库系统只更新一小部分记录,那么传统的B树更具有优势。但数据库系统如果有大量数据更新时,B树的效率就远远落后与MapReduce,因为需要“排序\合并”(sort\merge)来重建数据库;

      3. Hadoop和关系型数据库的另一个区别在于它们所操作数据的结构化程度,Hadoop对非结构化和半结构化数据十分有效,因为它是在处理数据时才对数据进行解释(读时模式)。这种模式在提供灵活性的同时避免了RDBMS数据加载阶段带来的高开销,因为在Hadoop中只是一个文件拷贝操作;

        1. 结构化数据是具有既定格式的实体化数据,如XML文档等;
        2. 半结构化数据比较松散,虽然可能有格式,但经常被忽略,只能作为对数据结构的一般性指导。例如电子表格,它在结构上是由单元格组成的网格,但是每个单元格内可以保存任何形式的数据;
        3. 非结构化数据没有什么特别的内部结构,例如纯文本和图像数据等。
      4. 关系型数据往往是规范的,以保持其数据的完整性且不含冗余。但规范给Hadoop的处理带来了问题,因为它会使记录读取成为非本地操作,而Hadoop的核心假设一直偏偏就是可以进行高速的流读写操作;

      5. mapreduce以及Hadoop中其他的处理模型是可以随着数据的规模线性伸缩的。如果输入的数据量是原来的两倍,且集群规模扩展为原来的两倍,那么作业运行速度和原来一样快,SQL查询一般不具备该特性。