论大数据服务化发展史

news2025/1/10 21:11:48

引言

一直想写一篇服务化相关的文章,那就别犹豫了现在就开始吧

正文

作为大数据基础架构工程师,业界也笑称“运维Boy”,日常工作就是在各个机器上部署以及维护服务,例如部署Hadoop、Kafka、Pulsar这些等等,用于给公司业务提供数据导入、存储、分析服务。这些事情在经历了十多年已经演变出以下几个阶段,今天就以唠嗑的形式进行展开说说
在这里插入图片描述

单一指令阶段

这是最原始的阶段,在机器/操作系统上的所有事情都要由大数据SRE通过一条条执行进行操作,举个简单的例子。当公司需要你新搭建数仓时,也就相当于要搭建以下三层

  • 存储层:搭建Hadoop、Hive、HBase集群等,这是用于将所有公司数据包括用户数据的存储
  • 导入层:搭建FlinkCDC、Flume、Kafka/Pulsar等数据导入服务,这是用于将数据导入到存储层
  • 分析层:搭建Doris、ClickHouse、Presto、SpringBoot等服务,这是用于将存储层的数据按照预期的想法进行计算出最终可直接用于分析的结果,例如庞大的公司昨天赚了多少钱?分别是各个城市赚了多少?相比上个月多了多少等等

换算到真正要做的事情,那大致流程就是,先申请机器(物理机或者云服务)、初始化环境例如搭建SSH等等,然后下载各个组件的安装包上传到对应的机器,针对对应的组件进行配置修改以及各个组件启动的前置动作,最后再根据具体的启动指令来挨个启动机器等等。如果机器只有几台,你不会觉得什么,但是如果有三四十台的时候,你会觉得手软以及抱怨。大致抱怨以下几点

  • 工作量大:要靠人工登陆每台机器重复执行那么多的步骤
  • 容易出错:这类动作重复多次容易出现人工操作失误导致影响
  • 体验差:这类事情做多了对于SRE来说是煎熬,并不会有太多技术上的成长,最后沦为只会执行这几个指令的“工具人”

脚本化阶段

人类历史发展本质上就是对资源的利用,为了更合理的利用资源因此衍生出了各种革命,例如第一次工业革命通过蒸汽替代人力,第二次工业革命通过各种能源燃料更大幅代替人力,第三次也就是最近几十年的互联网革命,本质上也是省资源避免大量的重复劳动。

上面这段话想表达的是, 互联网行业可以说90%以上的重复劳动都是没啥意义的,就相当于在一辆豪华的汽车🚗内是有人在里面蹬三轮,这不是很滑稽吗。因此如果你发现自己的工作中还存在大量 单一指令阶段的事情,那么务必要想办法进行脚本化。脚本本质上就是一本操作指南,给“操作系统”看的,举个例子如果你是一个果园园主,你雇了30个人进行水果采摘,你肯定不会去给每一个人讲解如何识别水果、水果具体的采摘的流程是怎么样子的,要用手托住果子在用剪刀轻轻减哪个部位之类的话。因为这样不仅耽误大量你的时间,并且每年水果成熟时你都要重复一遍,因此更高效的方式是花上一天时间写一本“水果采摘指南”,后续的每一个采摘的人直接看下指南即可知道该怎么做,这个指南就是脚本。

那么工作中也是一样,可以将下载组件包、解压包、更改配置、服务启动/重启等操作直接封装成脚本,然后将可能会变的东西作为参数传进来,这样的话无论是针对多少台机器进行操作,你只需要在这些机器上执行一下脚本即可。在这个基础上还能做二次优化,就是在所有机器配置SSH后,你只需要在执行脚本时传入要做变更机器的标识例如IP,执行的机器就会自动将这些“逻辑”分发到各个机器上进行执行,这样的操作方式是不是更加舒服?或者说这是不是才是一个相对成熟的流程?

那么此时大家觉得这个流程是否还存在问题?可以思考🤔一会再继续往下看。其实也很简单,就是对开发人员的专业能力是比较高的,换成是上面的例子来解释就是,果园园主不想花时间去学习写“水果采摘指南”,或者说所有果园园主单独写指南从上帝视角看本质上就是资源的浪费,要怎么解决这个问题呢。也不复杂,直接让上帝提供几份“水果采摘指南”,各个果园园主只需要选择适合自己的直接用岂不美哉?那么就引出了用户界面操作阶段

用户界面操作阶段

在读这篇文章的你相信对网站操作也不陌生了,例如咱们不需要知道网络底层是怎么操作,代码是怎么编写的,就能完成多人跨网络、跨时空的沟通,这些本质上要归功于用户界面操作阶段, 因为这些东西已经包装成了几个按钮。大数据SRE的工作内容其实也是可以作成几个按钮来大幅提升效率的,例如要在某些服务上搭建数仓,那么只需要在Web页面上勾选要部署服务的机器标识例如IP,然后选择想要安装的服务,然后点击确定即可完成安装,然后安装完后在Web页面就有这个服务的专门管理页面,例如服务启动、配置更改、使用情况监控等等,是不是一下子觉得高级了起来?

