一、大数据概述:概念、发展历程、核心技术与生态圈、离线批处理的应用场景
各位同学好,我是你们这门课的老朋友。今天咱们正式开篇,聊聊大数据到底是个啥。
说实话,我入行那会儿,大数据还是个挺玄乎的词。老板一拍脑袋说“我们要搞大数据”,结果连服务器都没几台。现在不一样了,大数据已经成了基础设施。你想想看,没有大数据,抖音怎么给你推荐视频?淘宝怎么知道你想买啥?
好,咱们不扯远了,直接进入正题。
1.1 大数据的概念——到底多大才算大?
大数据,英文叫 Big Data。很多人以为数据量大就是大数据,其实没那么简单。
我个人习惯用四个V来定义它:
| 维度 | 英文 | 大白话解释 |
|---|---|---|
| 数据量 | Volume | 数据量大到单机存不下,得上集群 |
| 速度 | Velocity | 数据产生快,处理也得快 |
| 多样性 | Variety | 不只是表格,还有日志、图片、视频 |
| 价值密度 | Value | 数据多,但真正有用的可能就那么一丢丢 |
核心观点:大数据不是指数据量大,而是指用传统工具搞不定,必须上分布式方案的数据场景。
我在项目中遇到过不少同学,拿着几百万条数据就说要上Hadoop。其实没必要。几百万条数据,MySQL加个索引就搞定了。大数据真正的门槛,是数据量达到TB甚至PB级别。
1.2 发展历程——从单机到集群,我经历了什么
大数据的发展,说白了就是三个时代:
- 单机时代(2000年前后):一台服务器搞定一切。数据量大了?换更好的硬件。这叫“垂直扩展”。
- 分布式萌芽(2005-2010):Google发了三篇论文——GFS、MapReduce、BigTable。嗯,这三篇论文改变了世界。Hadoop就是照着它们抄出来的开源版。
- 生态爆发(2010至今):Spark、Flink、Kafka、Hive……各种工具像雨后春笋。现在你搞大数据,不是选一个工具,而是选一套组合拳。
我记得2012年那会儿,公司要处理每天几十亿条日志。单机MySQL直接跪了,老板急得跳脚。后来我们上了Hadoop集群,虽然配置起来很痛苦,但效果立竿见影。那时候我就意识到:大数据不是选择题,而是必答题。
个人建议:学大数据,别只盯着工具。理解分布式思想比学会用Hadoop重要一百倍。工具会过时,思想不会。
1.3 核心技术——离线批处理的看家本领
咱们这门课讲的是离线批处理。什么叫离线?说白了就是“不是实时的”。数据先攒着,等到半夜或者某个时间点,一次性处理完。
离线批处理的核心技术栈,我列个清单:
- 数据存储:HDFS(Hadoop分布式文件系统)——数据的大本营
- 数据计算:MapReduce(老牌)、Spark(主流)、Tez(Hive的加速器)
- 数据仓库:Hive(SQL on Hadoop)、Spark SQL
- 任务调度:Azkaban、Oozie、DolphinScheduler
- 数据采集:Sqoop(关系库到Hadoop)、Flume(日志采集)
你可能会问:这么多工具,我该先学哪个?
我的建议是:先死磕HDFS和Spark。HDFS是所有存储的基础,Spark是计算的主流。这两个搞明白了,其他工具都是锦上添花。
避坑指南:我曾经见过一个团队,上来就搞Flink实时流处理,结果数据源都不稳定,实时变“时实”。离线批处理虽然“慢”,但稳定可靠。先把离线搞扎实了,再碰实时。
1.4 生态圈——Hadoop不是全部
很多人一提到大数据,就想到Hadoop。其实Hadoop只是生态圈的一部分。我画个简单的分层图:
| 层级 | 代表组件 | 作用 |
|---|---|---|
| 数据源层 | MySQL、Kafka、日志文件 | 数据从哪里来 |
| 采集层 | Sqoop、Flume、Canal | 把数据搬到Hadoop |
| 存储层 | HDFS、HBase | 数据存哪里 |
| 计算层 | MapReduce、Spark、Flink | 数据怎么算 |
| 查询层 | Hive、Impala、Presto | 怎么查数据 |
| 调度层 | Azkaban、DolphinScheduler | 任务谁管 |
你看,Hadoop只是存储和计算的一部分。真正的生产环境,是这些组件组合在一起干活。
1.5 离线批处理的应用场景——哪些场景非它不可?
离线批处理听起来有点“土”,但它的应用场景非常广泛。我挑几个典型的说说:
- 日报/周报统计:比如电商平台每天凌晨算昨天的销售额、订单量。这种场景不需要实时,但要求数据准确。
- 用户画像构建:把用户过去一个月的行为数据汇总,打标签。这个计算量很大,离线跑最合适。
- 数据清洗与ETL:原始数据乱七八糟,得先清洗一遍。离线批处理可以慢慢洗,洗得干干净净。
- 机器学习特征工程:训练模型前,要准备大量特征数据。离线批处理是特征工程的主力军。
一句话总结:只要你的场景是“数据量大、对实时性要求不高、但要求结果准确”,离线批处理就是最佳选择。
好了,第一章的内容就到这里。咱们把大数据的轮廓勾勒清楚了。下一章,我会带大家动手搭建一个真正的Hadoop集群。到时候,咱们边搭边聊,你会发现:原来大数据也没那么神秘。
嗯,今天就到这儿。有问题随时交流。