hadoop 生态系统1

来源:互联网 发布:街霸5 网络 编辑:程序博客网 时间:2024/04/30 00:16

hadoop 生态系统概况

hadoop 生态系统概况

1. HDFS(Hadoop 分布式文件系统)

HDFS 是基于流数据访问和处理超大文件的需求而开发的,它可以运行在廉价的商用服务器上,HDFS具有一下特点:

  1. 处理超大文件:

    通常是数G,TB级别的文件

  2. 流式地访问数据:

    一次写入,多次读写. 一个数据集一旦由一个数据源生成,就会被复制分发到不同的存储节点,然后响应各种请求.对HDFS来说读取整个数据集 比读取一条记录更加高效

  3. 运行在廉价的商用机器上.

    廉价的商用机,意味着在一个集群中出现节点故障的概率就会很高,这就要求HDFS在设计时,考虑数据的可靠性,安全性以及高可可用性

HDFS的局限性:
1. 不适合处理低延迟数据访问

HDFS 是为了处理大型数据集分析任务,主要达到高吞吐量而设计的,这样的代价就是高延迟.
可以使用HBase作为补充方案

  1. 无法高效存储大量小文件(原因在HDFS详解中分析)
  2. 不支持多用户写入及任意修改文件

hdfs体系结构

这里写图片描述

块(Block)

HDFS 分布式文件系统的文件也被分成块进行存储,它是文件存储处理的逻辑单元.默认为64M 比操作系统中的块要大的多. 由于逻辑块的设计HDFS可以将文件分成多块,分别存储在集群的各个机器上

NameNode

运行Master任务,NameNode就是Master管理集群中执行调度,管理文件系统的命名空间,维护整个文件系统的文件目录树以及 文件的索引目录,从NameNode中可以获得每个文件的每个块所在的DataNode.这些信息不是永久保存的, NameNode会在每次系统重启的时候重建这些信息

DataNode

DataNode 运行Worker任务,是Worker具体任务执行节点,用来执行具体的任务:存储文件,被客户端和NameNode调用.同时,它会通过心跳(HeartBeat)定时向NameNode发送所存储的文件块信息

2. MapReduce(分布式计算框架)

MapReduce
图片来源:百度百科

client

编写 MapReduce 代码,配置作业,提交作业

JobTracker

初始化作业,分配作业,与TaskTracker通信,协调整个作业

Task Tracker

保持和JobTracker的通信,在分配的数据片段是上执行Map和Reduce任务,一个集群中有多个Task Tracker

HDFS

保存作业数据,配置信息等,保存作业结果

3. HIVE(基于hadoop的数据仓库)

这里写图片描述

Hive 是基于Hadoop文件系统之上的数据仓库架构,提供了许多功能管理数据仓库:ETL,查询和分析功能.
同时 Hive 还定义了一套类SQL语言–Hive QL.Hive的特点就是高延迟,哪怕是处理几百兆的小文件,适合处理
不变的大数据集如日志文件,hive的最大价值是可扩展性,可延展性(结合MR 和用户自定义函数),良好的容错性和低约束的数据输入格式

4.Hbase(分布式列存数据库)

@这里写图片描述

HBase是一个针对结构化数据的可伸缩、高可靠、高性能、分布式和面向列的动态模式数据库

5.Sqoop(数据同步工具)

解决分布式环境下的数据管理问题:统一命名,状态同步,集群管理,配置同步等。

6.Flume(日志收集工具)

Cloudera开源的日志收集系统,具有分布式、高可靠、高容错、易于定制和扩展的特点
Flume支持在日志系统中定制各类数据发送方,用于收集数据

0 0
原创粉丝点击