【大数据】大数据概论与Hadoop

本文涉及的产品
云原生数据库 PolarDB MySQL 版,Serverless 5000PCU 100GB
简介: 【大数据】大数据概论与Hadoop

1.大数据概述

1.1.大数据的概念

大数据即字面意思,大量数据。那么这个数据量大到多少才算大数据喃?通常,当数据量达到TB乃至PB级别时,传统的关系型数据库在处理能力、存储效率或查询性能上可能会遇到瓶颈,这时考虑采用大数据技术是合理的。


当然可以通过分库分表等方式来让关系型数据库来强行抗住这个量级,所以数据量大外数据结构是不是够杂(结构化、半结构化、非结构化数据)也是要不要上大数据技术的重要考量点。


当然数据杂也可以通过关系型+非关系型数据库(如MySQL+MongoDB+ES)组合式的存储来分别存储,所以还要看要求对数据的使用上的诉求是什么?实时或近实时的分析处理(例如实时推荐系统、金融风控、物联网监控等),这些对数据的使用方式上需要对大量数据进行计算,而不再是关系型数据库中那种小批量的增删改查,这时候即使是用了组合式的存储来存放数据,要去各种存储上跑计算任务再汇总到一起,明显是很低效的,这时候上大数据技术就是十分合理的。


大数据场景中的数据往往具有4V的特点:


大量化:数据量大。

快速化:增长速度快。

多样化:数据类型多样,结构化、非结构化都有。

价值密度低:价值密度低,商业价值高。

1.2.大数据的应用场景

大数据的应用总结起来就是:决策、预测。


1.零售行业

个性化推荐:基于用户购物历史、浏览记录、社交媒体行为等数据,实现商品个性化推荐,提高转化率和用户满意度。

库存优化:通过分析销售数据、季节性趋势、供应链信息等,精准预测需求,减少库存积压,提升供应链效率。

价格策略:利用市场动态、竞品分析、消费者敏感度数据制定动态定价策略,提高竞争力和利润水平。

客户细分与营销:对客户数据进行聚类分析,识别不同消费群体特征,实施精细化营销策略。

2. 金融行业

风险评估与管理:运用大数据分析进行信用评分、欺诈检测、市场风险预测,提升信贷决策准确性,降低风险敞口。

交易监控与反洗钱:实时监测异常交易行为,运用机器学习算法识别潜在的洗钱活动,确保合规运营。

投资决策支持:结合宏观经济数据、公司财务报告、社交媒体情绪等多元数据源,辅助投资者进行量化投资分析和策略制定。

3. 教育行业

学生学习行为分析:通过分析在线学习平台数据,了解学生学习进度、难点、偏好,提供个性化教学建议和资源推荐。

教育资源优化:依据课程访问量、完成率、互动数据等,评估教学效果,优化课程设计与资源配置。

教育政策制定:利用大数据研究教育公平、教学质量、就业趋势等问题,为教育政策制定提供数据支持。

4. 医疗行业

疾病预测与预防:通过对电子病历、基因组数据、生活方式数据的分析,预测疾病风险,指导早期干预和预防措施。

精准医疗:基于个体基因、生理指标、环境因素等大数据,制定个性化治疗方案,提高疗效和患者生活质量。

医疗资源管理:利用大数据预测医疗需求,优化医院床位、设备、人力资源分配,提升医疗服务效率。

5. 市场营销与客户关系管理

市场趋势分析:通过分析社交媒体、搜索引擎、行业报告等数据,洞察市场动态、消费者偏好变化,指导产品开发和市场定位。

精准广告投放:基于用户画像、行为数据、地理位置等信息,实现广告的定向投放和效果优化。

客户满意度与忠诚度提升:利用客户反馈、社交媒体舆情、购买行为数据,识别影响满意度的关键因素,制定针对性的改进策略。

6. 其他行业与通用场景

智慧城市:集成交通、能源、环境、公共服务等多源数据,实现城市运行状态监测、资源调度优化、应急响应管理等。

工业制造:通过设备数据、生产流程数据的实时分析,实现预测性维护、质量控制、产能优化等智能制造应用。

社交媒体分析:挖掘用户社交网络行为、情感倾向、话题热度等数据,为企业品牌管理、舆情监控、产品推广提供决策支持。


1.3.大数据的关键技术

大数据技术,其实就是一套解决方案,是基于各种现实的业务场景的成功的解决方案的总结。


大数据技术可以看作对传统技术的延申,是由于大数据的量传统技术不是很好应付了才出现了大数据的解决方案。传统的单点扛不住,扩集群,集群也扛不住就可以考虑大数据,或者即使集群扛得住,但是数据类型太杂了需要也可以考虑大数据。所以大数据和传统技术只是AB两套方案罢了。


大数据的整个流程:


数据采集->数据存储与管理->数据处理与分析


3fc624e1a4794696a193c2a4c8ec07f3.png


