我的编程空间,编程开发者的网络收藏夹
学习永远不晚

大数据技术栈浅述

短信预约 信息系统项目管理师 报名、考试、查分时间动态提醒
省份

北京

  • 北京
  • 上海
  • 天津
  • 重庆
  • 河北
  • 山东
  • 辽宁
  • 黑龙江
  • 吉林
  • 甘肃
  • 青海
  • 河南
  • 江苏
  • 湖北
  • 湖南
  • 江西
  • 浙江
  • 广东
  • 云南
  • 福建
  • 海南
  • 山西
  • 四川
  • 陕西
  • 贵州
  • 安徽
  • 广西
  • 内蒙
  • 西藏
  • 新疆
  • 宁夏
  • 兵团
手机号立即预约

请填写图片验证码后获取短信验证码

看不清楚,换张图片

免费获取短信验证码

大数据技术栈浅述

大数据技术栈浅述

最近在做企业安全建设,企业安全建设中最常见的一项就是做监控,监控的种类多种多样,但是底层的技术栈却基本是一致的————大数据技术,下面我记录一下我最近学习到的一些大数据技术,下文只是描述个脉络而已。

大数据的技术栈,以及对应的上下依赖图如下:

看完这个图,是不是觉得和之前学习过的网络协议、框架都非常相识,无非就是把里面的名词替换了一下而已。我感觉软件产品的设计思路都是要分模块化、解耦合,你看TCP/IP协议层,每层都各司其职,每层里面的每个功能也是按照这个总体思路继续向下设计。解耦合的好处很多,建议自行百度。

我个人觉得,里面比较有难度的就是Flink那块,因为对数据的分析、计算处理都是在这一块中完成的,Flink也可以用storm替换,不过性能没有flink好。
当将计算结果存储到ES之后,就可以做很多事了,比如做自动告警功能了。


数据源

数据源可以是任何数据,不过现在采集最多的应该就是日志类数据


Filebeat

采集器是最容易理解的,主要是用来汇总日志然后转发的,采集器的技术方案也有很多,这里举例filebeat。

Filebeat主要由两个组件构成:prospector(探测器)harvester(收集器),这两类组件一起协作完成Filebeat的工作。

Filebeat的工作流程如下:
当开启Filebeat程序的时候,它会启动一个或多个探测器去检测指定的日志目录或文件,对于探测器找出的每一个日志文件,Filebeat会启动收集进程,每一个收集进程读取一个日志文件的内容,然后将这些日志数据发送到后台处理程序,后台处理程序会集合这些事件,最后发送集合的数据到output指定的目的地。

Filebeat在有数据源的机器安装好之后,要做的就是写一下配置,
主要配置读取文件的路径,以及输出流的位置以及相应的性能参数等,以Kafka消息中间件作为缓冲,所有的日志收集器都向Kafka输送日志流。

定义日志信息输出格式:


        //存放日志的文件夹名称
        logs
        //日志文件名称
        collector
        //日志格式
        //[%d{yyyy-MM-dd"T"HH:mm:ss.SSSZZ}] 日志输入时间,东八区
        //[%level{length=5}]    日志级别,debug、info、warn、error
        //[%thread-%tid]    当前线程信息
        //[%logger] 当前日志信息所属类全路径
        //[%X{hostName}]    当前节点主机名。需要通过MDC来自定义。
        //[%X{ip}]  当前节点ip。需要通过MDC来自定义。
        //[%X{applicationName}] 当前应用程序名。需要通过MDC来自定义。
        //[%F,%L,%C,%M] %F:当前日志信息所属的文件(类)名,%L:日志信息在所属文件中的行号,%C:当前日志所属文件的全类名,%M:当前日志所属的方法名
        //[%m]  日志详情
        //%ex   异常信息
        //%n    换行
        [%d{yyyy-MM-dd"T"HH:mm:ss.SSSZZ}] [%level{length=5}] [%thread-%tid] [%logger]
            [%X{hostName}] [%X{ip}] [%X{applicationName}] [%F,%L,%C,%M] [%m] ## "%ex"%n