更重要的是,你发现甚至你都不用掌握过多的SRE的知识也能完成这份工作?并且即便后续在更大的场景例如要在几百台、几千台机器进行部署维护你也不怕了?这就是互联网的魅力,所以说互联网革命也是人类历史上对资源利用的一大进步,如果咱们深处互联网时代,甚至从事互联网工作,而不具备互联网思维,那岂不是一种倒退吗或者形象点就是一个远古人生活在21世纪还在钻木取火,这就挺奇怪的。

在这个阶段是否还有能改进的地方,接下来是我的设想或者是YY时间也就是 大模型+AIOPS阶段

大模型+AIOPS阶段

最近几年随着大模型的爆发,有不少企业以及个人已经用它来提升和改进自己的工作效率。那么以后是否还有这样的一种模式,就是我们只要跟机器人,或者说是一位“虚拟同事”发送 给我搭建一套数仓指令是否就可以了?它会自动接续这条自然语言的语意,咱们进行各个流程的操作,在一些关键流程我们人类只需要进行审批确认没问题即可,剩下的事情交给机器去做就够了。

在这个基础上,运维人员也不用天天盯着监控告警了,我们可以将历史发生过的事故数据以及专业知识喂人工智能,并训练它针对具体事情该做出怎样的决策,举个简单的例子比如某台机器的CPU过高,那么自动排查问题并进行修复,最后再将排查的结果以及修复的流程发给人类即可,这岂不美哉?而人类过多的做这些事情本质上还是一种资源的浪费,因为存在过多过多重复劳动、过多没有太多价值的事情,如果一个人的一辈子都在做这种事情,那本质上我们还是几万年前那个吭哧吭哧钻木头🪵的原始人,一切的一切都从来没有变过。

总结

以上是我对大数据服务化粗糙的认知,输出出来是希望能引发一些思考🤔,当然写的过程中也引发了我自己的不少思考。这个过程中虽然存在一点批判,但绝不是针对具体的个人,而是针对目前常见的一些流程设计,单纯觉得有些设计可以变得更“美”一些。如果对服务化感兴趣的伙伴可以去针对性的学习专业的知识来改善工作内容,本篇文章仅仅是唠嗑,存在很多瑕疵,但我始终相信,多人沟通讨论可以构建设计一个更加完美的设计,因此如果能引发其他人的共鸣或者不同想法💡其实都是好事。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1570644.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

使用python将作图并将局部放大

此程序主要特点: 1、使用python画实验结果图 2、想要对大图的局部进行放大 3、有两个子图 4、子图和原图的横坐标都使用标签而不是原始的数据 代码和注释如下: import pandas as pd import numpy as np import matplotlib.pyplot as plt import ope…

BCLinux-for-Euler配置本地yum源

稍微吐槽一句…… 在这片土地上,国产化软件的大潮正在滚滚而来,虽然都不是真正意义上的国产化,但是至少壳是国产的~~~ 之前使用的Centos7的系统,现在都要求统一换成BCLinux-for-Euler。说实话换了之后不太适应,好多用习…

COCO格式转YOLO格式训练

之前就转换过好几次,每次换设备训练,由于压缩包太大,u盘不够用。每次都要找教程从网上再下载一遍。因此这里记录一下,以免下次重新找教程。 在coco数据集中,coco2017train或coco2017val数据集中标注的目标(类别)位置在…

Spring 详细总结

文章目录 第一章 IOC容器第一节 Spring简介1、一家公司2、Spring旗下的众多项目3、Spring Framework①Spring Framework优良特性②Spring Framework五大功能模块 第二节 IOC容器概念1、普通容器①生活中的普通容器②程序中的普通容器 2、复杂容器①生活中的复杂容器②程序中的复…

传输层 --- UDP

目录 1. 传输层是什么呢? 2. 再谈端口号 2.1. 端口号是什么 2.2. 协议号是什么 2.3. 认识知名端口号 2.4. 端口号的相关问题 2.4.1. 一个进程可以绑定多个端口号吗? 2.4.2. 一个端口号可以被多个进程绑定吗? 2.4.3. 为什么不使用P…

数据结构进阶篇 之 【并归排序】(递归与非递归实现)详细讲解

都说贪小便宜吃大亏,但吃亏是福,那不就是贪小便宜吃大福了吗 一、并归排序 MergeSort 1.基本思想 2.实现原理 3.代码实现 4.归并排序的特性总结 二、非递归并归排序实现 三、完结撒❀ –❀–❀–❀–❀–❀–❀–❀–❀–❀–❀–❀–❀–❀–❀…

如何使用单片机 pwm 控制 mos 管?

