hadoop 生态系统1
来源:互联网 发布:街霸5 网络 编辑:程序博客网 时间:2024/04/30 00:16
hadoop 生态系统概况
1. HDFS(Hadoop 分布式文件系统)
HDFS 是基于流数据访问和处理超大文件的需求而开发的,它可以运行在廉价的商用服务器上,HDFS具有一下特点:
处理超大文件:
通常是数G,TB级别的文件
流式地访问数据:
一次写入,多次读写. 一个数据集一旦由一个数据源生成,就会被复制分发到不同的存储节点,然后响应各种请求.对HDFS来说读取整个数据集 比读取一条记录更加高效
运行在廉价的商用机器上.
廉价的商用机,意味着在一个集群中出现节点故障的概率就会很高,这就要求HDFS在设计时,考虑数据的可靠性,安全性以及高可可用性
HDFS的局限性:
1. 不适合处理低延迟数据访问
HDFS 是为了处理大型数据集分析任务,主要达到高吞吐量而设计的,这样的代价就是高延迟.
可以使用HBase作为补充方案
- 无法高效存储大量小文件(原因在HDFS详解中分析)
- 不支持多用户写入及任意修改文件
hdfs体系结构
块(Block)
HDFS 分布式文件系统的文件也被分成块进行存储,它是文件存储处理的逻辑单元.默认为64M 比操作系统中的块要大的多. 由于逻辑块的设计HDFS可以将文件分成多块,分别存储在集群的各个机器上
NameNode
运行Master任务,NameNode就是Master管理集群中执行调度,管理文件系统的命名空间,维护整个文件系统的文件目录树以及 文件的索引目录,从NameNode中可以获得每个文件的每个块所在的DataNode.这些信息不是永久保存的, NameNode会在每次系统重启的时候重建这些信息
DataNode
DataNode 运行Worker任务,是Worker具体任务执行节点,用来执行具体的任务:存储文件,被客户端和NameNode调用.同时,它会通过心跳(HeartBeat)定时向NameNode发送所存储的文件块信息
2. 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支持在日志系统中定制各类数据发送方,用于收集数据
- hadoop 生态系统1
- Hadoop生态系统(1)
- hadoop生态系统
- Hadoop生态系统
- hadoop生态系统
- Hadoop生态系统
- hadoop生态系统
- Hadoop生态系统
- hadoop生态系统
- Hadoop生态系统
- hadoop生态系统
- HADOOP生态系统
- hadoop生态系统
- Hadoop生态系统
- Hadoop 生态系统
- Hadoop生态系统
- Hadoop生态系统
- Hadoop生态系统
- Struts之ActionForward详细介绍
- Java基础第十三天--Set, HashSet, TreeSet
- 【Shader】变量定义
- 管理Git的内容4.
- hdu 1203
- hadoop 生态系统1
- 基于zxing-lib三步实现Android二维码应用
- 11
- openwrt之三:动态域名解析
- java后端系统架构之技术架构验证篇2
- Java常量池详解之一道比较蛋疼的面试题
- Triangle
- django admin模块问题若干
- oracle存储过程