其中最为核心的是:数据存储和数据分析,也就是:


数据的存储


数据的运算


1.数据存储


其实就是当数据量很小的时候,存在单台机器上,当单台机器扛不住的时候存在多台机器上。存在多台机器上就需要进行统一的管理,对外给出统一的API让操作者去操作整个集群中的数据,让操作者体感愉悦,感知上觉得面对的就是一台存储容量无限大的单点服务器。


统一的管理、统一的操作API,这两点合在一起,像不像个系统?是的,这就是大数据中的存储系统,分布式文件系统——HDFS。


2.数据的运算


花这么大代价用HDFS存储起来的数据肯定不是拿来看的,而是要用起来的,是要用于计算的。在大数据系统中由于其存储采用了分布式的架构,计算任务不再是单点的,而是分布式的,是要分发到集群中的各个存储节点上去的,由各个结点计算后汇总出最终的结果。很明显这种多节点间的协作计算是需要进行任务调度的,这就是分布式计算引擎需要干的活儿,经典的分布式计算引擎是HDFS中内置的——MapReduce。其主要就是负责计算任务的调度。


除此之外还有一个目前市面上常用的强力的计算引擎——spark。mapreduce是基于磁盘的计算,spark是基于内存的计算,两者之间互有优劣。


扩展功能


有HDFS+MapReduce其实大数据系统就已经可以工作了,但是每次对数据进行查询都要写mapreduce任务,作为一个分布式的处理程序,mapreduce的任务写起来还是要求一些专业的计算机背景的。为了能像SQL一样,方便的查询HDFS中的数据,从而将使用者从繁琐的mapreduce的编写中解放,出现了hive之类的分布式系统的结构化数据解决方案。


1.4.大数据的计算模式

计算模式,即大数据的数据的运算是什么类型的?根据不同的需求计算可以分为三种模式:


批处理


流计算


图计算


交互式计算


批处理:


批处理即数据准备好一批算一批,任务是在已经准备好的一批数据上进行计算的,并不是实时计算的,也无法达到秒级响应的。


代表技术:mapreduce、spark


流计算:


流计算即实时计算,数据过来就算,针对的就是每时每刻来的数据量大,需要给出实时响应的场景。


代表技术:storm、flume


图计算:


针对数据结构都是图结构的数据进行计算,如社交网络数据、地理信息数据。


交互式计算:


前面的几种计算都是预先准备好了计算任务,交互式计算的计算任务是随时自定义的,随时发命令给系统,系统针对命令给出计算响应。


1.5.大数据和云计算的关系

云计算即通过网络以服务的方式为用户提供非常廉价的IT资源。用户不用去自建设施,直接找云计算厂商购买服务即可。


云计算所能提供的服务分为三层:


SaaS,基础设施即服务,即将基础设施作为服务出租(计算资源和存储)。主要是面向用户的。


PaaS,平台即服务,在基础设施上包了一层,即将开发平台作为服务出租,用户只负责开发,剩下的部署、监控等一系列功能都交给平台去做。主要是面向开发者的。


IaaS,软件即服务,这个很好理解,就是直接提供运算的软件来用了。比如传统的金蝶财务软件是部署在本地的,放在云上提供服务后就变成了典型的IaaS。


经常听到“数据中心”就是厂商建立的物理服务器集群,专门用来提供云计算服务。


1.6.物联网

物联网无非就是采集终端采集数据然后通过网络上传到数据中心。其核心的问题在于:


识别


感知


识别,即识别哪些数据是哪个设备的。


感知,即数据采集。


2.Hadoop

2.1.核心架构

apache旗下顶级开源项目,是一个大数据生态圈,由多个组件组成。


Hadoop两大核心组件:


分布式文件系统HDFS,其实就是GFS的开源实现。


分布式计算引擎MapReduce。


整个生态圈的核心架构:

407fccf3e5074890b8d62133ebb55345.png



备注:MR就是map reduce


2.2.版本演进

首先要注意Hadoop有多个分支。apache相当于其中的主分支,很多大公司还有属于自己版本的hadoop,apache的Hadoop分为两个版本:

b2bd715621704329a989468002aa84d0.png



1.0和2.0的区别:


1.0的时候mapreduce纪要做计算工作还要自己去调度各个节点的资源来为计算工作服务。


2.0的时候将资源调度功能抽成了一个独立的框架yarn,mapreduce只负责计算工作。由于yarn来进行了资源调度,在其之上就可以接入很多不同的计算框架,将资源调度都给yarn,于是2.0版本开始衍生出了很多其它计算框架,如storm、spark等。


cd6d5108f8ae4ee09f5d06730bd72f3d.png


其次2.0的时候对HDFS,使用namenode的方式在高可用性上进行了增强。


疑问:yarn做了哪些调度?为什么要做调度?

2.3.生态圈的全量结构

整个hadoop项目,或者说生态圈的全量结构如下:

