什么是 flume 日志收集,flume的原理是什么,flume会遇到什么问题

什么是 flume 日志收集,flume的原理是什么,flume会遇到什么问题,第1张

、Flume介绍

Flume是一个分布式、可靠、和高可用的海量日志聚合的系统,支持在系统中定制各类数据发送方,用于收集数据;同时,Flume提供对数据进行简单处理,并写到各种数据接受方(可定制)的能力。

flume可以搜集数据,合并数据。合并到什么地方,可以是hdfs。也就是flume可以与hadoop相结合

复制代码

设计目标:

(1) 可靠性

当节点出现故障时,日志能够被传送到其他节点上而不会丢失。Flume提供了三种级别的可靠性保障,从强到弱依次分别为:end-to-end(收到数据agent首先将event写到磁盘上,当数据传送成功后,再删除;如果数据发送失败,可以重新发送。),Store on failure(这也是scribe采用的策略,当数据接收方crash时,将数据写到本地,待恢复后,继续发送),Best effort(数据发送到接收方后,不会进行确认)。

(2) 可扩展性

采用了三层架构,分别为agent,collector和storage,每一层均可以水平扩展。其中,所有agent和collector由master统一管理,这使得系统容易监控和维护,且master允许有多个(使用ZooKeeper进行管理和负载均衡),这就避免了单点故障问题。

(3) 可管理性

所有agent和colletor由master统一管理,这使得系统便于维护。多master情况,Flume利用ZooKeeper和gossip,保证动态配置数据的一致性。用户可以在master上查看各个数据源或者数据流执行情况,且可以对各个数据源配置和动态加载。Flume提供了web 和shell script command两种形式对数据流进行管理。

(4) 功能可扩展性

Flume是Cloudera开发的一个高可用的,高可靠的,分布式的海量日志采集、聚合和传输的系统,Flume支持在日志系统中定制各类数据发送方,用于收集数据。数据源可定制、可扩展,数据存储系统可定制、可扩展。

主要分为 7 个阶段:入门知识 → Java 基础 → Scala 基础 → Hadoop 技术模块 → Hadoop 项目实战 → Spark 技术模块 → 大数据项目实战。

阶段一:学习入门知识

这一部分主要针对的是新手,在学习之前需要先掌握基本的数据库知识。MySQL 是一个 DBMS(数据库管理系统),是最流行的关系型数据库管理系统(关系数据库,是建立在关系数据库模型基础上的数据库,借助于集合代数等概念和方法来处理数据库中的数据)。

MongoDB 是 IT 行业非常流行的一种非关系型数据库(NoSQL),其灵活的数据存储方式备受当前 IT 从业人员的青睐。

而 Redis 是一个开源、支持网络、基于内存、键值对存储数据库。两者都非常有必要了解。

1、Linux 基础入门(新版)

2、Vim编辑器

3、Git 实战教程

4、MySQL 基础课程

5、MongoDB 基础教程

6、Redis基础教程

阶段二:Java基础

Java 是目前使用最为广泛的编程语言,它具有的众多特性,特别适合作为大数据应用的开发语言。

Java 语言具有功能强大和简单易用两个特征,跨平台应用能力比 C、C++ 更易用,更容易上手。同时还具有简单性、面向对象、分布式、健壮性、安全性、平台独立与可移植性、多线程、动态性等特点。最重要的一点是 Hadoop 是用 Java 编写的。

1、Java编程语言(新版)

2、Java进阶之设计模式

3、J2SE核心开发实战

4、JDK 核心 API

5、JDBC 入门教程

6、Java 8 新特性指南

阶段三:Scala基础

Scala 是一种多范式的编程语言,其设计的初衷是要集成面向对象编程和函数式编程的各种特性。由于 Scala 运行于 Java 平台(Java 虚拟机),并兼容现有的Java 程序,所以 Scala 可以和大数据相关的基于 JVM 的系统很好的集成。

1、Scala 开发教程

2、Scala 专题教程 - Case Class和模式匹配

3、Scala 专题教程 - 隐式变换和隐式参数

4、Scala 专题教程 - 抽象成员

5、Scala 专题教程 - Extractor

6、Scala 开发二十四点游戏

阶段四:Hadoop技术模块

Hadoop 是一款支持数据密集型分布式应用并以 Apache 2.0 许可协议发布的开源软件框架,它能搭建大型数据仓库,PB 级别数据的存储、处理、分析、统计等业务。编程语言你可以选,但 Hadoop 一定是大数据必学内容。

1、Hadoop入门进阶课程

2、Hadoop部署及管理

3、HBASE 教程

4、Hadoop 分布式文件系统--导入和导出数据

5、使用 Flume 收集数据

阶段五:Hadoop项目实战

当然,学完理论就要进行动手实战了,Hadoop 项目实战可以帮助加深对内容的理解,并锻炼动手能力。

1、Hadoop 图处理--《hadoop应用框架》

阶段六:Spark技术模块

Spark 和 Hadoop 都是大数据框架。Hadoop 提供了 Spark 所没有的功能特性,比如分布式文件系统,而 Spark 为需要它的那些数据集提供了实时内存处理。所以学习 Spark 也非常必要。

1、Spark

2、x 快速入门教程

2、Spark 大数据动手实验

3、Spark 基础之 GraphX 图计算框架学习

4、Spark 基础之 DataFrame 基本概念学习

5、Spark 基础之 DataFrame 高阶应用技巧

6、Spark 基础之 Streaming 快速上手

7、Spark 基础之 SQL 快速上手

8、Spark 基础之使用机器学习库 MLlib

9、Spark 基础之 SparkR 快速上手

10、流式实时日志分析系统--《Spark 最佳实践》

11、使用 Spark 和 D3.js 分析航班大数据

阶段七:大数据项目实战

最后阶段提供了大数据实战项目,这是对常用技能的系统运用,例如使用常用的机器学习进行建模、分析和运算,这是成为大数据工程师过程中的重要一步。

1、Ebay 在线拍卖数据分析

2、流式实时日志分析系统--《Spark 最佳实践》

3、大数据带你挖掘打车的秘籍

4、Twitter数据情感分析

5、使用 Spark 进行流量日志分析

6、Spark流式计算电商商品关注度

7、Spark的模式挖掘-FPGrowth算法

扩展资料:

大数据技术的具体内容:

分布式存储计算架构(强烈推荐:Hadoop)

分布式程序设计(包含:Apache Pig或者Hive)

分布式文件系统(比如:Google GFS)

多种存储模型,主要包含文档,图,键值,时间序列这几种存储模型(比如:BigTable,Apollo, DynamoDB等)

数据收集架构(比如:Kinesis,Kafla)

集成开发环境(比如:R-Studio)

程序开发辅助工具(比如:大量的第三方开发辅助工具)

调度协调架构工具(比如:Apache Aurora)

机器学习(常用的有Apache Mahout 或 H2O)

托管管理(比如:Apache Hadoop Benchmarking)

安全管理(常用的有Gateway)

大数据系统部署(可以看下Apache Ambari)

搜索引擎架构( 学习或者企业都建议使用Lucene搜索引擎)

多种数据库的演变(MySQL/Memcached)

商业智能(大力推荐:Jaspersoft )

数据可视化(这个工具就很多了,可以根据实际需要来选择)

大数据处理算法(10大经典算法)


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zaji/7374312.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-04
下一篇 2023-04-04

发表评论

登录后才能评论

评论列表(0条)

保存