大数据学习
做大数据几个月以来,了解到一些基础知识,自己总结一下大数据不同框架在开发中扮演得角色:
从整体来看:大数据一个关于数据得故事,从数据收集、提取、清洗、筛选、存储(关系型数据库,文件)、数据得可视化这是整个流程,在每一个阶段都有相应得框架,组件帮助我们处理。
学习大数据不得不了解hadoop家族,spark家族
hadoop的核心是HDFS文件系统,MapReduce 基于在Hadoop的基础上,有很多框架帮助我们处理数据
1 从数据的采集开始Flume
Flume 是 Cloudera 提供的一个高可用的,高可靠的,分布式的海量日志采集、聚合 和传输的系统,Flume 支持在日志系统中定制各类数据发送方,用于收集数据;同时, Flume 提供对数据进行简单处理,并写到各种数据接受方(可定制)的能力。
Flume的体系结构的核心: agent = source + channel + sink
source 组件采集日志源到Channel缓存,然后输送到sink组件,将日志信息写到目的地保存到HDFS/HBase/HDFS
Event: 一个数据单元,带有一个颗选的消息头
Flow:Event从源点到达目的点的迁移的抽象
Client:操作位于源点处的Event,将其发送到Flume AgentAgent:一个独立的Flume进程,包含组件Source、Channel、Sink
Source:用来消费传递到该组件的Event(采集日志)
Channel:中转Event的一个临时存储,保存有Source组件传递过来的Event
Sink:从Channel中读取并移除Event,将Event传递到Flow Pipeline中的下一个Agent(如果有的话)
2 Kafka作为消息队列 Kafka/metaq 实时数据存储
使用kafka能够增强系统的吞吐量
3