• 大数据架构:flume-ng+Kafka+Storm+HDFS 实时系统组合


    大数据我们全知道hadoop,但并不全都是hadoop。我们该如何构建大数据库项目。对于离线处理,hadoop还是比较适合的,但是对于实时性比较强的,数据量比较大的,我们可以采用storm,那么storm和什么技术搭配,才能做一个适合自己的项目。

    1.一个好的项目架构应该具备什么特点?

    2.本项目架构是如何保证数据准确性的?

    3.什么是kafka?

    4.flume+kafka如何整合?

    5.使用什么脚本可以查看flume是没有往kafka传输数据?

    做软件开发的全知道模块化思想,这样设计的原因有两方面:

    一方面是可以模块化,功能划分更加清晰,从“数据采集--数据接入--流失计算--数据输出/存储”

    1》数据采集

    负责从各节点上实时采集数据,选用cloudera的flume来实现

    2》数据接入

    由于采集数据的速度和数据处理的速度不一定同步,因此添加一个消息中间件来作为缓冲,选用Apache的kafka

    3》流式计算

    对采集到的数据进行实时分析,采用Apache的storm

    4》数据传输

    对分析后的结果持久化,暂定用mysql

    另一方面是模块化之后,假如当storm挂掉了之后,数据采集和数据接入还是继续在跑着,数据不会丢失,storm起来之后可以继续进行流式计算;

    那么接下来我们来看下整体的架构图

    详细介绍各个组件及安装配置:

    flume

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

    Flume提供了从console(控制台)、RPC(Thrift-RPC)、text(文件)、tail(UNIX tail)、syslog(syslog日志系统,支持TCP和UDP等2种模式),exec(命令执行)等数据源上收集数据的能力,在我们的系统中目前使用exec方式进行日志采集。

    Flume的数据接受方,可以是console(控制台)、text(文件)、dfs(HDFS文件)、RPC(Thrift-RPC)和syslogTCP(TCP syslog日志系统)等。在我们系统中由kafka来接收。

    Flume下载及文档:
    http://flume.apache.org/
    Flume安装:
    $tar zxvf apache-flume-1.4.0-bin.tar.gz

    Flume启动命令:

    $bin/flume-ng agent --conf conf --conf-file conf/flume-conf.properties --name producer -Dflume.root.logger=INFO,console

  • 相关阅读:
    DataSet调用Dispose必须吗
    Python基础
    windows下pip升级到8.1.1 及安装Selenium
    python文件编码说明 coding
    Response.End() VS Context.ApplicationInstance.CompleteRequest()
    Python练习正则
    Python2.7爬虫练习爬百度百科python词条
    未知错误:1000正在终止线程
    debug pin用
    读取文件
  • 原文地址:https://www.cnblogs.com/tian880820/p/5685495.html
Copyright © 2020-2023  润新知