微信公众号:涪陵小帮手
做大数据几个月以来,了解到一些基础知识,自己总结一下大数据不同框架在开发中扮演得角色:
从整体来看:大数据一个关于数据得故事,从数据收集、提取、清洗、筛选、存储(关系型数据库,文件)、数据得可视化这是整个流程,在每一个阶段都有相应得框架,组件帮助我们处理。
学习大数据不得不了解hadoop家族,spark家族
hadoop的核心是HDFS文件系统,MapReduce 基于在Hadoop的基础上,有很多框架帮助我们处理数据
hadoop经过改良后,有一些新的特点:
1 HDSF-HA: 通过zookeeper集群,让hadoop集群里面每时每刻,只有一个活跃的nameNode ,同时另一个处于待命状态(nameNode 和dataNode ,dataNode 不断的向nameNode 汇报自己保存了那些数据块信息,nameNode 维存着元数据信息,数据块-服务器的映射关系,同时也保存了 (Fsimage 和 EditLog))
2 HDSF-Federation(联盟关系 --不是备份关系) : 解决hadoop集群水平扩展问题,隔离性,吞吐性问题--多名称节点,共享底层 dataNode(存储池),
3 调度框架的演进 ---yarn 资源调度框架
mapreduce1.0 的缺陷
jobTracker
1 单点故障
2 负载过重,监控 heatbeat,管理,资源调度
3 (按任务数划分,没有看每一个任务需要多少资源,有可能消耗资源的任务全都调度到一个服务器)容易出现内存溢出,
4 资源划分不合理 mapSlot和reduceSlot ,当mapSlot不够的时候,即使有空闲的reduceSlot,也不会转换释放资源
yarn 资源调度框架
yarn 大致思路 资源管理,调度(cpu,内存的管理分配,任务的启动),而mapreduce (数据分片,shuffle,reduce)只负责计算
yarn 的架构:
计算向数据靠拢
4 从数据的采集开始Flume
Flume 是 Cloudera 提供的一个高可用的,高可靠的,分布式的海量日志采集、聚合 和传输的系统,Flume 支持在日志系统中定制各类数据发送方,用于收集数据;同时, Flume 提供对数据进行简单处理,并写到各种数据接受方(可定制)的能力。
Flume的体系结构的核心: agent = source + channel + sink
source 组件采集日志源到Channel缓存,然后输送到sink组件,将日志信息写到目的地保存到HDFS/HBase/HDFS
Event: 一个数据单元,带有一个颗选的消息头
Flow:Event从源点到达目的点的迁移的抽象
Client:操作位于源点处的Event,将其发送到Flume Agent
Agent:一个独立的Flume进程,包含组件Source、Channel、Sink
Source:用来消费传递到该组件的Event(采集日志)
Channel:中转Event的一个临时存储,保存有Source组件传递过来的Event
Sink:从Channel中读取并移除Event,将Event传递到Flow Pipeline中的下一个Agent(如果有的话)
2 Kafka作为消息队列 Kafka/metaq 实时数据存储
使用kafka能够增强系统的吞吐量