Filebeat配置参考信息:

  paths:
    - /usr/local/logs/error-collector.log
  document_type: "error-log"
  multiline:
    # pattern: "^s*(d{4}|d{2})-(d{2}|[a-zA-Z]{3})-(d{2}|d{4})"   
    # 指定匹配的表达式(匹配以 2017-11-15 08:04:23:889 时间格式开头的字符串)
    pattern: "^["                                # 指定匹配的表达式(匹配以 "{ 开头的字符串)
    negate: true                                # 是否匹配到
    match: after                                # 合并到上一行的末尾
    max_lines: 2000                         # 最大的行数
    timeout: 2s                                 # 如果在规定时间没有新的日志事件就不等待后面的日志
  fields:
    logbiz: collector
    logtopic: error-log-collector   ## 按服务划分用作kafka topic
    evn: dev
    
output.kafka:
  enabled: true
  hosts: ["192.168.204.139:9092"]
  topic: "%{[fields.logtopic]}"
  partition.hash:
    reachable_only: true
  compression: gzip
  max_message_bytes: 1000000
  required_acks: 1
logging.to_files: true

Kafka

Apache kafka是消息中间件的一种,功能是高吞吐量的分布式发布订阅消息系统

Kafka特点:
kafka中的消息不是kafka主动去拉去的,而必须有生产者往kafka写消息。
kafka是不会主动往消费者发布消息的,而必须有消费者主动从kafka拉取消息。

kafka名词解释:
kafka的几个名词需要知道一下,比如topic、producer、consumer、broker,下面用最俗的方式解释

  • producer:生产者,就是它来生产“鸡蛋”的。
  • consumer:消费者,生出的“鸡蛋”它来消费。
  • topic:你把它理解为标签,生产者每生产出来一个鸡蛋就贴上一个标签(topic),消费者可不是谁生产的“鸡蛋”都吃的,这样不同的生产者生产出来的“鸡蛋”,消费者就可以选择性的“吃”了。
  • broker:相当于菜市场的小贩,小贩从生产者手里收购了鸡蛋,然后一直存储在商店中,等待消费者来购买。他在中间作鸡蛋的存储、转发、接受顾客问价(请求)和回答(响应)等功能。
    一个单独的Kafka Server就是一个Broker。在一般的生产环境中,一个Broker独占一台物理服务器。Broker的主要工作就是接收生产者发过来的消息,分配offset,之后保存到磁盘中。同时,接收消费者、其他Broker的请求,根据请求类型进行相应处理并返回响应。

kafka的单节点基本操作:
生产者

# 创建一个主题(标签),Hello-Kafka
bin/kafka-console-producer.sh --broker-list localhost:9092 --topic Hello-Kafka
# 生产者将等待来自stdin的输入并发布到Kafka集群。 默认情况下,每个新行都作为新消息发布,然后在 config / producer.properties 文件中指定默认生产者属性。 

# 在终端中键入几行消息
egg1
egg2

消费者

# 与生产者类似,在 config / consumer.proper-ties 文件中指定了缺省使用者属性。 打开一个新终端并键入以下消息消息语法。

bin/kafka-console-consumer.sh --zookeeper localhost:2181 —topic Hello-Kafka 
--from-beginning

# 自动出现
egg1
egg2

Flink

Flink核心是一个流式的数据流执行引擎,其针对数据流的分布式计算提供了数据分布、数据通信以及容错机制等功。
简单的说就是,Flink可以对数据流进行转换、计算、聚合等功能。如果你采集的数据需要做告警功能,那么就需要用Flink或者storm,如果只是将采集的数据进行存储,然后展示,那么就不需要用到Flink这种技术。

比如在企业安全建设中,做监控平台就需要有告警功能,采集到的监控数据会直接往 kafka 里塞,然后告警这边需要从 kafka topic 里面实时读取到监控数据,并将读取到的监控数据做一些 转换、计算、聚合等操作,然后将计算后的结果与告警规则的阈值进行比较,然后做出相应的告警措施(钉钉群、邮件、短信、电话等)。画了个简单的图如下:

flink处理静态sql的代理流程:

这个sql只能是写死在代码里面,如果是想要动态的修改sql,那么就要重启flink服务才能生效。

但是有个需求,就像下图这样,sql语句来之外部,因为需要让安全人员来描述规则,他们跟进安全态势来修改,并且需要常常更新规则来挖掘出最新安全事件,

那么就出现一个问题了,像上面的flink只能处理静态sql,想动态处理怎么办?

使用 flink-siddhi 来处理动态sql:
SIDDHI 是一款功能强大的open source CEP(Complex Event Processing)引擎引擎,具有自己的DSL,丰富的模式匹配功能和可扩展性,

