Apache Flume

大数据教程(12.5)日志采集框架Flume

浪子不回头ぞ 提交于 2019-12-02 23:46:12
前面的章节介绍了hive的知识,本节博主将分享日志采集框架Flume的相关知识。在一个完整的大数据处理系统中,除了hdfs+mapreduce+hive组成分析系统的核心之外,还需要数据采集、结果数据导出、任务调度等不可或缺的辅助系统,而这些辅助工具在hadoop生态体系中都有便捷的开源框架,如图所示: 一、Flume介绍 (1)概述 Flume是一个分布式、可靠、和高可用的海量日志采集、聚合和传输的系统。 Flume可以采集文件,socket数据包等各种形式源数据,又可以将采集到的数据输出到HDFS、hbase、hive、kafka等众多外部存储系统中 一般的采集需求,通过对flume的简单配置即可实现 Flume针对特殊场景也具备良好的自定义扩展能力,因此,flume可以适用于大部分的日常数据采集场景 (2)运行机制 a、Flume分布式系统中最核心的角色是agent,flume采集系统就是由一个个agent所连接起来形成 b、每一个agent相当于一个数据传递员(Source 到 Channel 到 Sink之间传递数据的形式是Event事件;Event事件是一个数据流单元),内部有三个组件: (3)Flume采集系统结构图 a、简单结构(单个agent采集数据) b、复杂结构(多级agent之间串联) 二、Flume实战案例 (1) Flume的安装部署 1

数据仓库概念

陌路散爱 提交于 2019-11-30 17:55:26
一、项目需求 数据采集平台搭建 实现用户行为数据仓库的分层搭建 实现业务数据仓库的分层搭建 针对数据仓库中的数据进行留存、转换率、GMV、复购率、活跃等报表分析 二、思考题 项目技术如何选型 框架版本如何选型(如Apache、CDH、HDP) 服务器使用物理机还是云主机 如何确认集群规模?(假设每台服务器8t硬盘) 技术选型: 数据采集传输 : Flume、Kafka、Sqoop 、Logstash、 DataX 数据存储 : Mysql、HDFS 、HBase、Redis、MongoDB 数据计算 : Hive、Tez、Spark 、Flink、Storm 数据查询 : Presto、Druid 、Impala、Kylin 问题: kafka消息存HDFS方法? java代码消费,然后调用HDFS上传api或者通过Flume 系统数据流程设计 来源: https://my.oschina.net/u/3915790/blog/3114122

Flume Installation

泄露秘密 提交于 2019-11-30 06:55:07
下载flume二进制安装包:apache-flume-1.6.0-bin.tar.gz http://www.apache.org/dist/flume/1.6.0/ http://www.apache.org/dist/flume/1.7.0/ 把apache-flume-1.6.0-bin.tar.gz文件存放在/opt/beh/core目录下,进行解压: tar -zxvf apache-flume-1.6.0-bin.tar.gz 改名: mv apache-flume-1.6.0-bin flume l 设置环境变量 export FLUME_HOME=/opt/beh/core/flume export PATH=$PATH:$ FLUME_HOME/bin l 配置参数文件 配置文件存放在$FLUME_HOME/conf/目录下,将flume-env.sh.template文件名称改为flume-env.sh mv flume-env.sh.template flume-env.sh 配置内容如下: # Licensed to the Apache Software Foundation (ASF) under one # or more contributor license agreements. See the NOTICE file # distributed

flume源码编译/拦截器分析(一)

[亡魂溺海] 提交于 2019-11-30 06:54:54
flume介绍 由于是第一次进行源码编译与开发,步骤有点复杂,后续再进行简化 Flume是Cloudera提供的一个高可用、高可靠、分布式的海量日志采集、聚合和传输的系统。Flume支持在日志系统中定制各类数据发送方用于收集数据,同时Flume提供对数据的简单处理,并将数据处理结果写入各种数据接收方的能力。 flume源码编译 编译所需环境: maven 3.x java sdk 1.6 以上 git 下载源码 ,本文选用的是 apache-flume-1.6.0-src.tar.gz 解压至工作路径中,在git中执行: mvn clean mvn package -DskipTests 结果如下图所示即编译成功。 然后在如下图的所示的flume-ng-dist文件夹下的target下出现apche-flume-1.6.0-bin.tar.gz与apche-flume-1.6.0-src.tar.gz,这样就可以任意的修改/开发各种自己需要的功能了。 注意,在下载的源码中有hadoop与hbase版本需要修改,不同版本修改不同,上网搜一下看看。 flume拦截器 Flume中的拦截器(interceptor),用户Source读取events发送到Sink的时候,在events header中加入一些有用的信息,或者对events的内容进行过滤,完成初步的数据清洗

