文章目录
- 前言
- 一、Hadoop介绍
- 1. 简介
- 2. Hadoop发展史
- 3. Hadoop现状
- 二、Hadoop特性
- 1. Hadoop国外应用
- 2. Hadoop国内应用
- 三、Hadoop架构变迁
- 1. 发行版本
- 2. Hadoop架构变迁(1.0-2.0变迁)
- 3. Hadoop架构变迁(3.0新版本)
- 4. 综述
- 四、技术生态体系
前言
大数据(Big Data)
大数据(Big Data)是指无法用传统数据处理工具处理的大规模数据集合,具有数据量大、数据类型多、数据生成速度快、数据价值密度低等特点。
大数据的处理技术包括分布式存储和计算、数据清洗和转换、数据分析和可视化等。
分布式存储和计算是通过多台计算机协同工作来处理大规模数据,如Hadoop、Spark等;
数据清洗和转换是对大数据进行预处理,如数据去重、数据转换等;
数据分析和可视化是对大数据进行分析和展示,如机器学习、数据可视化等。
大数据的设计和实现需要考虑数据源、数据质量、性能、数据安全等因素。
一、Hadoop介绍
Hadoop是大数据生态圈的核心与基石,是整个大数据开发的入门。
1. 简介
狭义上Hadoop指的是Apache软件基金会的一款开源软件。
用 java语言实现,开源允许用户使用简单的编程模型实现跨机器集群对海量数据进行分布式计算处理。
Hadoop核心组件:
- Hadoop HDFS (分布式文件存储系统):解决海量数据存储
- Hadoop YARN (集群资源管理和任务调度框架): 解决资源任务调度
- Hadoop MapReduce (分布式计算框架):解决海量数据计算
官网:Apache Hadoop
广义上Hadoop指的是围绕Hadoop打造的大数据生态圈。
2. Hadoop发展史
-
Hadoop之父: Doug Cutting
-
Hadoop起源于Apache Lucene子项目: Nutch,Nutch的设计目标是构建一个大型的全网搜索引擎。遇到瓶颈:如何解决数十亿网页的存储和索引问题
-
Google三篇论文
《The Google file system》 :谷歌分布式文件系统GFS
《MapReduce: Simpliied Data Processing on Large Clusters》 :谷歌分布式计算框架MapReduce
《Bigtable: A Distributed Storage System for Structured Data》 :谷歌结构化数据存储系统
3. Hadoop现状
HDFS作为分布式文件存储系统,处在生态圈的底层与核心地位;
YARN作为分布式通用的集群资源管理系统和任务调度平台, 支撑各种计算引擎运行,保证了Hadoop地位;
MapReduce作为大数据生态圈第一代分布式计算引擎,由于自身设计的模型所产生的弊端, 导致企业一线几乎不再直接使用MapReduce进行编程处理,但是很多软件的底层依然在使用MapReduce引擎来处理数据。
Hadoop是一个由Apache基金会所开发的分布式系统基础架构,主要就是解决数据存储和数据分析计算的问题(通过HDFS和MapReduce实现)。
Hive是基于Hadoop的数据仓库工具,可以存储,查询,分析数据,方便决策人员和数据分析人员统计分析历史数据。
Spark是一个基于内存计算的开源的集群计算系统,目的是让数据分析更加快速。
对应于Google三驾马车:
HDFS对应于GFS,即分布式文件系统;
MapReduce即并行计算框架;
HBase对应于BigTable,即分布式NoSQL列数据库。
外加Zookeeper对应于Chubby,即分布式锁设施。
二、Hadoop特性
1. Hadoop国外应用
- Yahoo
- 支持广告系统
- 用户行为分析
- 支持Web搜索
- 反垃圾邮件系统
- 存储处理数据挖掘和日志统计
- 构建基于Hadoop数据仓库平台(Apache Hive来自FB)
- IBM
- 蓝云基础设施构建
- 商业化Hadoop发行、解决方案支持
2. Hadoop国内应用
- 百度
- 用户搜索表征的需求数据、阿拉丁爬虫数据存储
- 数据分析和挖掘 竞价排名
- 阿里巴巴
- 为电子商务网络平台提供底层的基础计算和存储服务
- 交易数据、信用数据
- 腾讯
- 用户关系数据
- 基于Hadoop、 Hive构建TDW (腾讯分布式数据仓库)
- 华为
- 对Hadoop的HA方案,以及HBase领域有深入研究
三、Hadoop架构变迁
1. 发行版本
Hadoop发行版本:Apache Hadoop
Apache开源社区版本:http://hadoop.apache.org/
商业发行版本:
- Cloudera: https://www.cloudera.com/products/open-source/apache-hadoop.html
- Hortonworks: https://www.cloudera.com/products/hdp.html
常用Apache版的Hadoop, 版本号为: 3.3.0
2. Hadoop架构变迁(1.0-2.0变迁)
Hadoop 1.0
- HDFS (分布式文件存储)
- MapReduce (资源管理和分布式数据处理)
Hadoop 2.0
- HDFS (分布式文件存储)
- MapReduce (分布式数据处理)
- YARN (集群资源管理、任务调度)
3. Hadoop架构变迁(3.0新版本)
Hadoop 3.0架构组件和Hadoop 2.0类似,3.0着重于性能优化。
- 通用方面
精简内核、类路径隔离、shell脚本重构
- Hadoop HDFS
EC纠删码、多NameNode支持
- Hadoop MapReduce
任务本地化优化、 内存参数自动推断
- Hadoop YARN
Timeline Service V2、队列配置
4. 综述
① 在Hadoop1.x时代,Hadoop中的MapReduce同时处理业务逻辑运算和资源的调度,耦合性较大。
② 在Hadoop2.x时代,增加了Yarn。Yarn只负责资源的调度,MapReduce只负责运算。
③ Hadoop3.x在组成上没有什么变化。
现状:
HDFS作为分布式文件存储系统,处在生态圈的底层与核心地位;
YARN作为分布式通用的集群资源管理系统和任务调度平台, 支撑各种计算引擎运行,保证了Hadoop地位;
MapReduce作为大数据生态圈第一代分布式计算引擎,由于自身设计的模型所产生的弊端, 导致企业一线几乎不再直接使用MapReduce进行编程处理,但是很多软件的底层依然在使用MapReduce引擎来处理数据。
四、技术生态体系
大数据技术生态体系
Sqoop: Sqoop 是一款开源的工具,主要用于在 Hadoop、 Hive 与传统的数据库(MySQL)间进行数据的传递,可以将一个关系型数据库(例如 : MySQL, Oracle 等)中的数据导进到 Hadoop 的 HDFS 中,也可以将 HDFS 的数据导进到关系型数据库中。
Flume: Flume 是一个高可用的,高可靠的,分布式的海量日志采集、聚合和传输的系统,Flume 支持在日志系统中定制各类数据发送方,用于收集数据;
Kafka: Kafka 是一种高吞吐量的分布式发布订阅消息系统
Spark: Spark 是当前最流行的开源大数据内存计算框架。可以基于 Hadoop 上存储的大数据进行计算。
Flink: Flink 是当前最流行的开源大数据内存计算框架。 用于实时计算的场景较多。
Oozie: Oozie 是一个管理 Hadoop 作业(job)的工作流程调度管理系统。
Hbase: HBase 是一个分布式的、面向列的开源数据库。 HBase 不同于一般的关系数据库,它是一个适合于非结构化数据存储的数据库。
Hive: Hive 是基于 Hadoop 的一个数据仓库工具,可以将结构化的数据文件映射为一张数据库表,并提供简单的 SQL 查询功能,可以将 SQL 语句转换为 MapReduce 任务进行运行。其优点是学习成本低,可以通过类 SQL 语句快速实现简单的 MapReduce 统计,不必开发专门的 MapReduce 应用,十分适合数据仓库的统计分析。
ZooKeeper:它是一个针对大型分布式系统的可靠协调系统,提供的功能包括:配置维护、名字服务、分布式同步、组服务等。
本文的引用仅限自我学习如有侵权,请联系作者删除。
参考知识
Hadoop技术栈之Apache Hadoop概述