hadoop生态

【67】

Hadoop

用于数据存储和分析的分布式系统。

Hadoop数据处理的核心:数据本地化。

为什么需要hadoop?


不用配有大量硬盘的数据库进行大数据分析:计算机硬盘发展趋势:寻址时间的提升没有传输速率快。数据访问会包含大量的硬盘寻址,读大量数据集就会花费很长时间。

分布式文件系统

管理网络中跨多台计算机存储的文件系统被称为分布式文件系统。

注意:使文件系统能够容忍节点故障且不丢失任何数据应该如何做?

HDFS

以流式数据访问模式来存储超大文件,运行于商业硬件集群上。

流式数据访问:一次写入多次读取。

为什么HDFS中的块这么大?

答:目的是为了最小化寻址开销。如果块足够大,从磁盘传输数据的时间明显大于定位这个块开始位置所需的时间。因此传输一个由多个块组成的大文件所需的时间取决于数据传输速率。

HDFS集群有两类节点以管理节点-工作节点模式运行,一个namenode,多个datanode。namenode管理文件系统中的命名空间,维护着文件系统树以及整棵树内所有的文件和目录。两种文件形式(命名空间镜像文件、编辑日志文件)永久保存在本地磁盘中。还记录着每个文件中各个块所在的数据节点信息,不永久保存块的位置信息。因为这些信息会在系统启动时根据数据节点会重建。

datanode:根据需要存储或检索数据块(受客户端或namenode调度),并定期向namenode发送所存储的块的列表。

低时间延迟的数据访问:HBase是更好的选择。HDFS是为高数据吞吐量应用优化的,可能以提高时间延迟为代价。

namenode容错机制

一备份那些组成文件系统元数据持久状态的文件。一般配置是将持久状态写入本地磁盘时,也会写入一个远程挂在的网络文件系统(NFS)。二运行一个辅助的namenode。定期合并编辑日志和命名空间镜像,以防止编辑日志过大。

块缓存

一般情况下,datanode从磁盘中读取,但是对于访问频繁的文件,其对应的块会被存储在datanode的内存中,以堆外块缓存的形式存在。缓存池是一个用于管理缓存权限和资源使用的管理性分组。

YARN(Yet Another Resource Negotiatior)

集群资源管理系统,提供请求和使用集群资源的API(很少出现在用户代码中,在更高层API向用户隐藏资源管理细节)


Pig、hive、Crunch都是运行在Application上的处理框架。不和yarn直接交互。

yarn通过两类长期运行的守护进程提供自己的核心服务,一是资源管理器resource manager(管理集群上资源使用)二是节点管理器node manager(运行在集群中所有节点上且能够启动和监控容器container)

MapReduce

批处理系统,适合离线处理,不适合交互式分析,执行时间在几分钟或更多。

三大设计目标:1、为只需要几分钟或几小时就可以完成的作业提供服务;2、运行在同一内部有高速网络连接的数据中心内;3、数据中心内的计算机都是安全的,可靠的,有专门的硬件。

HBase

HDFS做底层存储的键值存储模式。

提供:单行的在线读/写访问,数据块的在线读/写的批处理。


你可能感兴趣的:(hadoop生态)