Hadoop的起源与背景知识
2.4 Google的基本思想
2.4.1 Hadoop的思想来源:Google
Google搜索引擎,Gmail,安卓,AppspotGoogle Maps,Google earth,Google学术, Google翻译,Google+,下一步Google what?
2.4.2 Google的低成本之道
不使用超级计算机,不使用存储(淘宝的去i,去e,去o之路)
大量使用普通的pc服务器(去掉机箱,外设,硬盘),提供有冗余的集群服务
全世界多个数据中心,有些附带发电厂
运营商向Google倒付费
2.4.3 Google的三篇论文
Google的三篇论文(Hadoop的思想来源)
2.4.3.1 GFS
(Google File System:Google的文件系统)----- HDFS: Hadoop Distributed File System
HDFS= NameNode + SecondryNameNode + DataNode
- 分布式文件系统
- 大数据的存储问题
注意:第一份存在第一个机架rack1上,第二份存在rack2或者rack3上,第三份存在同第一份rack1 所在的机架上
HDFS中,记录数据保存的位置信息(元信息)-----> 采用倒排索引(Reverted Index)
什么是索引? Index
- create index 创建索引
- 就是一个目录
- 通过索引可以可以找到对应的数据
- 问题:索引一定可以提高查找的速度吗?
什么是倒排索引?
- 就是位置信息
2.4.3.2 MapReduce
问题来源:Page Rank(网页先后排名)
PageRank(网页排名)
下述图片网页4是最重要的,因此他的PageRank值高
采用MapReduce的计算模型:分布式计算模型
核心:先拆分,再合并
- 举例:MapReduce的编程模型
演示Demo:WordCount单词计数
Yarn = ResourceManager + NodeManager
example : /root/training/hadoop-2.7.3/share/hadoop/mapreduce
Yarn 的web console:192.168.157.111:8088
-
启动start-dfs.sh
-
启动start-yarn.sh
- 创建hdfs目录和文件
-
执行命令
-
查看结果
2.4.3.3 BigTable
BigTable(大表)是Google设计的分布式数据存储系统,用来处理海量的数据的一种非关系型的数据库。
基本思想:所有数据存入一张表;通过牺牲空间,换取时间 举例:把同样的数据存入Oracle和大表中(HBASE中一些基本概念)
- 什么是关系模型?(关系型数据库)
Oracle、MySQL等等 -----> 行数据库 -----> insert update select
- 常见的NoSQL数据库(key-value值):
(1) HBase: 基于HDFS的NoSQL数据库、面向列的 ----->列式数据库 ------> select
HBase = ZooKeeper + HMaster(主节点) + RegionServer(从节点)
需要单独安装
(2) Redis: 基于内存的NoSQL数据库、支持持久化: rdb和aof
(3) MongoDB: 面向文档的NoSQL
(4) Cassandra: 面向列的NoSQL数据库
2.4.4 Hadoop的源起
Hadoop的源起——Lucene,从lucene到nutch,从nutch到hadoop
- 2003-2004年,Google公开了部分GFS和Mapreduce思想的细节,以此为基础Doug Cutting等人用了2年业余时间实现了DFS和Mapreduce机制,使Nutch性能飙升
- Yahoo招安Doug Cutting及其项目
- Hadoop 于 2005 年秋天作为 Lucene的子项目 Nutch的 一部分正式引入Apache基金会。2006 年 3 月份,Map-Reduce 和 Nutch Distributed File System (NDFS) 分别被纳入称为 Hadoop 的项目中
- 名字来源于Doug Cutting儿子的玩具大象