目录 选择适合的硬件 连接电路 编写代码 参考示例 程序一 程序二 测试与调试 注意事项 使用单片机(如常见的Arduino、STM32等)通过PWM(脉冲宽度调制)控制MOS管(金属氧化物半导体场效应管)是一种常见…

Java中的集合(二)

一、回顾上期 上一篇讲到在Java中,集合和容器是非常重要的概念,用于存储和操作数据。在集合中,有单列集合和双列集合两种类型。我们在上一篇将单列集合中的list类讲完了,这一篇将会将集合中剩余部分介绍完,话不多说&am…

备战蓝桥杯---刷二分与前缀和题

刷点题~ 1.二分多路归并算法 对于每一个技能,我们把它看成一个等差数列,我们把所有可能都放到一个集合里,排个序,取前m个大即可,现在考虑优化,假如m不是很大,我们直接用优先队列即可&#xff0…

单细胞RNA测序(scRNA-seq)SRA数据下载及fastq-dumq数据拆分

单细胞RNA测序(scRNA-seq)入门可查看以下文章: 单细胞RNA测序(scRNA-seq)工作流程入门 单细胞RNA测序(scRNA-seq)细胞分离与扩增 1. NCBI查询scRNA-seq SRA数据 NCBI地址: https…

继承.Java

目录 1,概述 1.1继承的含义 1.2什么时候用继承 1.3继承的好处 1.4继承的特点 2,继承的格式 3,可以继承哪些内容 4,成员方法和成员变量的访问特点 5,构造方法的访问特点 6,this,super…

windows版本-idea中下载的java版本在哪

1、点击idea的file-projectStructure 进入: 通过电脑目录进入该目录 找到bin目录,copy该目录地址 copy下来之后设置到系统环境变量中

C#项目引用解决方案中其他项目dll时,出现黄色感叹号的解决方案

问题引入 今天拿着老师傅的老项目,需要做通讯调试,说测试一下,便添加了一个项目A来编写结构体,然后在窗体程序项目B中引用A,发现B一引用A,在B项目的引用下面A就多了个黄色感叹号,一编译B项目&am…

瑞_Redis_商户查询缓存

文章目录 项目介绍1 短信登录2 商户查询缓存2.1 什么是缓存2.1.1 缓存的应用场景2.1.2 为什么要使用缓存2.1.3 Web应用中缓存的作用2.1.4 Web应用中缓存的成本 2.2 添加Redis缓存2.2.1 背景2.2.2 缓存模型和思路2.2.3 代码实现2.2.4 测试附:IDEA控制台输出自动换行设…

色域(BT2020/BT709/sRGB/DCI-P3/Rec.709/NTSC)

什么是色域 色域是对一种颜色进行编码的方法,也指一个技术系统能够产生的颜色的总和。在计算机图形处理中,色域是颜色的某个完全的子集。一般来说,高端投影仪和电视都会强调色域范围和对比度,而不是唯亮度标准论。 自然界可见光…

面试算法-139-盛最多水的容器

题目 给定一个长度为 n 的整数数组 height 。有 n 条垂线,第 i 条线的两个端点是 (i, 0) 和 (i, height[i]) 。 找出其中的两条线,使得它们与 x 轴共同构成的容器可以容纳最多的水。 返回容器可以储存的最大水量。 说明:你不能倾斜容器。…

Sybase ASE中的char(N)的坑以及与PostgreSQL的对比

1背景 昨天,一朋友向我咨询Sybase ASE中定长字符串类型的行为,说他们的客户反映,同样的char类型的数据,通过jdbc来查,Sybase库不会带空格,而PostgreSQL会带。是不是这样的?他是PostgreSQL的专业大拿,但因为他手头没有现成的Sybase ASE环境,刚好我手上有,便于一试。 …

(学习日记)2024.04.01:UCOSIII第二十九节:消息队列实验(待续)

写在前面: 由于时间的不足与学习的碎片化,写博客变得有些奢侈。 但是对于记录学习(忘了以后能快速复习)的渴望一天天变得强烈。 既然如此 不如以天为单位,以时间为顺序,仅仅将博客当做一个知识学习的目录&a…

LearnOpenGL_part1

创建窗口 - LearnOpenGL CN (learnopengl-cn.github.io) 最原始的黑框框&#xff1a; #include <glad/glad.h> #include <GLFW/glfw3.h> #include <iostream> int main() {glfwInit();//初始化GLFWglfwWindowHint(GLFW_CONTEXT_VERSION_MAJOR, 3);//配置G…

亚马逊AWS永久免费数据库

Amazon DynamoDB 是一项无服务器的 NoSQL 数据库服务&#xff0c;您可以通过它来开发任何规模的现代应用程序。作为无服务器数据库&#xff0c;您只需按使用量为其付费&#xff0c;DynamoDB 可以扩展到零&#xff0c;没有冷启动&#xff0c;没有版本升级&#xff0c;没有维护窗…