使用Siddhi 引擎的好处就是,里面的sql语句可以任意修改,修改sql后,也不需要重启flink服务。
siddhi引擎我最近也是刚开始学习,这里就不过多笔墨了,后面会出siddhi的专项文章。


ES

ES太常见了,以后有空在补充吧。


Kibana

Kibana也很常见,以后有空在补充吧。希望读者给个评论或者推荐,让我有动力更新完。


参考

https://www.cnblogs.com/monument/p/12944718.html
https://www.jianshu.com/p/a8b66f586fd4
http://kafka.apachecn.org/
https://www.w3cschool.cn/apache_kafka/apache_kafka_introduction.html
https://blog.csdn.net/leanaoo/article/details/84310604
https://ci.apache.org/projects/flink/flink-docs-release-1.4/
https://www.cnblogs.com/fxjwind/p/5048583.html
https://baijiahao.baidu.com/s?id=1623279487849430246&wfr=spider&for=pc

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

大数据技术栈浅述

下载Word文档到电脑,方便收藏和打印~

下载Word文档

猜你喜欢

大数据技术栈浅述

最近在做企业安全建设,企业安全建设中最常见的一项就是做监控,监控的种类多种多样,但是底层的技术栈却基本是一致的————大数据技术,下面我记录一下我最近学习到的一些大数据技术,下文只是描述个脉络而已。大数据的技术栈,以及对应的上下依赖图如下:看完这个图,是不是觉
大数据技术栈浅述
2014-10-01

大数据技术栈,主要有哪些

往大数据方向发展需要学哪些技术?网上一搜真是指不胜屈。对于小白来说,实在是一头雾水,到底哪些是当下流行的?哪些是必须要先学会的?流行?主次搞不清。为了解决这些疑惑,羚羊专门花了些时间,  挨个技术去研究对比归类,大概总结出以下的技术点:文件存储: Hadoop
大数据技术栈,主要有哪些
2021-09-27

PHP除以10000:浅谈大数据计算技术

在当今信息化社会,数据已经成为无处不在的资产,越来越多的企业和机构开始关注如何处理和分析大规模的数据,以获取更多的商业价值。在大数据处理中,PHP这一被广泛应用的编程语言也逐渐展现出其优势,尤其是在数据计算方面。PHP作为一种服务器端脚本语
PHP除以10000:浅谈大数据计算技术
2024-03-07

产品数据管理(PDM)技术概述

1产品数据管理系统(PDM)发展及现状 1.1PDM技术的基本概念及产生的背景 产品数据管理(PDM)是以软件技术为基础,以产品为核心,实现对产品相关数据、过程、资源一体化集成管理的技术。PDM明确定位为面向制造企业,以产品为管理的核心,以
2023-06-05

浅谈一下Vue技术栈之生命周期

这篇文章主要介绍了浅谈一下Vue技术栈之生命周期,每一个vue实例从创建到销毁的过程,就是这个vue实例的生命周期,这些过程中会伴随着一些函数的自调用,需要的朋友可以参考下
2023-05-18

MongoDB与大数据技术栈的结合实践与架构设计

MongoDB是一款非关系型数据库,具有高可扩展性、高性能和灵活的数据模型等特点,在大数据领域有着广泛的应用。本文将介绍MongoDB与大数据技术栈的结合实践与架构设计。一、MongoDB在大数据技术栈中的地位和作用在大数据技术栈中,Mon
MongoDB与大数据技术栈的结合实践与架构设计
2023-11-02

阐述数据加密技术及优缺点

  我们经常需要一种措施来保护我们的数据,防止一些不怀好意的人看到或者破坏。在信息发展的时代,更需要一种强有力的安全措施来保护机密数据不被窃取或篡改,数据加密也不是什么新生事物,那么数据加密技术是怎么一回事?层出不穷的数据加密技术产品都有些什么有优缺点?以下我们就来介绍一下数据加密技术,愿能为那些对加密技术有兴趣的朋友
阐述数据加密技术及优缺点
2024-04-18

大数据技术有哪些

本篇内容介绍了“大数据技术有哪些”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!  大数据的概念,指的是无法在一定时间内用常规软件工具对其内容
2023-06-02

大数据存储技术基础

一、绪论1.存储的本质信息跨越空间的传递——通讯 信息跨越时间的传递——存储通讯:利用具有跨越空间特性的物理现象 ---声音、光、电存储:利用具有时间稳态的物理现象 ---物理稳态、磁稳态、半导体稳态什么是存储?存储:·它是数据临时或长期驻留的物理媒介;·它是
大数据存储技术基础
2018-01-24