分布式日志收集框架 Flume

荒凉一梦 提交于 2019-11-29 22:33:45
1 需求分析 WebServer/ApplicationServer分散在各个机器上,然而我们依旧想在Hadoop平台上进行统计分析,如何将日志收集到Hadoop平台呢? 简单的这样吗? shell cp hadoop集群的机器上; hadoop fs -put ... / 显然该法面临着容错、负载均衡、高延迟、数据压缩等一系列问题 这显然已经无法满足需求了! 不如问问神奇的Flume呢??? 只需要配置文件,轻松解决以上问题! 2 Flume概述 2.1 官网 Flume是一种分布式,可靠且可用的服务,用于有效地收集,聚合和移动大量日志数据。 它具有基于流式数据流的简单灵活的架构。 它具有可靠的可靠性机制和许多故障转移和恢复机制,具有强大的容错性。 它使用简单的可扩展数据模型,允许在线分析应用程序。 2.2 设计目标 可靠性 当节点出现故障时,日志能够被传送到其他节点上而不会丢失。Flume提供了三种级别的可靠性保障,从强到弱依次分别为:end-to-end(收到数据agent首先将event写到磁盘上,当数据传送成功后,再删除;如果数据发送失败,可以重新发送。),Store on failure(这也是scribe采用的策略,当数据接收方crash时,将数据写到本地,待恢复后,继续发送),Best effort(数据发送到接收方后,不会进行确认)。 扩展性

大数据学习路线推荐

与世无争的帅哥 提交于 2019-11-29 07:59:38
1 Java基础: 视频方面: 推荐《毕向东JAVA基础视频教程》。学习hadoop不需要过度的深入,java学习到javase,在Java虚拟机的内存管理、以及多线程、线程池、设计模式、并行化多多理解实践即可。 书籍方面: 推荐李兴华的《java开发实战经典》 2 Linux基础: 视频方面: (1)马哥的高薪Linux视频课程-Linux入门、    (2)兄弟连的新版Linux视频教程、 (3)老段的讲解鸟哥Linux基础+私房菜、 (4)老男孩的Linux。 看的过程中,不可只看不同步操作,这是最危险的一件事!不需全部看完。如:基本的Linux操作系统官网下载、安装(命令行界面和图形界面)、基本命令、网络配置、快照、VM tools工具安装、虚拟机的菜单熟悉等等。这是必须要首先完成的。之后,可回过来再根据需要使用到哪些,再来学习即可。当作工具书! 书籍方面: (1)《鸟哥的linux私房菜》, (2)之后,进一步可以看书籍《鸟哥的服务架设篇》。 (3)Linux随身指南      (4)老男孩Linux运维 系统学习只要多多实践,学习linux并不枯燥。 1 3 hadoop书籍: (1)《Hadoop实战 (第1版) 陆嘉恒》、《Hadoop实战 (第2版) 陆嘉恒》 (2) 《hadoop definitive guide 》, 中文书名是《Hadoop权威指南

替代Flume——Kafka Connect简介

