大数据处理系统学习笔记(一)

参考链接有

[实操演练] 大数据架构:flume-ng+Kafka+Storm+HDFS 实时系统组合

Flume+Kafka+Storm+Redis构建大数据实时处理系统:实时统计网站PV、UV+展示

菜鸟教程之Redis教程


数据采集(Flume) => 数据接入(传输)(Kafka)=> 流计算(Storm) => 数据输出与可视化(MySQL)


Flume

(http://flume.apache.org/)当前版本1.8.0

节点上实时采集数据

Cloudera提供的一个分布式、可靠、和高可用的海量日志采集、聚合和传输的日志收集系统

可定制数据格式发送

对数据可进行简单处理

数据来源:console,text,syslog,UNIX tail,exec,Thri-RPC等

数据接收方同上,也包括dfs

安装

$tar zxvf apache-flume-1.8.0-bin.tar.gz/usr/local

Kafka

(http://kafka.apache.org/)当前版本1.1

消息中间件系统作为缓存:由于数据处理与数据采集的速度不一致

产生消息队列,storm作为consumer角色去处理数据

大规模消息处理应用的解决方案

应用场景:消息队列,用户行为跟踪,流处理

特点

发布和订阅提供高吞吐量(每秒数十万的消息

可通过Kafka集群分区消息

支持Hadoop并行数据加载

统一online和offline的消息处理

持久化操作,信息可写至磁盘,用于批量处理

在节点间备份数据,并为故障节点数据回复提供一种重新同步的机制

安装

需要先启动zookeeper(https://zookeeper.apache.org/):为分布式系统提供各项开发与维护服务

tar -xzf kafka_2.11-1.1.0.tgz
再启动Kafka server


Storm

(http://storm.apache.org/)当前版本1.2.1

分布式,容错性强的实时计算处理系统

数据实时分析,兼容各种编程语言,默认支持Clojure,Java,Ruby和Python,只需要一个通信协议即可使用其他编程语言

消息处理可靠,快速,实现毫秒级处理,在多个线程,进程和服务器之间并行进行;保证每个消息得到一次完整处理,任务失败时会从消息源重试消息;数据流处理,持续计算

可使用本地模式模拟storm集群进行开发和调试

storm中的一个job称为topology,其中包含spout(数据来源)和bolt(处理器),数据处理逻辑在spout和bolt中体现

安装

1. Download a Storm release , unpack it, and put the unpacked bin/ directory on your PATH
2. To be able to start and stop topologies on a remote cluster, put the cluster information in ~/.storm/storm.yaml


Hadoop,MySQL,HBase,Redis及其他

对分析后的结果进行持久化

可后续进行流计算


Redis

(https://redis.io/)当前版本4.0.9

使用ANSI C编写的开源(遵守BSD协议)、支持网络、基于内存(可写入磁盘,重启时再次加载使用)、可选持久性的key-value存储数据库

读写速度极快,~10^5/s

通常被称为数据结构服务器,因为值(value)可以是 字符串(String), 哈希(Map), 列表(list), 集合(sets) 和 有序集合(sorted sets)等类型

Redis支持master-slave模式的数据备份

Redis操作是原子性的,要么成功要么失败,多个操作也支持事务,使用MULTI和EXEC指令包装

安装

$ wget http://download.redis.io/releases/redis-4.0.9.tar.gz
$ tar xzf redis-4.0.9.tar.gz
$ cd redis-4.0.9
$ make
再启动redis
$ src/redis-server

在Redis客户端上执行命令

$ redis-cli -h host -p port -a password


Flume+Kafka整合(在Kafka中创建一个topic,flume将采集到的数据发送到该topic上),

Kafka+Storm整合(storm中的spout获取来自topic的数据,创建KafkaSpout和包含处理逻辑的KafkaBolt的对象),

Storm+Redis整合(编写Storm业务处理Bolt,并创建合适的redis对象写入数据库)详见第一个和第二个参考链接


数据可视化

Python Web:Flask,Django

UI框架:echarts百度开源,图表类

猜你喜欢

转载自blog.csdn.net/albertyzy/article/details/80519081