flume

大数据系统数据采集产品的架构分析

雨燕双飞 提交于 2019-12-04 03:03:43
任何完整的大数据平台,一般包括以下的几个过程: 数据采集 数据存储 数据处理 数据展现(可视化,报表和监控) 其中,数据采集是所有数据系统必不可少的,随着大数据越来越被重视,数据采集的挑战也变的尤为突出。这其中包括: 数据源多种多样 数据量大,变化快 如何保证数据采集的可靠性的性能 如何避免重复数据 如何保证数据的质量 我们今天就来看看当前可用的一些数据采集的产品,重点关注一些它们是如何做到高可靠,高性能和高扩展。 Apache Flume Flume 是Apache旗下,开源,高可靠,高扩展,容易管理,支持客户扩展的数据采集系统。 Flume使用JRuby来构建,所以依赖Java运行环境。 Flume最初是由Cloudera的工程师设计用于合并日志数据的系统,后来逐渐发展用于处理流数据事件。 Flume设计成一个分布式的管道架构,可以看作在数据源和目的地之间有一个Agent的网络,支持数据路由。 每一个agent都由Source,Channel和Sink组成。 Source Source负责接收输入数据,并将数据写入管道。Flume的Source支持HTTP,JMS,RPC,NetCat,Exec,Spooling Directory。其中Spooling支持监视一个目录或者文件,解析其中新生成的事件。 Channel Channel 存储,缓存从source到Sink的中间数据

Flume日志采集

梦想的初衷 提交于 2019-12-04 01:47:42
案例分析:假设有一个生产场景,两台服务器A、B在实时产生日志数据,日志数据类型主要为access.log、nginx.log和web.log。现在需要将A、B两台服务器产生的日志数据access.log、nginx.log和web.log采集汇总到C服务器上,并统一收集上传到HDFS上保存。 此案例将 node02 和 node03 分别作为A服务器和B服务器进行第一阶段的日志数据采集,将 node01 作为C服务器进行日志数据汇总并上传到 HDFS。 服务系统搭建与配置 Flume 安装配置 在node01上执行以下操作:上传 apache-flume-1.8.0-bin.tar.gz 安装包并解压 $ cd /export/softwares #上传安装包 $ rz #将安装包解压到/export/servers 目录下 $ tar -zxvf apache-flume-1.8.0-bin.tar.gz -C ../servers $ cd /export/servers #重命名解压的文件名 $ mv apache-flume-1.8.0-bin flume 修改 flume-env.sh $ cd /export/servers/flume/conf $ mv flume-env.sh.template flume-env.sh # $ vim flume-env.sh

Flume采集数据到HDFS中,开头信息有乱码

心已入冬 提交于 2019-12-03 23:44:06
Flume采集数据,在生成的HDFS文件中,总是有“SEQ!org.apache.hadoop.io.LongWritable"org.apache.hadoop.io.BytesWritablesɧÿ577ĂwОn=찅”信息, 在Flume文档中介绍,hdfs.fileType默认为SequenceFile,将其改为DataStream就可以按照采集的文件原样输入到hdfs,加一行a1.sinks.k1.hdfs.fileType=DataStream,就可以解决hdfs文件乱码的问题 来源: https://www.cnblogs.com/gitgub/p/11811704.html

Getting 'checking flume.conf for changes' in a loop

ⅰ亾dé卋堺 提交于 2019-12-03 21:01:47
I am using Apache Flume 1.4.0 to collect log files (auth.log) and store in HDFS (Hadoop 2.6.0). The command used is: bin/flume-ng agent --conf ./conf/ -f flume.conf -Dflume.root.logger=DEBUG,console -n agent The flume.conf file contains the following: agent.channels.memory-channel.type = memory agent.sources.tail-source.type = exec agent.sources.tail-source.command = tail -F /var/log/auth.log agent.sources.tail-source.channels = memory-channel agent.sinks.log-sink.channel = memory-channel agent.sinks.log-sink.type = logger agent.sinks.hdfs-sink.channel = memory-channel agent.sinks.hdfs-sink

基于Flume+Log4j+Kafka的日志采集架构方案(上)

老子叫甜甜 提交于 2019-12-03 11:48:49
Flume是一个完善、强大的日志采集工具,关于它的配置,在网上有很多现成的例子和资料,这里仅做简单说明不再详细赘述。 Flume包含Source、Channel、Sink三个最基本的概念: Source——日志来源,其中包括:Avro Source、Thrift Source、Exec Source、JMS Source、Spooling Directory Source、Kafka Source、NetCat Source、Sequence Generator Source、Syslog Source、HTTP Source、Stress Source、Legacy Source、Custom Source、Scribe Source以及Twitter 1% firehose Source。 Channel——日志管道,所有从Source过来的日志数据都会以队列的形式存放在里面,它包括:Memory Channel、JDBC Channel、Kafka Channel、File Channel、Spillable Memory Channel、Pseudo Transaction Channel、Custom Channel。 Sink——日志出口,日志将通过Sink向外发射,它包括:HDFS Sink、Hive Sink、Logger Sink、Avro Sink、Thrift

