精华内容
下载资源
问答
  • 1.1.1 Flume是Cloudera提供的一个高可用的,高可靠的,分布式的海量日志采集、聚合和传输的系统,Flume支持在日志系统中定制各类数据发送方,用于收集数据;同时,Flume提供对数据进行简单处理,并写到各种数据接受...

    • 一:flume 简介与功能
    • 二:flume 安装与配置与简单测试

    一:flume 的简介与功能架构

    1.1 flume 的简介:

     1.1.1 Flume是Cloudera提供的一个高可用的,高可靠的,分布式的海量日志采集、聚合和传输的系统,Flume支持在日志系统中定制各类数据发送方,用于收集数据;同时,Flume提供对数据进行简单处理,并写到各种数据接受方(可定制)的能力。
    
    1.1.2当前Flume有两个版本Flume 0.9X版本的统称Flume-og,Flume1.X版本的统称Flume-ng。由于Flume-ng经过重大重构,与Flume-og有很大不同,使用时请注意区分。

    1.2 flume 的功能:

      1.2.1 flume 是一个分布式的,可靠的,可用的,非常有效率的对大数据量的日志数据进行收集,聚集,移动信息的服务。flume 仅支持在linux上面运行.
    
      1.2.2 flume 是一个基于流式数据,非常简单(就写一个配置文件就可以),灵活的架构,一个健壮的,容错的,简单的扩展数据模型用于在线上实时应用分析, 他的表现为:写一个source,channel,sink 之后一条命令就能够操作成功了。
    
      1.2.3 flume , kafka 实时进行数据收集,spark , storm 实时去处理,impala 实时去查询。

    1.3 flume 结构图 :

    image_1akajfvt51va31b5m11ifvrlbd7m.png-20.5kB

    1.4 flume 的结构图解释:

     flume-ng 只有一个角色的节点:agent 的角色,agent 有source,channel, sink 组成。

    image_1akaldjdk1rurt4t14f1l621pfb13.png-40.4kB

     1. Event 是flume数据传输的基本单元
     2. flume 以事件的形式将数据从源头传送到最终的目的
     3. Event 由可选的header 和加载有数据的一个byte array 构成
       3.1 载有的数据对flume 是不透明的
       3.2 header 是容纳凌key-value字符串对的无序集合,key 在集合内饰唯一的。
       3.3 header 可以在上下文路由中使用扩展

    1.5 Channel/Event/Sink 图:

    image_1akam4j0npqjqar12fkoi2qif1g.png-41kB

    source 监控某个文件,将数据拿到,封装在一个event当中,并put/commit 到chennel 当中,chennel 是一个队列,队列的有点事先进先出,放好后尾部一个个 event 出来,sink 主动去从chennel 当中去拉数据,sink 在把数据写到某个地方,比如hdfs 上去。

    二: flume 的安装与配置

    2.1 flume 的安装:

    下载flume的cdh 版本:flume-ng-1.5.0-cdh5.3.6.tar.gz
    安装flume-ng:
    
    tar -zxvf flume-ng-1.5.0-cdh5.3.6.tar.gz 
    mv apache-flume-1.5.0-cdh5.3.6-bin yangyang/flume 

    2.2 生成配置文件:

    cd yangyang/flume/conf
    cp -p flume-env.sh.template flume-env.sh
    cp -p flume-conf.properties.template flume-conf.properties
    更改 flume-env.sh 增加java 的环境
    export JAVA_HOME=/home/hadoop/yangyang/jdk

    image_1akano2gr1e2i1i351r0q35r1mqf1t.png-14.8kB

    2.3 安装 telnet 的包:

    yum install -y telnet-*
    rpm -ivh netcat-1.10-891.2.x86_64.rpm

    2.4 创建test-conf.properties 文件处理

    cd /home/hadoop/yangyang/flume/
    cp -p flume-conf.properties test-conf.properties
    echo "" > test-conf.properties 清空文件

    vim test-conf.properties

    # example.conf: A single-node Flume configuration
    
    # 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 = localhost
    a1.sources.r1.port = 44444
    
    # Describe the sink
    a1.sinks.k1.type = logger
    
    # Use a channel which buffers events in memory
    a1.channels.c1.type = memory
    a1.channels.c1.capacity = 1000
    a1.channels.c1.transactionCapacity = 100
    
    # Bind the source and sink to the channel
    a1.sources.r1.channels = c1
    a1.sinks.k1.channel = c1

    运行一个agent 处理

    cd /home/hadoop/yangyang/flume
    
    bin/flume-ng agent --conf conf --conf-file conf/test-conf.properties --name a1 -Dflume.root.logger=INFO,console

    image_1akap7sce14ndu4cf4j1862c062a.png-56.6kB
    image_1akap8fog52e8le1hm88rq1k8r2n.png-38.3kB

    telnet 登陆处理:

    telnet localhost 44444
    

    image_1akapbpgm1jsq1gs7rcd1lj01geh34.png-10.2kB
    image_1akapc7s21mb5130815punco1s7b3h.png-24.8kB

    转载于:https://blog.51cto.com/flyfish225/2097371

    展开全文
  • 数据抽取系统,就是从不同的数据源里抽取数据,并将其输入到ETL流程中。数据的抽取方式有两种:基于流的抽取和基于文件的抽取。这两种方式,从本质上讲,都是数据流。唯一有区别的地方,基于静态的文件时进行抽取时...

    数据抽取系统,就是从不同的数据源里抽取数据,并将其输入到ETL流程中。数据的抽取方式有两种:基于流的抽取和基于文件的抽取。这两种方式,从本质上讲,都是数据流。唯一有区别的地方,基于静态的文件时进行抽取时,数据源是不变的,当然,如果是要抽取日志文件,则源也是随时发生变化的。

         在数据的抽取实现过程中,需要重点考虑的是,当任务失败后,如何进行恢复。当数据源是静态时,重新启动作业即可。当数据源是动态时,例如抽取的是事务型的数据库,则源已发生变化。对这类的数据抽取,就非常困难。

        考虑到数据仓库,和OLTP的系统不同,另外,在线事务型的数据库,数据随时发生变化,直接将这种数据抽取到数据仓库,即使做到数据仓库和源系统完全的实时性一致,对进行分析也是没有任何意义。因此,将在线事务系统进行改造,重要的事务变动,都记录账单。例如,用户的有登录,则记录一条账单日志,用户登出时,再记录一条日志。用户的余额发生变化了,就要记录下变动了多少,最新余额是多少。这些账单日志,再用自增序列ID进行顺序化标记,就能做到增量的抽取,从而实现对在线业务系统的抽取。这些账单日志,如实反映了业务的变化,从这些日志中,能还原任意时刻的业务状态。


    展开全文
  • 一、数据仓库架构二、flume收集数据存储到hdfs文档:http://flume.apache.org/releases/content/1.9.0/FlumeUserGuide.html#hdfs-sink三、监控日志目录日志数据,实时抽取之hdfs系统上-实验1、Source:Spooling ...

    一、数据仓库架构

    image


    image


    image


    image


    二、flume收集数据存储到hdfs

    文档http://flume.apache.org/releases/content/1.9.0/FlumeUserGuide.html#hdfs-sink


    三、监控日志目录日志数据,实时抽取之hdfs系统上-实验

    1、Source:Spooling Directory

    在使用exec来监听数据源虽然实时性较高,但是可靠性较差,当source程序运行异常或者Linux命令中断都会造成数据丢失,
    在恢复正常运行之前数据的完整性无法得到保障。
    
    Spooling Directory Paths通过监听某个目录下的新增文件,并将文件的内容读取出来,实现日志信息的收集。实际生产中会结合log4j来使用。
    被传输结束的文件会修改后缀名,添加.COMPLETED后缀(可修改)。


    2、

    监控目录
    >日志目录,抽取完整的日志文件,写的日志文件不抽取
    
    使用FileChannel
    >本地文件系统缓冲,比内存安全性更高
    
    数据存储HDFS
    >存储对应hive表的目录或者hdfs目录


    3、配置flume agent

    ##agent 配置文件:flume-app.conf 如下:

    # The configuration file needs to define the sources,
    # the channels and the sinks.

    ####define agent
    a3.sources = r3
    a3.channels = c3
    a3.sinks = k3

    ###define sources
    a3.sources.r3.type = spooldir
    a3.sources.r3.spoolDir = /opt/cdh-5.3.6/flume-1.5.0-cdh5.3.6/spoollogs
    a3.sources.r3.ignorePattern = ^(.)*\.log$
    a3.sources.r3.fileSuffix = .delete


    ###define channel
    a3.channels.c3.type = file
    a3.channels.c3.checkpointDir = /opt/cdh-5.3.6/flume-1.5.0-cdh5.3.6/filechannel/checkpoint
    a3.channels.c3.dataDirs = /opt/cdh-5.3.6/flume-1.5.0-cdh5.3.6/filechannel/data


    ###define sink
    a3.sinks.k3.type = hdfs
    a3.sinks.k3.hdfs.path = hdfs://hadoop-senior.ibeifeng.com:8020/user/root/flume/splogs/
    a3.sinks.k3.hdfs.fileType = DataStream
    a3.sinks.k3.hdfs.writeFormat = Text
    a3.sinks.k3.hdfs.batchSize = 10


    ###bind the soures and sink to the channel
    a3.sources.r3.channels = c3
    a3.sinks.k3.channel = c3


    对agent配置文件的解释:

    ##define sources字段:
    type : spooldir            //通过监听某个目录下的新增文件,并将文件的内容读取出来,实现日志信息的收集
    spoolDir                //从哪个目录中读取数据
    ignorePattern            //排除哪些文件,用正则匹配
    fileSuffix                //给读取完的文件,加上一个后缀名
    
    
    ##define channel
    type = file                //channel存到文件中,而不是内存,这样不易丢失数据
    checkpointDir            //存储检查点文件的存放目录
    dataDirs                //逗号分隔的目录列表,用于存储日志文件。在单独的磁盘上使用多个目录可以提高文件通道的性能
    
    
    ##define sink
    type = hdfs            //抽取完的数据存到hdfs上
    hdfs.path                //在hdfs上的存储路径
    hdfs.fileType            //hdfs上的存储的文件格式,DataStream不会压缩输出文件
    writeFormat            //序列文件记录的格式,应该设置为Text,否则这些文件不能被Apache Impala(孵化)或Apache Hive读取
    batchSize                //number of events written to file before it is flushed to HDFS


    4、运行agent

    ##先准备一些数据
    mkdir -p /opt/cdh-5.3.6/flume-1.5.0-cdh5.3.6/spoollogs    #创建待抽取数据存放目录
    
    [root@hadoop-senior spoollogs]# ls    #准备三个数据文件
    emp.txt  hivef.log  hivef.sql
    
    mkdir -p /opt/cdh-5.3.6/flume-1.5.0-cdh5.3.6/filechannel/{checkpoint,data}    #创建channel数据存放目录
    
    bin/hdfs dfs -mkdir -p /user/root/flume/splogs/        #在hdfs上创建此目录
    
    
    
    ##运行agent
    bin/flume-ng agent \
    -c conf \
    -n a3 \
    -f conf/flume-app.conf \
    -Dflume.root.logger=DEBUG,console
    
    
    ##此时查看/opt/cdh-5.3.6/flume-1.5.0-cdh5.3.6/spoollogs中的数据,emp.txt hivef.sql后缀加上了.delete
    ##hivef.log没有加后缀,因为我们排除了.log的文件
    [root@hadoop-senior spoollogs]# ls
    emp.txt.delete  hivef.log  hivef.sql.delete
    
    
    ##查看hdfs上有没有数据,已经有了
    [root@hadoop-senior hadoop-2.5.0-cdh5.3.6]# bin/hdfs dfs -ls -R  /user/root/flume/splogs/
    -rw-r--r--   3 root supergroup        463 2019-05-09 09:37 /user/root/flume/splogs/FlumeData.1557365835585
    -rw-r--r--   3 root supergroup        228 2019-05-09 09:37 /user/root/flume/splogs/FlumeData.1557365835586

    转载于:https://www.cnblogs.com/weiyiming007/p/10837175.html

    展开全文
  • 系统可以方便地从专家、监督员库中的一组或几组中随机抽取指定数量的专家、监督员,支持一个项目中多个采购类别(如专业类、经济类、法律类、监督员、其他类别)的反复多次抽取。具有补抽专家等功能,因各种原因抽选...
  • ETL系统增量抽取方案

    千次阅读 2016-11-14 15:15:08
    一、触发器 在被抽取的源表上建立插入、修改、删除三种触发器,当源表中数据发生变化,相应的触发器将变化的数据写入一个增量日志表...通过比较系统时间与源表时间戳字段的值来决定抽取哪些数据,源表需存在时间戳字段

    一、触发器

    在被抽取的源表上建立插入、修改、删除三种触发器,当源表中数据发生变化,相应的触发器将变化的数据写入一个增量日志表,日志表只存储源表名称、更新关键字值和操作类型(insert,update,delete)。ETL先从日志表取源表名称和关键字值,再去源表抽取完整记录,根据操作类型对目标表做处理。

    二、时间戳

    通过比较系统时间与源表时间戳字段的值来决定抽取哪些数据,源表需存在时间戳字段,并且业务系统在更新时要更新时间戳。

    但是对delete操作无法捕获,数据准确性受影响。

    注:可在业务层面避免delete操作,采取对数据增加删除标识字段的方法来处理。

    三、全表删除插入方式

    每次抽取前,先删除目标表数据,全部抽取全部加载,缺点是效率很差。

    四、全表比对方式

    在抽取时,ETL进程逐条比较源表和目标表数据,将变化的记录读取出来。

    优化:MD5比较

    在源数据库建立一张结构和源表类似的MD5临时表,记录源表主键和根据所有字段计算出的MD5校验码。每次抽取时,对源表和MD5临时表进行MD5比对,性能很差。

    五、系统日志分析

    分析数据库本身的日志,判断变化的数据。

    1.oracle提供了日志专用程序包LogMiner,可以简化工作;

    2.CDC方式,改变数据捕获,可分为同步CDC和异步CDC;

    3.闪回查询方式,oracle允许用户查询过去某个时刻的数据库状态,利用当前状态和上次抽取时状态对比,快速得出数据记录变化状况。

    展开全文
  • 公司领导想要看到系统按省份、成功率、业务来分类的时时访问监控图像,虽然说是个没啥用的项目,既然老板发话了,还是去做吧,前端显示页面不是自己开发,前端只需要来数据库抽取我时时计算出的结果展示出来就行了,...
  • 互联网服务上线之后需要密切关注用户的使用情况,这就需要一个能够整合多个系统日志并提供报表分析可视化的工具。ELK是(elastic-search, logstash, kibana)的缩写。它提供了可扩展的,风格酷炫的日志平台服务一. ...
  • PI日志按XML字段抽取查找(多图) 运行T-code:SXMS_LMS_CONF 填写“接口名”、“发送方系统”和“接收方系统” 填写“XPATH”并选中下面两个框 填写对应的“Namespace” 填写“XPATH”和“Namespace”可以参考ID中的 ...
  • DBA开放各个系统的备库,在业务低峰期(比如夜间),使用方各自抽取所需数据。由于抽取时间不同,各个数据使用方数据不一致,数据发生冲突,而且重复抽取,相信不少DBA很头疼这个事情。 公司统一的大数据平台,通过...
  • 同大多数关系型数据库一样,日志文件是MySQL数据库的重要组成部分。MySQL有几种不同的日志文件,通常包括错误日志文件,... 1、MySQL日志文件系统的组成 a、错误日志:记录启动、运行或停止mysqld时出现的问题。 ...
  • 一、背景事情是从公司前段时间的需求说起,大家知道...过去的通用做法有几种,分别是:DBA开放各个系统的备库,在业务低峰期(比如夜间),使用方各自抽取所需数据。由于抽取时间不同,各个数据使用方数据不一致,数据...
  • 一、背景事情是从公司前段时间的需求说起,大家...过去的通用做法有几种,分别是:DBA开放各个系统的备库,在业务低峰期(比如夜间),使用方各自抽取所需数据。由于抽取时间不同,各个数据使用方数据不一致,数据...
  • ELKStack日志离线系统

    2017-11-27 14:42:00
    通过Filebeat抽取数据到logstash中,转存到ElasticSearch中,最后通过Kibana进行展示 https://www.ibm.com/developerworks/cn/opensource/os-cn-elk-filebeat/index.html?ca=drs-&utm_source=tuicool&utm_...
  • 系统日志分析demo

    2013-08-27 16:17:44
    最近完成了一个日志分析项目,执行效率也还行。顺手抽取了思路写了一个demo,分享给大家。 eclipse直接导入Java Project。build path需要自己修改一下。lib全有。 项目使用了Quartz、Jaxb和spring多线程等技术。
  • 解压后有两个应用,我的是64位系统,应该使用 SQLULDR264.exe 具体使用方法参照: https://www.jb51.net/database/577355.html#downintro2 执行SQLULDR264未报错: 但是执行后续命令导出后没有反应,也没有日志...
  • 系统日志分析 实例

    2019-09-28 17:37:24
    最近完成了一个日志分析项目,执行效率也还行。顺手抽取了思路写了一个demo,分享给大家。 eclipse直接导入Java Project。build path需要自己修改一下。lib全有。 项目使用了Quartz、Jaxb和spring多线程等技术。 ...
  • 背景在工作中,我想对业务系统的日志信息进行分析,需要将日志信息抽取到另外一个表里,由于日志表的数据量庞大,我只需要从某一特定时间开始对业务系统产生的日志抽取出来,而且需要每5分钟(假定)进行抽取一次,把...
  • 20001 面向互联网日志分布式实时ETL系统 运行视频、代码等: 链接:https://pan.baidu.com/s/1tw4Qvtcuwt7ys36M7HvLSg 提取码:1589 复制这段内容后打开百度网盘手机App,操作更方便哦 技术 Storm + kafka + ...
  • 概述 数据抽取是指从源数据抽取所需要的数据, 是构建数据中台的第一步。 数据源一般是关系型数据库,近几年,随着移动互联网的蓬勃发展,出现了其他类型的数据源...用时间戳方式抽取增量数据很常见,业务系统在源表...
  • 总体而言,数据抽取的常见方法有两大类,一是基于查询式的,一是基于日志的。基于查询式的数据抽取 基于查询式的数据抽取,顾名思义,以从来源库来源表查询数据为主。总体又有几种:触发器方式,增量字段方式,...
  • SSIS探索之SSIS增量抽取数据

    千次阅读 2018-08-16 15:00:45
     在工作中,我想对业务系统的日志信息进行分析,需要将日志信息抽取到另外一个表里,由于日志表的数据量庞大,我只需要从某一特定时间开始对业务系统产生的日志抽取出来,而且需要每5分钟(假定)进行抽取一次,把...
  • 日志文件是Linux系统维必不可少的部分,日志文件会随着时间的推移变的越来越大,需要使用一种被称为轮替的技术来限制日志的体积,一旦超过了限制的大小,就对它的内容进行抽取,同时将日志文件中的旧条目存储到归档...
  • kettle增量抽取框架

    千次阅读 2016-05-30 17:45:04
    利用kettle进行数据抽取,其实和手工的ETL流程差不多,...1、SET_START_DATE:得到系统当前的时间,作为抽取的开始时间。 2、GET_MINETLFLAG:从ETL的日志表中的到当前的最小FLAG,一般为时间戳。 3、GET_TARE

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 396
精华内容 158
关键字:

日志抽取系统