大数据技术体系介绍

大数据技术体系是指在大数据环境下进行数据处理、存储、分析和挖掘的一系列技术方法和工具的集合体。大数据技术体系涵盖了数据采集、数据存储、数据处理和数据分析等多个方面,可以帮助组织和企业从大数据中获取更多的价值信息。1. 数据采集技术:包括数据
2023-10-11

大数据两大核心技术是什么

这篇文章主要介绍“大数据两大核心技术是什么”,在日常操作中,相信很多人在大数据两大核心技术是什么问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”大数据两大核心技术是什么”的疑惑有所帮助!接下来,请跟着小编一起来
2023-06-02

最佳大数据可视化技术

最佳大数据可视化技术取决于具体的需求和数据特征。以下是一些常用的大数据可视化技术:1. 数据仪表盘:数据仪表盘是一种集中展示数据指标和关键性能指标的可视化工具。它提供了实时数据更新和交互功能,使用户能够快速了解数据状况并做出决策。2. 热力
2023-09-22

浅谈数据库防火墙技术及应用

数据库防火墙仿佛是近几年来出现的一款新的安全设备,但事实上历史已经很长。2010年,Oracle公司在收购了Secerno公司,在2011年2月份正式发布了其数据库防火墙产品(database firewall),已经在市场上出现很多年头了
2023-06-03

C++技术中的大数据处理:如何采用流处理技术处理大数据流?

流处理技术用于大数据处理流处理是一种即时处理数据流的技术。在 c++++ 中,apache kafka 可用于流处理。流处理提供实时数据处理、可伸缩性和容错性。本例使用 apache kafka 从 kafka 主题读取数据并计算平均值。C
C++技术中的大数据处理:如何采用流处理技术处理大数据流?
2024-05-11

大数据NoSQL技术之Couchbase Server数据库详解

CouchbaseServer:NoSQL数据库详解CouchbaseServer是一个分布式NoSQL数据库,专为处理大数据而设计。它采用文档型数据模型,提供灵活性、高吞吐量、低延迟和线性可扩展性。此外,它还支持多数据类型、内置缓存、索引和复制,确保数据的持久性和高可用性。CouchbaseServer适用于各种应用程序,包括实时应用、电子商务和社交媒体,在与MongoDB和Cassandra等其他NoSQL数据库的比较中表现出色。
大数据NoSQL技术之Couchbase Server数据库详解
2024-04-09

大数据时代的重复数据删除技术

编程学习网:重复数据删除在几年前是一个独立的功能,主要用于企业备份和归档部门的存储系统。如如今,重复数据删除在云端网关找到了新的用途,为即将进入阵列或虚拟磁带库的数据过滤掉没有用处的数据。重复数据删除技术已经成为一种统计算系统预先集成的功能,而企业对于这项技术的有效使用成为一种需求。
大数据时代的重复数据删除技术
2024-04-23

大数据预处理综述

数据预处理背景大数据项目开发流程数据质量准确性:数据是正确的,数据存储在数据库中的值对应于真实世界的值。数据不准确的原因数据收集设备故障。数据输入错误。数据传输过程出错。命名约定、数据输入、输入字段格式不一致。相关性:指数据与特定的应用和领域有关。相关性应用场
大数据预处理综述
2021-12-10

VUE:大数据展示的革命性技术

Vue.js 在大数据展示领域正风靡一时,其轻量级、可扩展性和数据绑定能力使得它成为构建交互式、高效的大数据可视化解决方案的理想选择。
VUE:大数据展示的革命性技术
2024-03-05

大数据技术&机器学习分析

欢迎各位阅读本篇,大数据(Big Data)又称为巨量资料,指需要新处理模式才能具有更强的决策力、洞察力和流程优化能力的海量、高增长率和多样化的信息资产。本篇文章讲述了大数据技术&机器学习分析,编程学习网教育平台提醒各位:本篇文章纯干货~因此大家一定要认真阅读本篇文章哦!
大数据技术&机器学习分析
2024-04-23

数据中心四大灾备技术解析

数据中心的灾备技术主要是指为了保证数据中心在发生灾害时能够快速恢复运行,并且不会丢失重要数据而采取的一系列措施和技术手段。下面是四种常见的数据中心灾备技术:1. 数据备份与恢复:数据备份是数据中心灾备的基本措施,它通过定期将数据复制到备份系
2023-09-22

编程热搜

目录