第 12 周 C! 数据有这么大
大数据概述
大数据技术发展史
今天我们常说的大数据技术,其实起源于 Google 在 2004 年前后发表的三篇论文,也就 是我们经常听到的大数据“三驾马车”,分别是分布式文件系统 GFS、大数据分布式计 算框架 MapReduce 和 NoSQL 数据库系统 BigTable。
搜索引擎主要就做两件事情,一个是网页抓取,一个是索引构建和排序,而在这个过程 中,有大量的数据需要存储和计算。这“三驾马车”其实就是用来解决这个问题的,也 就是,一个文件系统、一个计算框架、一个数据库系统。
浏览下 Hadoop 的代码,这个纯用 Java 编写的软件其实并没有什么高深的技术难点, 使用的也都是一些最基础的编程技巧,也没有什么出奇之处,但是它却给社会带来巨大 的影响,甚至带动一场深刻的科技革命,推动了人工智能的发展与进步。
Lucene 开源项目的创始人 Doug Cutting 当时 正在开发开源搜索引擎 Nutch,阅读了 Google 的论文后,根据论文原理初步实现了类似 GFS 和 MapReduce 的功能。
2006 年,Doug Cutting 将这些大数据相关的功能从 Nutch 中分离了出来,然后启动了 一个独立的项目专门开发维护大数据技术,这就是后来赫赫有名的 Hadoop,主要包括 Hadoop 分布式文件系统 HDFS 和大数据计算引擎 MapReduce。
大数据应用发展史
大数据应用的搜索引擎时代
作为全球最大的搜索引擎公司,Google 也是我们公认的大数据鼻祖,它存储着全世界几 乎所有可访问的网页,数目可能超过万亿规模,全部存储起来大约需要数万块磁盘。为 了将这些文件存储起来,Google 开发了 GFS(Google 文件系统),将数千台服务器上 的数万块磁盘统一管理起来,然后当作一个文件系统,统一存储所有这些网页文件。
Google 得到这些网页文件是要构建搜索引擎,需要对所有文件中的单词进行词频统计, 然后根据 PageRank 算法计算网页排名。这中间,Google 需要对这数万块磁盘上的文 件进行计算处理,,也正是基于这些需求,Google 又开发了 MapReduce 大数据计算框 架。
大数据应用领域
医学影像智能识别
病历大数据智能诊疗
AI 外语老师
智能解题
舆情监控与分析
大数据风控
新零售
无人驾驶
HDFS
HDFS 设计目标
HDFS 以流式数据访问模式存储超大文件,运行于商用硬件集群上。 超大文件 流式数据访问 • 一次写入多次读取 商用硬件
不适合 HDFS 的场景
低延迟的数据访问 大量小文件 • 超过 NameNode 的处理能力 多用户随机写入修改文件
设计目标
假设:节点失效是常态 理想: 1. 任何一个节点失效,不影响 HDFS 服务 2. HDFS 可以自动完成副本的复制
文件
文件切分成块(默认大小 64M),以块为单位,每个块有多个副本存储在不同的机器上, 副本数可在文件生成时指定(默认 3) NameNode 是主节点,存储文件的元数据如文件名,文件目录结构,文件属性(生成时 间,副本数,文件权限),以及每个文件的块列表以及块所在的 DataNode 等等 DataNode 在本地文件系统存储文件块数据,以及块数据的校验和 可以创建、删除、移动或重命名文件,当文件创建、写入和关闭之后不能修改文件内容。
HDFS 一致性模型
文件创建以后,不保证在 NameNode 立即可见,即使文件刷新并存储,文件长度依 然可能为 0;
当写入数据超过一个块后,新的 reader 可以看见第一个块,reader 不能看见当前正 在写入的块;
HDFS 提供 sync() 方法强制缓存与数据节点同步,sync() 调用成功后,当前写入数据 对所有 reader 可见且一致;
调用 sync() 会导致额外的开销;
版权声明: 本文为 InfoQ 作者【Pyr0man1ac】的原创文章。
原文链接:【http://xie.infoq.cn/article/755a1bc942dc99fa6ec7ecdef】。未经作者许可,禁止转载。
评论