Hadoop大数据平台架构与实践
    《Hadoop权威指南》
    Hadoop是Apache软件基金会旗下的一个开源分布式计算平台。以Hadoop分布式文件系统(HDFS,Hadoop Distributed Filesystem)和MapReduce(Google MapReduce的开源实现)为核心的Hadoop为用户提供了系统底层细节透明的分布式基础架构。
    对于Hadoop的集群来讲,可以分成两大类角色:Master和Salve。一个HDFS集群是由一个NameNode和若干个DataNode组成的。其中NameNode作为主服务器,管理文件系统的命名空间和客户端对文件系统的访问操作;集群中的DataNode管理存储的数据。
    MapReduce框架是由一个单独运行在主节点上的JobTracker和运行在每个集群从节点的TaskTracker共同组成的。
    1、主节点负责调度构成一个作业的所有任务,这些任务分布在不同的从节点上。主节点监控它们的执行情况,并且重新执行之前的失败任务;
    2、从节点仅负责由主节点指派的任务。当一个Job被提交时,JobTracker接收到提交作业和配置信息之后,就会将配置信息等分发给从节点,同时调度任务并监控TaskTracker的执行。
    从上面的介绍可以看出,HDFS和MapReduce共同组成了Hadoop分布式系统体系结构的核心。HDFS在集群上实现分布式文件系统,MapReduce在集群上实现了分布式计算和任务处理
    HDFS在MapReduce任务处理过程中提供了文件操作和存储等支持,
    MapReduce在HDFS的基础上实现了任务的分发、跟踪、执行等工作,并收集结果,二者相互作用,完成了Hadoop分布式集群的主要任务
    MapReduce
    Bigtable
    GFS

    • 成本降低 使用PC机就可以,不需要大型机和高端存储
    • 软件容错,视硬件故障为常态
    • 简化并行分布式计算,无需控制节点同步和数据交换

    Hadoop:模仿Google的大数据技术的开源实现
    Hadoop:分布式存储和分布式计算平台
    核心组成:
    HDFS 分布式文件系统
    MapReduce 并行处理框架
    Hadoop用来做什么?
    日志分析 商业智能 数据挖掘
    优势 1高扩展 2低成本 3成熟生态圈
    Hadoop运维和开发人员 较为急需
    Hadoop 生态系统及版本
    Hive 小蜜蜂 SQL—>Hadoop任务
    降低了使用Hadoop的门槛
    HBase 存储结构化数据的分布式数据库
    放弃了事务特性,追求更高的扩展
    Hbase 提供数据的随机读写和实时访问
    可以对表数据进行读写
    ZooKeeper 监控节点 集群 状态
    Hadoop1.x版本
    Hadoop2.x版本
    Hadoop的核心 HDFS

    默认64M
    块是文件传输处理的逻辑单元
    两类节点:
    NameNode 管理节点 存放文件元数据。存储;
    文件—数据库块的映射表
    数据块-数据节点的映射表
    DataNode 工作节点 存放数据
    Hbase原理、基本概念、基本架构
    HBase详细概述
    LSM树由来、设计思想以及应用到HBase的索引
    HBase不是关系型数据库,也不支持SQL,但是它有自己的特长,这是RDBMS不能处理的,HBase巧妙地将大而稀疏的表放在商用的服务器集群上。
    HBase是一个构建在HDFS上的分布式列存储系统;
    HBase是基于Google BigTable模型开发的,典型的key/value系统;
    HBase是Apache Hadoop生态系统中的重要一员,主要用于海量结构化数据存储;
    从逻辑上讲,HBase将数据按照表、行和列进行存储。
    与hadoop一样,Hbase目标主要依靠横向扩展,通过不断增加廉价的商用服务器,来增加计算和存储能力
    Hbase表的特点
    大:一个表可以有数十亿行,上百万列;
    无模式:每行都有一个可排序的主键和任意多的列,列可以根据需要动态的增加,同一张表中不同的行可以有截然不同的列;
    面向列:面向列(族)的存储和权限控制,列(族)独立检索;
    稀疏:空(null)列并不占用存储空间,表可以设计的非常稀疏;
    数据多版本:每个单元中的数据可以有多个版本,默认情况下版本号自动分配,是单元格插入时的时间戳;
    数据类型单一:Hbase中的数据都是字符串,没有类型。
    没有真正的索引,不存在索引膨胀的问题
    Hbase:
    大数据量存储,大数据量高并发操作
    需要对数据随机读写操作
    读写访问均是非常简单的操作
    HBase上的数据是以StoreFile(HFile)二进制流的形式存储在HDFS上block块儿中;但是HDFS并不知道的hbase存的是什么,它只把存储文件是为二进制文件,也就是说,hbase的存储数据对于HDFS文件系统是透明的。
    Memstore是一个按key排序的树形结构的缓冲区
    StoreFile和HFile是一个东西,站的角度不同叫法不同,对于HDFS来说,叫HFile,在Hbase中叫StoreFile
    1、Hive是支持SQL语句的,执行会调用Mapreduce,所以延迟比较高;
    2、HBase是面向列的分布式数据库,使用集群环境的内存做处理,效率会比hive要高,但是不支持sql语句。
    Hadoop开发和运行处理大规模数据,需要用hbase做数据库,但由于hbase没有类sql查询方式,所以操作和计算数据非常不方便,于是整合hive,让hive支撑在hbase数据库层面的 hql查询,hive也即做数据仓库。