搜索
查看
编辑修改
首页
UNITY
NODEJS
PYTHON
AI
GIT
PHP
GO
CEF3
JAVA
HTML
CSS
搜索
笔触狂放9
这个屌丝很懒,什么也没留下!
关注作者
热门标签
jquery
HTML
CSS
PHP
ASP
PYTHON
GO
AI
C
C++
C#
PHOTOSHOP
UNITY
iOS
android
vue
xml
爬虫
SEO
LINUX
WINDOWS
JAVA
MFC
CEF3
CAD
NODEJS
GIT
Pyppeteer
article
热门文章
1
Massa 的自主智能合约:用例
2
Conda的正确换源方法(清华源)_conda更换清华源
3
Proximal Policy Optimization(近端策略优化)(PPO)原理详解
4
【Python】 如何在Python中设置环境变量?_python os 设置环境变量
5
Fastjson1.2.24反序列化导致任意命令执行(CVE-2017-18349)_fastjson反弹shell
6
【Docker学习记录】
7
powershall 闪退_powershell闪退
8
VSCode对C++的DEBUG调试配置_vscode c++ debug
9
linux(centos)之useradd命令_centos adduser
10
5 mysql 查询语句
当前位置:
article
> 正文
大数据技术基础(一)
作者:笔触狂放9 | 2024-08-11 05:44:08
赞
踩
大数据技术基础
每个软件工程师都应该懂
大数据
技术
软件编程技术出现已经半个多世纪了,
核心价值就是把现实世界的业务操作搬到计算机上,通过计算机软件和网络进行业务和数据处理
。
我们常见的软件系统,不管是电子商务还是库存管理,不管是搜索引擎还是收银终端,都是如此。这一点价值巨大,可以成百上千倍地提高我们的生活和工作效率。
要想让计算机软件包括互联网应用,能够继续提高我们的生活工作效率,那就
必须能够发掘出用户自己都没有发现的需求,必须洞悉用户自己都不了解的自己
。
计算机软件不能再像以前那样,等用户输入操作,然后根据编写好的逻辑执行用户的操作,而是应该能够
预测用户的期望
,在你还没想好要做什么的情况下,主动提供操作建议和选项,提醒你应该做什么。
在未来,软件开发将是“面向 AI 编程”,软件的核心业务逻辑和价值将围绕机器学习的结果也就是 AI 展开,软件工程师的工作就是考虑如何将机器学习的结果更好地呈现出来,如何更好地实现人和 AI 的交互。
如果未来是面向 AI 编程的,希望软件工程师不要把 AI 当作什么万能的东西。即使自己不做大数据与机器学习相关的开发,每个程序员也应该懂大数据和机器学习。
将来,
数据会越来越成为公司的核心资产和主要竞争力
,公司的业务展开和产品进化也越来越朝着如何利用好数据价值的方向发展。不懂大数据和机器学习,可能连最基本的产品逻辑和商业意图都搞不清楚。如果只懂编程,工程师的生存空间会越来越窄,发展也会处处受限。
大数据技术发展史:大数据的前世今生
今天我们常说的大数据技术,其实起源于 Google 在 2004 年前后发表的三篇论文,也就是我们经常听到的“三驾马车”,分别是
分布式文件系统 GFS
、
大数据分布式计算框架 MapReduce
和
NoSQL 数据库系统 BigTable
。
搜索引擎主要就做两件事情,一个是网页抓取,一个是索引构建,而在这个过程中,有大量的数据需要存储和计算。这“三驾马车”其实就是用来解决这个问题的。
当时的天才程序员,也是 Lucene 开源项目的创始人 Doug Cutting 正在开发开源搜索引擎 Nutch,他根据论文原理初步实现了类似 GFS 和 MapReduce 的功能。
2006 年,Doug Cutting 将这些大数据相关的功能从 Nutch 中分离了出来,然后启动了一个独立的项目专门开发维护大数据技术,这就是后来赫赫有名的 Hadoop,主要包括 Hadoop 分布式文件系统 HDFS 和大数据计算引擎 MapReduce。
2008 年,Hadoop 正式成为 Apache 的顶级项目,后来 Doug Cutting 本人也成为了 Apache 基金会的主席。自此,Hadoop 作为软件开发领域的一颗明星冉冉升起。
Yahoo 开发了 Pig,Pig 是一种脚本语言,使用类 SQL 的语法,开发者可以用 Pig 脚本描述要对大数据集上进行的操作,Pig 经过编译后会生成 MapReduce 程序,然后在 Hadoop 上运行。
编写 Pig 脚本虽然比直接 MapReduce 编程容易,但是依然需要学习新的脚本语法。于是Facebook 又发布了 Hive。
Hive 支持使用 SQL 语法来进行大数据计算,把 SQL 语句转化成 MapReduce 的计算程序。
随后,众多 Hadoop 周边产品开始出现,大数据生态体系逐渐形成,其中包括:专门将关系数据库中的数据导入导出到 Hadoop 平台的 Sqoop;针对大规模日志进行分布式收集、聚合和传输的 Flume;MapReduce 工作流调度引擎 Oozie 等。
在 Hadoop 早期,MapReduce 既是一个执行引擎,又是一个资源调度框架,服务器集群的资源调度管理由 MapReduce 自己完成。
这样不利于资源复用,也使得 MapReduce 非常臃肿。于是一个新项目启动了,将 MapReduce 执行引擎和资源调度分离开来,这就是 Yarn。
2012 年,Yarn 成为一个独立的项目开始运营,随后被各类大数据产品支持,成为大数据平台上最主流的资源调度系统。
同样是在 2012 年,UC 伯克利 AMP 实验室开发的 Spark 开始崭露头角。
当时 AMP 实验室的马铁博士发现使用 MapReduce 进行机器学习计算的时候性能非常差,因为机器学习算法通常需要进行很多次的迭代计算,而 MapReduce 每执行一次 Map 和 Reduce 计算都需要重新启动一次作业,带来大量的无谓消耗。
MapReduce 主要使用磁盘作为存储介质,而 2012 年的时候,内存已经突破容量和成本限制,成为数据运行过程中主要的存储介质。
Spark 一经推出,立即受到业界的追捧,并逐步替代 MapReduce 在企业应用中的地位。
一般说来,像 MapReduce、Spark 这类计算框架处理的业务场景都被称作批处理计算
,因为它们通常针对
以“天”为单位产生的数据进行一次计算
,然后得到需要的结果,这中间计算需要花费的时间大概是几十分钟甚至更长的时间。因为计算的数据是
非在线得到的实时数据
,而是
历史数据
,所以这类计算也被称为
大数据离线计算
。
在大数据领域,还有另外一类应用场景,它们需要对实时产生的大量数据进行即时计算,比如对于遍布城市的监控摄像头进行人脸识别和嫌犯追踪。这类计算称为大数据流计算,相应地,有 Storm、Flink、Spark Streaming 等流计算框架来满足此类大数据应用的场景。
流式计算要处理的数据是实时在线产生的数据,所以这类计算也被称为大数据实时计算。
在典型的大数据的业务场景下,数据业务最通用的做法是,采用批处理的技术处理历史全量数据,采用流式计算处理实时新增数据。而像 Flink 这样的计算引擎,可以同时支持流式计算和批处理计算。
除了大数据批处理和流处理,NoSQL 系统处理的主要也是大规模海量数据的存储与访问,所以也被归为大数据技术。 NoSQL 曾经在 2011 年左右非常火爆,涌现出 HBase、Cassandra 等许多优秀的产品,其中 HBase 是从 Hadoop 中分离出来的、基于 HDFS 的 NoSQL 系统。
大数据处理的主要应用场景包括数据分析、数据挖掘与机器学习。
数据分析主要使用 Hive、Spark SQL 等 SQL 引擎完成;
数据挖掘与机器学习则有专门的机器学习框架 TensorFlow、Mahout 以及 MLlib 等,内置了主要的机器学习和数据挖掘算法。
此外,大数据要存入分布式文件系统(HDFS),要有序调度 MapReduce 和 Spark 作业执行,并能把执行结果写入到各个应用系统的数据库中,还需要有一个大数据平台整合所有这些大数据组件和企业应用系统。
大数据应用发展史:从搜索引擎到人工智能
作为全球最大的搜索引擎公司,Google 也是我们公认的大数据鼻祖。
它存储着全世界几乎所有可访问的网页,数目可能超过万亿规模,全部存储起来大约需要数万块磁盘。
为了将这些文件存储起来,Google 开发了 GFS(Google 文件系统),将数千台服务器上的数万块磁盘统一管理起来,然后当作一个文件系统,统一存储所有这些网页文件。
Google 得到这些网页文件是要构建搜索引擎,需要对所有文件中的单词进行词频统计,然后根据 PageRank 算法计算网页排名。这中间,Google 需要对这数万块磁盘上的文件进行计算处理。当然,也正是基于这些需求,Google 又开发了 MapReduce 大数据计算框架。
Hive 可以在 Hadoop 上进行 SQL 操作,实现数据统计与分析。
曾经我们在进行数据分析与统计时,仅仅局限于数据库,在数据库的计算环境中对数据库中的数据表进行统计分析。
并且受数据量和计算能力的限制,我们只能对最重要的数据进行统计和分析。
这里所谓最重要的数据,通常指的都是给老板看的数据和财务相关的数据。
使用 Hive,我们可以用更低廉的价格获得比以往多得多的数据存储与计算能力。
我们可以把运行日志、应用采集数据、数据库数据放到一起进行计算分析,获得以前无法得到的数据结果,企业的数据仓库也随之呈指数级膨胀。
不仅是老板,公司中每个普通员工比如产品经理、运营人员、工程师,只要有数据访问权限,都可以提出分析需求,从大数据仓库中获得自己想要了解的数据分析结果。
数据中蕴藏着规律,这个规律是所有数据都遵循的,过去发生的事情遵循这个规律,将来要发生的事情也遵循这个规律。一旦找到了这个规律,对于正在发生的事情,就可以按照这个规律进行预测。
在过去,我们受数据采集、存储、计算能力的限制,只能通过抽样的方式获取小部分数据,无法得到完整的、全局的、细节的规律。
而现在有了大数据,可以把全部的历史数据都收集起来,统计其规律,进而预测正在发生的事情。这就是机器学习。
将人类活动产生的数据,通过机器学习得到统计规律,进而可以模拟人的行为,使机器表现出人类特有的智能,这就是人工智能 AI。
声明:
本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:
https://www.wpsshop.cn/w/笔触狂放9/article/detail/962580
推荐阅读
article
有人想让我讲讲
应用
性能
管理
(
APM
)
工具
_
apm
工具
...
本文详细阐述了
APM
工具
在监控、诊断和优化
应用
程序
性能
中的作用,介绍了其技术原理、功能特点,通过实际案例展示了
APM
在流...
赞
踩
article
数据仓库
之
事实
表
和维度
表
_
数据仓库
事实
表
和维
表
例子...
直接上例子吧1
事实
表
一个销售
表
有四列 用户 商品 数量 时间,记录着 “用户” 在某个 “时间” 购买了 “多少” “...
赞
踩
article
永久
关闭
手机
selinux
_手机
关闭
selinux
...
aboox -x boot.img修改boot.cfg插入androidboot.
selinux
=permissive不...
赞
踩
article
(QT-UI)三、
设置
窗
口
为
无边框
悬浮
窗
_
qt
浮动
窗
口
设置
悬浮
...
如果想要同时
设置
其他Flag属性,需要加上s,即调用setWindowFlags,然后里面的属性按照“|”分格。2、将
窗
...
赞
踩
article
[保姆级教程]
uniapp
自定义
导航
栏
_
uniapp
自定义
顶部
导航
栏
...
在你的页面.vue文件中,使用或标签在页面
顶部
添加
自定义
的
导航
栏
视图。这可以包括标题文本、返回按钮、搜索框等。
_
unia...
赞
踩
article
一句话或一张图
讲清楚
系列之——
IDELAYE2
的
用法_
idelaye2
使用
...
本文详细介绍了Xilinx
IDELAYE2
的
功能、
使用
方法,包括其在FPGA中
的
应用、系统框图、引脚说明、属性设置以及不...
赞
踩
article
【
Prometheus
】
Python
Exporter
接入
Prometheus
实战_
python
p...
Prometheus
是一个监控告警工具。监控可以简单理解为一个指标数据收集器,在运维体系中,常用来收集服务器节点状态,容...
赞
踩
article
Android7.1
Selinux
使用
_
手机
selinux
在哪...
讲
Selinux
的原理的文章太多了,讲实际使用也是有一些,但是都不够完整,这里举一个在
Android7.1
下的服务的例子...
赞
踩
article
stable
diffusion
如何给
线稿
上色
_
stable
diffusion
线稿
上色
...
AIGC技术的未来发展前景广阔,随着人工智能技术的不断发展,AIGC技术也将不断提高。未来,AIGC技术将在游戏和计算领...
赞
踩
article
LLM
-项目详解-
Chinese
-
LLaMA
-
AIpaca
(二):代码解读【①
prompt
指令
制作、...
本文详细介绍了
Chinese
LLaMA
模型
的整合过程,包括
prompt
指令
的制作、
分词器
合并
、LoRA
模型
与基础
模型
的...
赞
踩
article
图片
无损
放大
怎么
做?学会这一招就够了
_
无损
扩大
...
图片
无损
放大
怎么
做?有时候我们遇到需要用的
图片
,但因为尺寸太小无法使用,直接将其
放大
又会变得模糊不清,最后就不得已只能放...
赞
踩
article
android
adb
调试
驱动
,
安卓
手机
上的调试工具
adb
驱动
要怎么
安装
手机
安装
adb
驱动
怎么做...
当
安卓
手机
连接电脑设备的时候需要
安装
一个
驱动
程序,也就是今天要说的
adb
驱动
。这也是刷机必备的一个步骤,当然了如果您的电...
赞
踩
article
stable
diffusion
的
GPU
不足怎么解决_
stable
diffusion
显存
不够...
例如,可以使用近似算法或者采样技术来减少计算量,或者使用稀疏矩阵等数据结构来减少内存占用。4. 使用更高性能
的
GPU
:如...
赞
踩
article
彻底
抛弃
Navicat
?阿里刚推出
了
Chat2DB
...
AI时代已经来
了
,很多公司都在基于AI做各种各样的应用,其中针对提升开发者效率的工具也有很多。最近,阿里刚刚推出
了
一款集...
赞
踩
article
Hive
常用
函数
大全_
hive
除法
...
Hive
常用
函数
大全_
hive
除法
hive
除法
目录 第1章 算数运算 1.1 加法...
赞
踩
article
Redis
(十一)
SpringBoot
整合
Redis
| 在
SpringBoot
中如何
使用
Redi...
在
SpringBoot
中整合
redis
并
使用
_
spring
redis
执行
自定义
指令
spring
redis
执行自定...
赞
踩
article
一篇文章带你快速入门DP
动态
规划
——
C++
_
左上
到右下
多少
种方案
dp
c++
...
例一题目描述:给定m行n列的网格,有一个机器人从
左上
角(0,0)出发,每一步可以向下或者向右走一步,问有
多少
种不同的方式...
赞
踩
article
Qt实现
浮动
窗口
_
qt
浮动
窗口
...
提要在
窗口
上悬浮鼠标,此时
窗口
标题栏显示,
窗口
变大,鼠标移开后,
窗口
恢复原来的大小,标题栏隐藏。示例直接上代码,只包含只...
赞
踩
article
github
弃用
RSA
密钥_you're
using
an
rsa
key
with
sha-1, ...
git
rsa
密钥摒弃_you're
using
an
rsa
key
with
sha-1,
which
is no ...
赞
踩
article
Django
REST
Framework
教程(
10
):
限流
(
throttle
)详解与示例...
本文介绍了
Django
REST
Framework
中如何进行API请求
限流
,包括AnonRateThrottle、Us...
赞
踩
相关标签
人工智能
数据仓库
qt
ui
开发语言
uni-app
fpga开发
python
prometheus
stable diffusion
计算机视觉
图像处理
AI作画
llama
经验分享
hive
hadoop
spring boot
redis
bootstrap