什么是大数据
- 指体积庞大的数据集合
- 随时间呈指数级增长
- 传统数据管理工具无法有效存储或处理
- 具有海量规模的数据
大数据类型
- 结构化数据:能够以固定格式存储、访问和处理的数据
- 非结构化数据:形式或结构未知的数据
- 半结构化数据:同时包含两种形式的数据
大数据特征
- 体量(Volume):数据规模庞大
- 多样性(Variety):数据来源和性质的异构性
- 速度(Velocity):数据生成速率
- 真实性(Veracity):待分析的内容质量
大数据处理优势
- 商业决策:可利用外部智能辅助决策
- 客户服务提升:改善服务质量
- 风险预警:早期识别产品/服务风险
- 运营效率:提高运营效能
Hadoop生态系统
- 数据存储
- HDFS:分布式文件系统
- HBase:列式数据库存储
- 数据处理
- MapReduce:集群计算框架
- YARN:集群资源管理系统
- 数据访问
- Hive:SQL查询引擎
- Pig:数据流处理
- Mahout:机器学习库
- Avro:远程过程调用
- Sqoop:数据迁移工具
- 数据管理
- Oozie:工作流调度
- Chukwa:系统监控
- ZooKeeper:协调服务
HBase
- 开源非关系型分布式数据库
- NoSQL数据库类型
- 支持所有数据类型
- 可处理Hadoop生态系统内的任何数据
- 运行于HDFS之上,提供类BigTable功能
- 使用Java编写,支持REST/Avro/Thrift API
Hive
- 构建于Hadoop之上
- 管理大规模分布式数据集
- 核心功能:
- 提供ETL(抽取/转换/加载)工具
- 存储、查询和分析HDFS/HBase数据
- 将SQL转换为MapReduce任务进行海量数据分析
- 特有查询语言HQL(类SQL语法)
- 支持SQL用户直接查询
- 允许开发者自定义MapReduce处理复杂分析
- 局限性:
- 不完全支持事务
- 无法修改表数据(更新/删除/插入)
- 查询延迟较高
Hadoop
- 采用分布式存储处理海量信息
- 数据分片存储于多个独立节点
- HDFS专为大规模数据集设计的文件系统
- 核心特性:
- 低成本
- 高扩展性
- 灵活性
- 高速处理
- 容错机制
- 高吞吐量
- 最小化网络流量
Storm
- 开源分布式实时计算系统
- 简化流式数据的可靠处理
- 高性能(单节点每秒百万级处理)
- 主要特点:
- 易扩展性
- 容错机制
- 低延迟处理
ZooKeeper
- Hadoop生态系统的协调者
- 分布式环境中的服务协调中枢
Hadoop发展历程与版本
- 大数据两大核心问题:
- 海量数据存储
- 存储数据处理
- Hadoop作为解决方案包含:
- HDFS分布式文件系统
- YARN资源管理器
发展大事记
- 2002:Apache Nutch项目启动
- 2003:Google发布GFS论文
- 2004:Google发布MapReduce论文
- 2005:Nutch分布式文件系统诞生
- 2006:Hadoop与HDFS正式发布
- 2007:Yahoo部署千节点集群
- 2013:Hadoop 2.0发布
- 2017:Hadoop 3.0发布
Hadoop发行版评估标准
性能表现
- 早期重点:高吞吐量
- 当前趋势:兼顾低延迟
- 低延迟两大关键指标:
- 原生性能
- 扩展能力
扩展能力
- 文件系统:突破单NameNode架构瓶颈,实现分布式元数据管理
- 节点规模:支持千节点级扩展
- 存储密度:支持高密度磁盘节点扩展
可靠性
Apache Hadoop设计具备从单服务器到数千节点的线性扩展能力,并具有高度容错特性。