删除回忆录丶 提交于 2019-11-29 00:08:40
我们知道过去对于Kafka的定义是分布式,分区化的,带备份机制的日志提交服务。也就是一个分布式的消息队列,这也是他最常见的用法。但是Kafka不止于此,打开最新的官网。 我们看到Kafka最新的定义是:Apache Kafka® is a distributed streaming platform 分布式流处理平台。 这里也清晰的描述了Kafka的特点:Kafka用于构建实时数据管道和流式应用程序。它具有水平可扩展性、容错性、速度极快,并在数千家公司投入生产。 所以现在的Kafka已经不仅是一个分布式的消息队列,更是一个流处理平台。这源于它于0.9.0.0和0.10.0.0引入的两个全新的组件Kafka Connect与Kafka Streaming。 Kafka Connect简介 我们知道消息队列必须存在上下游的系统,对消息进行搬入搬出。比如经典的日志分析系统,通过flume读取日志写入kafka,下游由storm进行实时的数据处理。 Kafka Connect的作用就是替代Flume,让数据传输这部分工作可以由Kafka Connect来完成。Kafka Connect是一个用于在Apache Kafka和其他系统之间可靠且可靠地传输数据的工具。它可以快速地将大量数据集合移入和移出Kafka。 Kafka

【Flume】- 收集 Log4j 日志上送Kafka

半腔热情 提交于 2019-11-27 21:03:18
Flume 收集 Log4j 日志上送Kafka存储 环境准备 下载Flume: http://flume.apache.org/ 安装: 解压下载包到自定义路径 配置agent # 功能:过滤器过滤json信息存储kafka agent.sources = s1 agent.channels = c1 agent.sinks = k1 agent.sources.s1.type = avro agent.sources.s1.channels = c1 agent.sources.s1.bind = centos agent.sources.s1.port = 4444 agent.sources.s1.interceptors = search-replace agent.sources.s1.interceptors.search-replace.type = search_replace agent.sources.s1.interceptors.search-replace.searchPattern = [^{]*(?=\\{) agent.sources.s1.interceptors.search-replace.replaceString = agent.channels.c1.type = memory agent.channels.c1.capacity =

ClickHouse

烈酒焚心 提交于 2019-11-27 21:03:02
clickhouse在上一篇转载的博客中已初步介绍,最近在公司项目中,遇到了数据库大量数据查询慢的问题,借此来实战clickhouse,本文重点介绍数据同步。 接下来重点讲一下,使用flume同步oracle数据至clickhouse。 安装flume 1. 下载flume wget http://www.apache.org/dist/flume/1.5.2/apache-flume-1.5.2-bin.tar.gz 2. 解压安装 tar zxvf apache-flume-1.5.2-bin.tar.gz 打包flume-ng-sql-source 1. 在github上下载源码 https://github.com/keedio/flume-ng-sql-source 2. 本地编译打包 (1)为了能正确同步到clickhouse,需修改代码,如图: 将默认分隔符由‘,’改为‘\t’; (不改的话,插入数据到clickhouse会报错) (2)编译打包:mvn package -Dmaven.test.skip=true (3)将打包的jar包flume-ng-sql-source-1.5.2.jar,上传至flume的lib目录下。 打包flume-clickhouse-sink 这个相对麻烦一些,网上没有详细的资料,我这里尽量详细叙述,有问题可以联系我。 1.

flume,kafka区别、协同与详解

时光毁灭记忆、已成空白 提交于 2019-11-27 06:08:34
简介 socket模式 简单数据处理 开发公司 Flume 日志采集系统 (管道流方式,提供了很多的默认实现,让用户通过参数部署,及扩展API.) 可以单独执行linux命令,作为client将输出写入hdfs (例如tail命令)来监听日志 可作为server监听端口,同时作为client将收到信息写入hdfs 可编写Interceptor, 对数据进行拦截 ,对密码进行MD5加密再写入hdfs Cloudera Kafka 消息中间件(一个可持久化的分布式的消息队列) 作为双server系统,1个server用于获取数据、另一个用于监听接入的client的消费数据请求 kafka和JMS(Java Message Service)实现(activeMQ)不同的是:即使消息被消费,消息仍然不会被立即删除 流处理系统,也就是作为一个缓存(数据量大的时候会保存到本地硬盘,不单单是内存),生产消息太多了,消费不过来,就先存着。 Linkedin Flume最早是Cloudera提供的日志收集系统,目前是Apache下的一个孵化项目 Kafka是知名社交网络公司LinkedIn于2010年12月份开源的分布式消息系统,主要由Scala语言开发,于2012年成为Apache顶级项目,目前被广泛应用在包括Twitter,Netffix和Tumblr等在内的大型互联网站点上。 使用命令: