Apache Storm

用户画像系统架构——从零开始搭建实时用户画像(二)

前提是你 提交于 2020-08-10 18:51:51
​ ![]( https://img2020.cnblogs.com/blog/1089984/202005/1089984-20200525090508335-1536539425.png ) ​ 在《[什么的是用户画像]( https://mp.weixin.qq.com/s/169tCtjgUiDNeHIKLtGO9w )》一文中,我们已经知道用户画像对于企业的巨大意义,当然也有着非常大实时难度。那么在用户画像的系统架构中都有哪些难度和重点要考虑的问题呢? # 挑战 - ## 大数据 随着互联网的崛起和智能手机的兴起,以及物联网带来的各种可穿戴设备,我们能获取的每一个用户的数据量是非常巨大的,而用户量本身更是巨大的,我们面临的是TB级,PB级的数据,所以我们必须要一套可以支撑大数据量的高可用性,高扩展性的系统架构来支撑用户画像分析的实现。毫无疑问,大数据时代的到来让这一切都成为可能,近年来,以Hadoop为代表的大数据技术如雨后春笋般迅速发展,每隔一段时间都会有一项新的技术诞生,不断驱动的业务向前,这让我们对于用户画像的简单统计,复杂分析,机器学习都成为可能。所以整体用户画像体系必须建立在大数据架构之上。 ![]( https://img2020.cnblogs.com/blog/1089984/202005/1089984-20200525090411478

某二手交易平台大数据平台从 0 到 1 演进与实践

|▌冷眼眸甩不掉的悲伤 提交于 2020-08-10 15:46:00
在人口流量红利不再,获客成本越来越高的时代,精益创业、MVP 的概念已经深入人心,精细化运营也是大势所趋,而这些背后本质上都依赖数据化运营,那如何根据现有业务,快速从 0 开始打造一个契合业务的数据产品呢?本文将以某二手交易平台业务为基础,讲述整个数据平台从 0 到 1 的演进与实践,希望对大家能有所启发。 1、背景 在某二手交易平台开始大数据平台建设之前,整个数据从需求提出到研发流程再到数据报表、数据产品,也是经历过一段非常混沌的时期,而且效率和质量往往很难得到保障,主要表现为以下几个方面: (1)可用性差 比如经常出现计算延迟、异常,数据指标也常常数据对不上,很多相似的指标不清楚具体差异在哪,即使同一个指标也可能不同的同学开发的而对不上。另外数据波动无感知,比如日志格式出错,结果第二天才发现有问题。 (2)维护成本高 成百上千的日志模块,不知从何维护,出了问题也不知道从哪里可以追溯到源头和负责人。 (3)业务快速迭代,精细化、数据化运营需求和研发资源之间的矛盾 2、目标与方案 (1)目标 数据可管理、可维护、可扩展、高可用 及时、准确、直观的呈现业务数据与问题 降低使用门槛,提升使用效率 (2)方案 数据仓库化 数据平台化 3、数据仓库建设 结构化 层次化 主题化 模型化:用户模型/事件模型 ETL ETL 是整个数据仓库的核心,正如业界流传的一句话:Garbage In,

赞!期待已久的《架构解密:从分布式到微服务》终于出第2版了

我的未来我决定 提交于 2020-08-10 05:00:42
微服务、云原生、Kubernetes、Service Mesh 是分布式领域的热点技术,它们并不是凭空出现的,一定继承了某些“前辈”的优点。我们不仅要了解这些技术,还要深入理解其发展脉络、原理等,才能游刃有余地将其用于现有的项目开发或老系统改造中。 以下是这位资深架构师的笔记内容: 由于内容过多,为了避免影响到大家的阅读体验,在此只以截图展示部分内容。有需要获取完整版的朋友点赞后,私信【笔记】即可(一定要记得关注我,不然没办法回复陌生人私信) 第1章:深入理解网络 讲解分布式的基础一-网络, 对国际互联网、NIO、AIO、网络传输中的对象序列化问题、HTTP的前世今生、TCP/IP、从CDN到SD-WAN等知识进行深入讲解。 详细章节介绍: 从国际互联网开始 NIO, 一本难念的经 AIO,大道至简的设计与苦涩的现实 网络传输中的对象序列化问题 HTTP的前世今生 分布式系统的基石: TCP/IP 从CDN到SD-WAN 第2章:分布式系统的经典理论 讲解分布式系统的经典理论,涉及分布式系统的设计理念、-致性原理; ZooKeeper 的使用场景; CAP理论的前世今生; BASE准则;分布式事务的原理。 详细章节介绍: 从分布式系统的设计理念说起 分布式系统的一致性原理 分布式系统的基石之ZooKeeper 经典的CAP理论 BASE准则,一个影响深远的指导思想

某二手交易平台大数据平台从 0 到 1 演进与实践

≡放荡痞女 提交于 2020-08-09 08:53:52
在人口流量红利不再,获客成本越来越高的时代,精益创业、MVP 的概念已经深入人心,精细化运营也是大势所趋,而这些背后本质上都依赖数据化运营,那如何根据现有业务,快速从 0 开始打造一个契合业务的数据产品呢?本文将以某二手交易平台业务为基础,讲述整个数据平台从 0 到 1 的演进与实践,希望对大家能有所启发。 1、背景 在某二手交易平台开始大数据平台建设之前,整个数据从需求提出到研发流程再到数据报表、数据产品,也是经历过一段非常混沌的时期,而且效率和质量往往很难得到保障,主要表现为以下几个方面: (1)可用性差 比如经常出现计算延迟、异常,数据指标也常常数据对不上,很多相似的指标不清楚具体差异在哪,即使同一个指标也可能不同的同学开发的而对不上。另外数据波动无感知,比如日志格式出错,结果第二天才发现有问题。 (2)维护成本高 成百上千的日志模块,不知从何维护,出了问题也不知道从哪里可以追溯到源头和负责人。 (3)业务快速迭代,精细化、数据化运营需求和研发资源之间的矛盾 2、目标与方案 (1)目标 数据可管理、可维护、可扩展、高可用 及时、准确、直观的呈现业务数据与问题 降低使用门槛,提升使用效率 (2)方案 数据仓库化 数据平台化 3、数据仓库建设 结构化 层次化 主题化 模型化:用户模型/事件模型 ETL ETL 是整个数据仓库的核心,正如业界流传的一句话:Garbage In,

让阿里P8都为之着迷的分布式核心原理解析到底讲了啥?看完我惊了

拟墨画扇 提交于 2020-08-08 23:50:10
领取本文资料直接扫码免费领取 这个人人都喊着“高并发”“高可用”的时代里,分布式系统的重要性不言而喻。从整个行业的招聘趋势就能看出来,大型互联网公司在招聘后端工程师的时候,都会要求候选人有分布式相关的工作经验。与其直接用些抽象、晦涩的技术名词去给分布式下一个定义,还不如从理解分布式的发展驱动因素开始,我们一起去探寻它的本质,自然而然地也就清楚它的定义了。 在今天这篇文章中,我将带你了解分布式的起源,是如何从单台计算机发展到分布式的,进而帮助你深入理解什么是分布式。为了方便你更好地理解这个演进过程,我将不考虑多核、多处理器的情况,假定每台计算机都是单核、单处理器的。 说明:完整的《分布式核心原理解析》学习文档篇幅较长,共有330页,这里限于篇幅,故只展示一部分的文档,有需要这份学习文档的朋友麻烦帮忙转发+转发+转发一下,然后再私信我【学习】即可免费获取这份《分布式核心原理解析》学习文档。 前言 一,分布式何而起 分布式起源 单兵模式:单机模式 游击队模式:数据并行或数据分布式 集团军模式:任务并行或任务分布式 分布式是什么? 总结 二,分布式系统的指标 分布式系统的指标 性能(Per formance) 资源占用(Resource Usage) 可用性( Availability) 可扩展性(Sealabi1ity) 不同场景下分布式系统的指标 总结与思考 三,分布式协调与同步

编译 apache storm 源码

一世执手 提交于 2020-08-08 04:30:52
1、从gitlab 克隆源码,地址: git://github.com/apache/storm.git 2、切换到 tag v1.1.0 3、编辑 pom.xml ,添加repository <repository> <releases> <enabled>true</enabled> </releases> <snapshots> <enabled>true</enabled> </snapshots> <id>confluent</id> <url>https://packages.confluent.io/maven/</url> </repository> 4、编辑external\storm-hdfs 下的pom.xml添加依赖 <dependency> <groupId>io.confluent</groupId> <artifactId>kafka-schema-registry-client</artifactId> <version>1.0</version> </dependency> 5、下载clojar网站证书 5.1 如图chrome浏览器打开repo.cljars.org,点击“锁”图标,点击 “证书(有效)” 5.2 弹窗详细信息,点击复制到文件 5.3 向导,下一步,选择cer格式 5.4 输入文件名保存 ,例如 D:\clojars.cer 5

Spark Streaming,Flink,Storm,Kafka Streams,Samza:如何选择流处理框架

笑着哭i 提交于 2020-08-06 06:48:29
![](https://img2020.cnblogs.com/blog/1089984/202006/1089984-20200610080225004-690722209.png) 根据最新的统计显示,仅在过去的两年中,当今世界上90%的数据都是在新产生的,每天创建2.5万亿字节的数据,并且随着新设备,传感器和技术的出现,数据增长速度可能会进一步加快。 从技术上讲,这意味着我们的大数据处理将变得更加复杂且更具挑战性。而且,许多用例(例如,移动应用广告,欺诈检测,出租车预订,病人监护等)都需要在数据到达时进行实时数据处理,以便做出快速可行的决策。这就是为什么分布式流处理在大数据世界中变得非常流行的原因。 如今,有许多可用的开源流框架。有趣的是,几乎所有它们都是相当新的,仅在最近几年才开发出来。因此,对于新手来说,很容易混淆流框架之间的理解和区分。在本文中,我将首先大致讨论流处理的类型和方面,然后比较最受欢迎的开源流框架:Flink,SparkStreaming,Storm,KafkaStream。我将尝试(简要地)解释它们的工作原理,它们的用例,优势,局限性,异同。 ## **什么是流/流处理:** 流处理的最优雅的定义是:一种数据处理引擎,其设计时考虑了无限的数据集。 与批处理不同,批处理以工作中的开始和结束为界,而工作是在处理有限数据之后完成的,而流处理则是指连续不断地处理天

kafka的基本介绍、架构

感情迁移 提交于 2020-08-05 13:57:21
一、kafka的基本介绍 官网:http://kafka.apache.org/ kafka是一个分布式,分区的,多副本的,多订阅者的消息发布订阅系统(分布式MQ系统),可以用于搜索日志,监控日志,访问日志等。 最初由linkedin公司开发,使用scala语言编写, Kafka is a distributed,partitioned,replicated commit logservice。 kafka对消息保存时根据Topic进行归类,发送消息者成为Producer,消息接受者成为Consumer,此外kafka集群有多个kafka实例组成,每个实例(server)成为broker。无论是kafka集群,还是producer和consumer都依赖于zookeeper来保证系统可用性集群保存一些meta信息 二、kafka的好处 可靠性: 分布式的,分区,复制和容错。 可扩展性: kafka消息传递系统轻松缩放,无需停机。 耐用性: kafka使用分布式提交日志,这意味着消息会尽可能快速的保存在磁盘上,因此它是持久的。 性能:kafka对于发布和定于消息都具有高吞吐量。即使存储了许多TB的消息,他也爆出稳定的性能。 kafka非常快: 保证零停机和零数据丢失。 三、分布式的发布与订阅系统 apache kafka是一个分布式发布- 订阅消息系统和一个强大的队列

史上最全的大数据技术栈,有种冲动学习的既视感,你是否感受到了自己的不足?

泄露秘密 提交于 2020-08-05 04:19:44
前言 提起大数据,不得不提由IBM提出的关于大数据的5V特点: Volume(大量)、Velocity(高速)、Variety(多样)、Value(低价值密度)、Veracity(真实性) ,而对于大数据领域的从业人员的日常工作也与这5V密切相关。大数据技术在过去的几十年中取得非常迅速的发展,尤以Hadoop和Spark最为突出,已构建起庞大的技术生态体系圈。 下面我们通过一张图来了解一下目前大数据领域常用的一些技术,当然大数据发展至今所涉及技术远不止这些。 下面自底向上介绍各个层的主要项目。 1 采集层和传输层 Sqoop 在hadoop和关系型数据库之间转换数据。 Flume Flume是一个分布式的高可用的数据收集、聚集和移动的工具。通常用于从其他系统搜集数据,如web服务器产生的日志,通过Flume将日志写入到Hadoop的HDFS中。 Canal 数据抽取是 ETL 流程的第一步。我们会将数据从 RDBMS 或日志服务器等外部系统抽取至数据仓库,进行清洗、转换、聚合等操作。在现代网站技术栈中,MySQL 是最常见的数据库管理系统,我们会从多个不同的 MySQL 实例中抽取数据,存入一个中心节点,或直接进入 Hive。市面上已有多种成熟的、基于 SQL 查询的抽取软件,如著名的开源项目 Apache Sqoop,然而这些工具并不支持实时的数据抽取。MySQL Binlog

SpringBoot切面Aop的demo简单讲解

删除回忆录丶 提交于 2020-08-04 20:00:07
前言 本篇文章主要介绍的是SpringBoot切面Aop的demo简单讲解。 SpringBoot Aop 说明:如果想直接获取工程那么可以直接跳到底部,通过链接下载工程代码。 切面(Aop) 一、概念 AOP(Aspect OrientedProgramming):面向切面编程,面向切面编程(也叫面向方面编程),是目前软件开发中的一个热点,也是Spring框架中的一个重要内容。利用AOP可以对业务逻辑的各个部分进行隔离,从而使得业务逻辑各部分之间的耦合度降低,提高程序的可重用性,同时提高了开发的效率。 二、用途 日志记录,性能统计,安全控制,权限管理,事务处理,异常处理,资源池管理。 三、详解 1.切面(Aspect): 官方的抽象定义为“一个关注点的模块化,这个关注点可能会横切多个对象”,在本例中,“切面”就是类TestAspect所关注的具体行为,例如:AServiceImpl.barA()的调用就是切面TestAspect所关注的行为之一。“切面”在ApplicationContext中 aop:aspect 来配置。 2.连接点(Joinpoint): 程序执行过程中的某一行为,例如,AServiceImpl.barA()的调用或者BServiceImpl.barB(String _msg, int _type)抛出异常等行为。 3.通知(Advice): “切面