相关实践学习
基于MaxCompute的热门话题分析
本实验围绕社交用户发布的文章做了详尽的分析,通过分析能得到用户群体年龄分布,性别分布,地理位置分布,以及热门话题的热度。
SaaS 模式云数据仓库必修课
本课程由阿里云开发者社区和阿里云大数据团队共同出品,是SaaS模式云原生数据仓库领导者MaxCompute核心课程。本课程由阿里云资深产品和技术专家们从概念到方法,从场景到实践,体系化的将阿里巴巴飞天大数据平台10多年的经过验证的方法与实践深入浅出的讲给开发者们。帮助大数据开发者快速了解并掌握SaaS模式的云原生的数据仓库,助力开发者学习了解先进的技术栈,并能在实际业务中敏捷的进行大数据分析,赋能企业业务。 通过本课程可以了解SaaS模式云原生数据仓库领导者MaxCompute核心功能及典型适用场景,可应用MaxCompute实现数仓搭建,快速进行大数据分析。适合大数据工程师、大数据分析师 大量数据需要处理、存储和管理,需要搭建数据仓库?学它! 没有足够人员和经验来运维大数据平台,不想自建IDC买机器,需要免运维的大数据平台?会SQL就等于会大数据?学它! 想知道大数据用得对不对,想用更少的钱得到持续演进的数仓能力?获得极致弹性的计算资源和更好的性能,以及持续保护数据安全的生产环境?学它! 想要获得灵活的分析能力,快速洞察数据规律特征?想要兼得数据湖的灵活性与数据仓库的成长性?学它! 出品人:阿里云大数据产品及研发团队专家 产品 MaxCompute 官网 https://www.aliyun.com/product/odps 
目录
相关文章
|
5天前
|
分布式计算 Hadoop 分布式数据库
Hadoop生态系统介绍(二)大数据技术Hadoop入门理论系列之一----hadoop生态圈介绍
Hadoop生态系统介绍(二)大数据技术Hadoop入门理论系列之一----hadoop生态圈介绍
20 2
|
21小时前
|
分布式计算 资源调度 Hadoop
大数据Hadoop集群部署与调优讨论
大数据Hadoop集群部署与调优讨论
|
1天前
|
存储 分布式计算 Hadoop
Hadoop是如何支持大数据处理的?
【6月更文挑战第17天】Hadoop是如何支持大数据处理的?
11 1
|
1天前
|
存储 分布式计算 Hadoop
Spark和Hadoop都是大数据处理领域的重要工具
【6月更文挑战第17天】Spark和Hadoop都是大数据处理领域的重要工具
26 7
|
3天前
|
分布式计算 Hadoop 大数据
大数据技术:Hadoop与Spark的对比
【6月更文挑战第15天】**Hadoop与Spark对比摘要** Hadoop是分布式系统基础架构,擅长处理大规模批处理任务,依赖HDFS和MapReduce,具有高可靠性和生态多样性。Spark是快速数据处理引擎,侧重内存计算,提供多语言接口,支持机器学习和流处理,处理速度远超Hadoop,适合实时分析和交互式查询。两者在资源占用和生态系统上有差异,适用于不同应用场景。选择时需依据具体需求。
|
5天前
|
分布式计算 Hadoop 大数据
大数据--hadoop集群搭建
大数据--hadoop集群搭建
10 0
|
5天前
|
分布式计算 资源调度 监控
【大数据】Hadoop 2.X和1.X升级优化对比
【大数据】Hadoop 2.X和1.X升级优化对比
20 0
|
8天前
|
分布式计算 DataWorks NoSQL
MaxCompute产品使用合集之一张表如果想只保留近七天的数据,应该如何设置
MaxCompute作为一款全面的大数据处理平台,广泛应用于各类大数据分析、数据挖掘、BI及机器学习场景。掌握其核心功能、熟练操作流程、遵循最佳实践,可以帮助用户高效、安全地管理和利用海量数据。以下是一个关于MaxCompute产品使用的合集,涵盖了其核心功能、应用场景、操作流程以及最佳实践等内容。
|
9天前
|
数据采集 DataWorks 定位技术
DataWorks产品使用合集之开发环境执行离线同步不立即更新数据,是什么原因
DataWorks作为一站式的数据开发与治理平台,提供了从数据采集、清洗、开发、调度、服务化、质量监控到安全管理的全套解决方案,帮助企业构建高效、规范、安全的大数据处理体系。以下是对DataWorks产品使用合集的概述,涵盖数据处理的各个环节。
|
6天前
|
SQL 关系型数据库 MySQL
基于Hive的天气情况大数据分析系统(通过hive进行大数据分析将分析的数据通过sqoop导入到mysql,通过Django基于mysql的数据做可视化)
基于Hive的天气情况大数据分析系统(通过hive进行大数据分析将分析的数据通过sqoop导入到mysql,通过Django基于mysql的数据做可视化)