- 高并发性:由于Kafka是顺序读/写磁盘的,使用NIO的网络模型支持数千个客户端同时读/写。
4.2 安装与使用
另外记录安装和使用
4.3 案例分析
4.3.1 曰志采集
投放引擎进行日志的记录,采集工具进行日志的实时采集,然后实时地将日志写入 Kafka。目前微博广告存在多个 Kafka 消息队列集群,针对不同的业务日志划分为不同的集群。日志收集使用了上百个 Kafka Topic。
4.3.2 实时结算
消息队列的作用是:当系统处理消费能力不足时,可以通过增加分区、增加部署节点来提高系统吞吐量。当由于流量增加造成系统故障时,上游的数据可以写入 Kafka 集群,这样即使下游的服务者机也不会造成结算数据的丢失,避免了对公司的收入造成 定的损失。 Kafka 让系统与系统之间大大降低了相合性。 Kafka 支持同步和异步的消息写入,并且可以配置消息写入模式来降低丢失消息的风险,因为对于结算系统来说,消息丢失率高就会造成收入的减少。
4.3.3 实时计算
大量的数据需要实时地通过消息队列传输 实时计算引擎通过实时消费 Kafka的数据进行计算。投放效果评估平台、微博广告实验平台同样需要实时地消费数据,进行投放算法的分析和反馈。
第五章、大数据存储技术
5.1 传统数据存储
2010 年以前的互联网公司的大型论坛、 SNS 、博客等互动产品的技术架构如下图所示:
其主要逻辑是: LVS 负责负载均衡;SquidNamish 承担图片、静态页的缓存功能; Nginx 用来做反向代理;Web 服务器处理业务逻辑:数据库存储业务数据; Cache 服务器主要用作对象缓存和列表缓存。其中存在大 能产生 access 日志的服务器,有效存储这些日志是一个难题。
5.1.2 传统存储的运行机制
日志接收服务器通过网络共享、rsy、网络传输等技术,将日志集中到几台磁盘容很大的大型主机上,大型主机上可能安装有 Oracle 或者 MySQL 关系型数据库,用 Python, Perl,shell 来处理这些日志,然后输出计算结果。
为了解决单点问题,通常的做法是使用 台具有相同配置的机器作为冷备,将两台机器相合在 起,如果其中一台机器发生了故障,则可以快速地使用另 台机器顶替,维持业务的连 性,这就是最简单的集群形式。
5.1.3 传统存储带来的问题
性能问题、成本激增、单点问题、数据准确性等四大问题
5.2 基于HDFS的分布式存储
5.2.1 分布式存储的定义
分布式存储就是指通过网络连接每台机器 使这些分散的存储资源构成一个虚拟的存储设备,数据分散在每台机器上的各个角落。与集中式存储技术不同,分布式存储技术并不是将数据存储在某个或多个特定节点上的。
5.3 HDFS分布式存储原理
请查看之前文章:HDFS技术原理
5.4 大数据环境下的数据仓库和分层存储技术
5.4.1 数据仓库
1. 数据仓库的特点
面向主题、集成、相对稳定、反映历史变化
2.数据仓库的组成
- 数据仓库数据库
- 数据抽取工具
- 元数据
元数据包括 数据源信息、数据转换的描述、数据仓库 对象 数据结构的定义、数据清理和数据更新使用的规则、源数据到目的数据的映射、用户访问权限、数据备份历史记录、数据导入历史记录、信息发布历史记录等。
商业元数据从商业业务的角度描述了数据仓库中的数据。商业元数据包括:业务问题的描述,以及所包含的数据、查询、报表。
元数据为访问数据仓库提供了一个信息目录,这个目录全面描述了数据仓库中都有什么数据、这些数据是怎么得到的,以及怎么访问这些数据 。它是数据 库运行和维护的中心, 数据仓库服务器利用它来存储和更新数据,用户通过它来了解和访问数据 - 访问工具
访问工具为用户访问数据仓库提供手段 访问工具有数据查询和报表工具、应用开发工具、联机分析处理( LAP )工具、数据挖掘工具。 - 数据集市( Data Market)
数据集市是为了特定的应用目的或应用范围,而从数据仓库中独立出来的一部分数据 ,也可称为部门数据或主题数据 。
5.4.2 数据仓库分层架构
数据仓库采用分层架构,分为缓冲层、操作数据层、明细数据层、汇总数据层和数据集市层。
- 数据缓冲层
概念: 用于存储每天的增量数据和变更数据
数据生成方式: 直接 Kafka 接收源数据或从业务库抽取,需要业务表每天生成 update、delete、insert 数据,只生成 insert 数据的业务表,数据直接接入操作数据层。
讨论方案: 只把 Kafka 消息直接接入缓冲层,对于其他有拉链数据的业务,也接入缓冲层。
日志删除方式: 只存储最近 天的数据。
表的Schema: 一般按天创建分区。 - 操作数据层( ODS, Operational Data Store )
概念: 数据仓库的细节数据层,对缓冲层数据进行沉淀,减小了抽取的复杂性。同时ODS的信息模型组织主要遵循企业业务事务处理的形式,将各种专业数据进行集中,操作数据层的粒度跟缓冲层一致。
数据生成方式: 部分数据直接来自 Kafka ,部分数据为缓冲层数据与历史数据的合成。
讨论方案: 每天把操作数据层的前天全量数据和缓冲层的昨天新数据合成一个新的数据表,覆盖旧表。
日志删除方式: 长久存储
表的Schema: 一般按天创建分区,没有时间概念的按具体业务选择分区字段。 - 明细数据层( DWD, Data Warehouse Detail )
概念: 数据仓库的明细数据层,同 的信息模型组织主要遵循企业业务事务处理的形式,将各种专业数据进行集中 明细数据层的粒度跟操作数据层一致,属于分析的公共资源。
数据生成方式: 在操作数据层清洗或 JO时维度表之后生成。
日志删除方式: 长久存储。
表Schema : 一般按天创建分区,没有时间概念的按具体业务选择分区宇段。
库与表命名: 库名为 dwd 表名, 初步考虑格式为 dwd 业务表名。
旧数据更新方式: 直接覆盖。 - 汇总数据层( DWS, Data Warehouse Summary )
概念: 在数据仓库中明细数据层和数据集市层之间的一个过渡层次,对明细数据层的生产数据进行轻度综合和汇总统计。汇总数据层与明细数据层的主要区别在于二者的应用领域不同,明细数据层的数据来源于生产型系统,并为满意一些不可预见的需求而进行沉淀;汇总数据层则面向分析型应用进行细粒度的统计和沉淀。
数据生成方式: 由明细数据层按照-定的业务需求生成轻度汇总表。明细数据层需要复杂清洗的数据 需要 MR 处理的数据也经过处理后接入汇总数据层。
日志、删除方式: 长久存储。
表Schema: 一般按天创建分区,没有时间概念的按具体业务选择分区字段。
库与表命名: 库名为 dws ;表名,初步考虑格式为 dws 日期业务表名。
旧数据更新方式: 直接覆盖。 - 数据集市层( DM, Data Market )
概念: 数据集市层又称为数据集市或宽表。按照业务划分,如流量、订单、用户等,生成宇段比较多的宽表,用于提供后续的业务查询、 OLAP 分析、数据分发等。
数据生成方式: 由汇总数据层和明细数据层的数据计算生成。
日志删除方式: 长久存储
表Schema: 一般按天创建分区,没有时间概念的按具体业务选择分区字段。
库与表命名: 库名为 dm;表名,初步考虑格式为 dm 业务表名。
旧数据更新方式: 直接覆盖。
5.4.3 分层存储的好处
- 数据结构更明确
- 数据血缘追踪 ,便于管理
- 复杂问题简单化
- 表共用,减少了重复计算
- 屏蔽原始数据的异常和业务变更的影响
智能运维从0搭建大规模分布式AIOps系统
自我介绍一下,小编13年上海交大毕业,曾经在小公司待过,也去过华为、OPPO等大厂,18年进入阿里一直到现在。
深知大多数Linux运维工程师,想要提升技能,往往是自己摸索成长或者是报班学习,但对于培训机构动则几千的学费,着实压力不小。自己不成体系的自学效果低效又漫长,而且极易碰到天花板技术停滞不前!
因此收集整理了一份《2024年Linux运维全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友,同时减轻大家的负担。
既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,基本涵盖了95%以上Linux运维知识点,真正体系化!
由于文件比较大,这里只是将部分目录大纲截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且后续会持续更新
如果你觉得这些内容对你有帮助,可以添加VX:vip1024b (备注Linux运维获取)
为了做好运维面试路上的助攻手,特整理了上百道 【运维技术栈面试题集锦】 ,让你面试不慌心不跳,高薪offer怀里抱!
这次整理的面试题,小到shell、MySQL,大到K8s等云原生技术栈,不仅适合运维新人入行面试需要,还适用于想提升进阶跳槽加薪的运维朋友。
本份面试集锦涵盖了
- 174 道运维工程师面试题
- 128道k8s面试题
- 108道shell脚本面试题
- 200道Linux面试题
- 51道docker面试题
- 35道Jenkis面试题
- 78道MongoDB面试题
- 17道ansible面试题
- 60道dubbo面试题
- 53道kafka面试
- 18道mysql面试题
- 40道nginx面试题
- 77道redis面试题
- 28道zookeeper
总计 1000+ 道面试题, 内容 又全含金量又高
- 174道运维工程师面试题
1、什么是运维?
2、在工作中,运维人员经常需要跟运营人员打交道,请问运营人员是做什么工作的?
3、现在给你三百台服务器,你怎么对他们进行管理?
4、简述raid0 raid1raid5二种工作模式的工作原理及特点
5、LVS、Nginx、HAproxy有什么区别?工作中你怎么选择?
6、Squid、Varinsh和Nginx有什么区别,工作中你怎么选择?
7、Tomcat和Resin有什么区别,工作中你怎么选择?
8、什么是中间件?什么是jdk?
9、讲述一下Tomcat8005、8009、8080三个端口的含义?
10、什么叫CDN?
11、什么叫网站灰度发布?
12、简述DNS进行域名解析的过程?
13、RabbitMQ是什么东西?
14、讲一下Keepalived的工作原理?
15、讲述一下LVS三种模式的工作过程?
16、mysql的innodb如何定位锁问题,mysql如何减少主从复制延迟?
17、如何重置mysql root密码?
一个人可以走的很快,但一群人才能走的更远。不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎扫码加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!
理?
15、讲述一下LVS三种模式的工作过程?
16、mysql的innodb如何定位锁问题,mysql如何减少主从复制延迟?
17、如何重置mysql root密码?
一个人可以走的很快,但一群人才能走的更远。不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎扫码加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!
[外链图片转存中…(img-1Bl4g3th-1712909109332)]