Hadoop(分布式计算平台)
从单个服务器扩展到数千台服务器,每台机器提供本地计算和存储
-
存储系统
HDFS(Hadoop DIstributed File System 分布式文件系统)
使用Java实现的、分布式的、可横向扩展的分布式文件系统。可存储超大文件,采用流式数据访问模式,运行于通用X86服务器上。
NameNode,是HDFS集群的管理节点,负责管理和维护HDFS集群的命名空间以及元数据信息并管理集群中的数据节点。有两个重要的文件:
EditLog,用于记录针对文件的操作(文件的创建、删除、重命名)
FSImage,用于维护整个系统的命名空间,包括数据块到文件的映射和文件的属性等
SecondaryNameNode,并不是NameNode的备份,定期将EditLog合并到FSImage,以防止EditLog过大。保存合并后的FSImage的副本,作为 NameNode的检查点,但是保存的状态滞后于NameNode,因此NameNode失效后会丢失部分数据
DataNode ,数据节点,根据系统的需要存储并检索数据块,HDFS集群启动和正常运行期间定期向NameNode发送存储的块列表和心跳信息
CheckpointNode,Hadoop2.x后加入,和Secondary NameNode作用一致
BackupNode,Hadoop2.x后加入,NameNode的完全备份
HBase(Hadoop Database 数据库)
属于非关系型数据库,数据是基于列的而不是基于行,可在廉价服务器上搭建大规模结构化存储集群。
-
计算框架
MapReduce(离线计算框架)
把一个复杂问题分解成处理子集的子问题。“Map”对子问题分别处理得到中间结果,“Reduce”把中间结果汇总,得到最终结果。
YARN(资源管理系统)
通用的资源管理模块,可以为上层应用提供统一的资源调度和管理。使Hadoop不仅可以使用MapReduce,还可以使用Storm、Spark等计算框架。
包含两种节点:ResourceManage负责资源调度,NodeManager负责具体事务
-
数据仓库
Hive
基于Hadoop的数据仓库工具,将结构化的数据文件映射为数据库表。操作本质是将SQL语句转换为MapReduce程序。
-
数据转换与日志处理
Sqoop(数据转换工具)
将数据从外部结构化数据存储导入Hive或HBase,也可以从Hadoop中提取数据,将其导出到外部结构化数据存储。
Flume(日志处理系统)
使用基于数据流的简单灵活的架构
-
应用协调与工作流
ZooKeeper(分布式协调服务)
可以为分布式应用程序提供配置服务、域名服务、分布式同步等服务。
Oozie(工作流调度程序)
是一种Java Web应用程序,用于管理Hadoop作业的工作流调度。
-
大数据安全技术
Kerberos(网络认证协议)
基于共享秘钥对称加密,通过秘钥系统为客户机/服务器应用程序提供认证服务
LDAP(轻量目录访问协议)
提供被称为目录服务的信息服务,为应用程序提供访问、认证和授权的集中管理。
-
大数据即时查询与搜索
Impala(查询系统)
提供SQL语义,能查询存储在Hadoop的HDFS和HBase中的PB级大数据。使用高并发的MMP查询引擎,查询速度比Hive快得多。
Solr(搜索系统)
企业搜索平台,基于标准的开放式接口(XML、JSON、HTTP),可实现强大的搜索匹配功能。
-
大数据消息订阅
Kafka(消息订阅系统)
高吞吐量的分布式发布-订阅消息系统。