什么是Hadoop
Apache™ Hadoop® 是一个开源的, 可靠的(reliable), 可扩展的(scalable)分布式计算框架
- 允许使用简单的编程模型跨计算机集群分布式处理大型数据集
- 可扩展: 从单个服务器扩展到数千台计算机,每台计算机都提供本地计算和存储
- 可靠的: 不依靠硬件来提供高可用性(high-availability),而是在应用层检测和处理故障,从而在计算机集群之上提供高可用服务
Hadoop能做什么?
- 搭建大型数据仓库
- PB级数据的存储 处理 分析 统计等业务
- 搜索引擎
- 日志分析
- 数据挖掘
- 商业智能(Business Intelligence,简称:BI)
Hadoop发展史
- 2003-2004年 Google发表了三篇论文
- GFS:Google的分布式文件系统Google File System
- MapReduce: Simplified Data Processing on Large Clusters
- BigTable:一个大型的分布式数据库
- 2006年2月Hadoop成为Apache的独立开源项目( Doug Cutting等人实现了DFS和MapReduce机制)。
- 2006年4月— 标准排序(10 GB每个节点)在188个节点上运行47.9个小时。
- 2008年4月— 赢得世界最快1TB数据排序在900个节点上用时209秒。
- 2008年— 淘宝开始投入研究基于Hadoop的系统–云梯。云梯总容量约9.3PB,共有1100台机器,每天处理18000道作业,扫描500TB数据。
- 2009年3月— Cloudera推出CDH(Cloudera’s Dsitribution Including Apache Hadoop)
- 2009年5月— Yahoo的团队使用Hadoop对1 TB的数据进行排序只花了62秒时间。
- 2009年7月— Hadoop Core项目更名为Hadoop Common;
- 2009年7月— MapReduce和Hadoop Distributed File System (HDFS)成为Hadoop项目的独立子项目。
- 2012年11月— Apache Hadoop 1.0 Available
- 2018年4月— Apache Hadoop 3.1 Available
- 搜索引擎时代
- 有保存大量网页的需求(单机 集群)
- 词频统计 word count PageRank
- 数据仓库时代
- FaceBook推出Hive
- 曾经进行数分析与统计时, 仅限于数据库,受数据量和计算能力的限制, 我们只能对最重要的数据进行统计和分析(决策数据,财务相关)
- Hive可以在Hadoop上运行SQL操作, 可以把运行日志, 应用采集数据,数据库数据放到一起分析
- 数据挖掘时代
- 啤酒尿不湿
- 关联分析
- 用户画像/物品画像
- 机器学习时代 广义大数据
- 大数据提高数据存储能力, 为机器学习提供燃料
- alpha go
- siri 小爱 天猫精灵
Hadoop核心组件
Hadoop是所有搜索引擎的共性问题的廉价解决方案
- 如何存储持续增长的海量网页: 单节点 V.S. 分布式存储
- 如何对持续增长的海量网页进行排序: 超算 V.S. 分布式计算
- HDFS 解决分布式存储问题
- MapReduce 解决分布式计算问题
Hadoop Distributed File System (HDFS™): A distributed file system that provides high-throughput access to application data.(分布式文件系统)
- 源自于Google的GFS论文, 论文发表于2003年10月
- HDFS是GFS的开源实现
- HDFS的特点:扩展性&容错性&海量数量存储
- 将文件切分成指定大小的数据块, 并在多台机器上保存多个副本
- 数据切分、多副本、容错等操作对用户是透明的
下面面这张图是数据块多份复制存储的示意
- 图中对于文件 /users/sameerp/data/part-0,其复制备份数设置为2, 存储的BlockID分别为1、3。
- Block1的两个备份存储在DataNode0和DataNode2两个服务器上
- Block3的两个备份存储在DataNode4和DataNode6两个服务器上
Hadoop MapReduce: A YARN-based system for parallel processing of large data sets.
- 分布式计算框架
- 源于Google的MapReduce论文,论文发表于2004年12月
- MapReduce是GoogleMapReduce的开源实现
-
MapReduce特点:扩展性&容错性&海量数据离线处理
Hadoop YARN: A framework for job scheduling and cluster resource management.(资源调度系统)
- YARN: Yet Another Resource Negotiator
- 负责整个集群资源的管理和调度
-
YARN特点:扩展性&容错性&多框架资源统一调度
网友评论