What's the difference between Flume and Sqoop?

橙三吉。 提交于 2019-12-03 11:07:12
问题 Both Flume and Sqoop are meant for data movement, then what is the difference between them? Under what condition should I use Flume or Sqoop? 回答1: From http://flume.apache.org/ Flume is a distributed, reliable, and available service for efficiently collecting, aggregating, and moving large amounts of log data. Flume helps to collect data from a variety of sources, like logs, jms, Directory etc. Multiple flume agents can be configured to collect high volume of data. It scales horizontally.

hadoop伪分布式平台组件搭建

强颜欢笑 提交于 2019-12-03 09:53:06
第一部分:系统基础配置 系统基础配置中主完成了安装大数据环境之前的基础配置,如防火墙配置和安装MySQL、JDK安装等 第一步:关闭防火墙 Hadoop与其他组件的服务需要通过端口进行通信,防火墙的存在会阻拦这些访问,在初学阶段建议将防火墙全部 关闭,命令如下。 systemctl stop firewalld.service vi /etc/selinux/config # Selinux策略 SELINUX=disabled #更改为disabled关闭状态 第二步:安装JDK JDK安装包已经定制在环境当中的“/usr/local”目录中,直接使用即可 cd /usr/local/ rpm -ivh jdk-8u144-linux-x64.rpm java -version 第三步:安装MySQL 由于Hive数据仓库需要使用MySQL作为元数据库,所以在基础环境配置过程中我们需要安装MySQL安装过程如下 (1)安装mysql,命令如下。 wget -i -c http://dev.mysql.com/get/mysql57-community-release-el7-10.noarch.rpm yum -y install mysql57-community-release-el7-10.noarch.rpm #安装MySQL服务器 yum -y install

EFK日志搜集demo

爱⌒轻易说出口 提交于 2019-12-03 08:11:17
以前的一些东西整理下。 E:Elasticsearch F:Flume K:Kafka Flume是一个分布式的日志聚合收集工具,可以从多个且不同类型的日志源头收集日志。Flume的模型如下: Source代表数据的源头,channel暂存数据,sink为数据的流向。如下: 多个flume代理的情况下,数据可以汇聚到同一个地方,如下: 数据量多的时候,可能终端的数据处理压力比较大,为了平衡数据生产的速度和处理速度,最好在数据生产和数据处理之间增加一个缓冲,为此使用Kafka。 Apache Kafka是一种分布式发布-订阅消息系统。 Kafka的设计初衷是希望作为一个统一的信息收集平台,能够实时的收集反馈信息,并需要能够支撑较大的数据量,且具备良好的容错能力。 Kafka是一个典型的生产者消费者模型,生产者消费者模型的主要功能就是提供缓冲,平衡数据生产和使用的速率。 Kafka的模型如下: 所以Flume负责收集数据,Kafka作为缓冲,消费者从kafka中取数据。就像是多个水管同时向池子中注水,水管从哪取水可以自己决定;同时也有多个水管从池子里取水,水要流向哪里也可以自己决定。 Elasticsearch是一个基于Lucene的搜索服务器,提供了分布式的全文搜索引擎,传统的数据库如果数据在PB(1024TB)级别的,搜索会非常慢,而Elasticsearch支持PB级别的搜索。

Can apache flume hdfs sink accept dynamic path to write?

痴心易碎 提交于 2019-12-03 08:03:34
I am new to apache flume. I am trying to see how I can get a json (as http source), parse it and store it to a dynamic path on hdfs according to the content. For example: if the json is: [{ "field1" : "value1", "field2" : "value2" }] then the hdfs path will be: /some-default-root-path/value1/value2/some-value-name-file Is there such configuration of flume that enables me to do that? Here is my current configuration (accepts a json via http, and stores it in a path according to timestamp): #flume.conf: http source, hdfs sink # Name the components on this agent a1.sources = r1 a1.sinks = k1 a1

Spark Streaming整合Flume

最后都变了- 提交于 2019-12-03 06:42:53
1 目的   Spark Streaming整合Flume。参考官方整合文档( http://spark.apache.org/docs/2.2.0/streaming-flume-integration.html ) 2 整合方式一:基于推 2.1 基本要求 flume和spark一个work节点要在同一台机器上,flume会在本机器上通过配置的端口推送数据 streaming应用必须先启动 ,receive必须要先监听推送数据的端口后,flume才能推送数据 添加如下依赖 groupId = org.apache.spark artifactId = spark-streaming-flume_2.11 version = 2.2.0 2.2 配置Flume   我们知道flume 的使用就是如何配置它的配置文件,使用本地的netcat source来模拟数据,本次配置如下: # Name the components on this agent a1.sources = r1 a1.sinks = k1 a1.channels = c1 # Describe/configure the source a1.sources.r1.type = netcat a1.sources.r1.bind = hadoop a1.sources.r1.port = 5900 #