hadoop学习笔记
初识hadoop
数据越来越多,数据的增长越来越快,存储和分析这些数据成为挑战!
数据的存储和分析
当数据量逐渐变大时,单个磁盘的读写速度成为瓶颈。解决办法是,将数据分散存储,通过并行读取提高读写数据。
要达到这种目的,面临的2个问题:
- 硬件故障,通过备份机制冗余存储数据
- 并行读取后,正确的合并数据
hadoop的hdfs和mapreduce为这两个问题提供了解决方案。
关系型数据库
为什么不能用关系型数据库+更多磁盘做批量分析?
1. 磁盘驱动器的寻址时间提高速度远远慢于传输速率的提高速度。
寻址:将磁头移动到特定位置进行读写操作的工序
传输速率:对应于磁盘的带宽
2. 传统关系型数据库使用B树,B树对于小量数据更新时效果比较好,但对于大量数据更新的时候,效率就没有MR高了。
MR适合做分析整个数据集的问题
RDBMS适用于点查询和更新
Hadoop发展简史
- 创始人是Doug Cutting-Apache Lucene的创始人
- 起源于Apache Nutch
- 源于搜索引擎,存储数几十亿计的网页
- 2003年:Google发表论文介绍分布式文件系统
- 2004年:第一个开放源码的应用诞生,Nutch
- 2004年:Google发表论文介绍MapReduce
- 2005年初:第一个在Nutch上可用的MapReduce应用
- 2006年2月:从Nutch转移出来,成为单独的子项目:Hadoop
- 2006年:Doug Cutting加入雅虎
- 2008年1月:Hadoop成为Apache顶级项目
- 2008年4月:Hadoop打破世界纪录,成为最快排序1TB数据的系统
Apache Hadoop项目
- Core: 一系列分布式文件系统和通用I/O的组件和接口(序列化、Java RPC、持久化数据结构)
- Avro:一种提供高效、跨语言RPC的数据序列系统,持久化数据存储
- MapReduce:分布式数据处理模式和执行环境
- HDFS:分布式文件系统
- Pig:一种数据流语言和运行环境,用以检索非常大的数据集
- Hbase:一个分布式、列存储数据库。使用HDFS作为底层存储,同时支持MapReduce的批量式计算和点查询
- Zookeeper:一个分布式、高可用的协调服务。提供分布式锁之类的服务,用于分布式系统。
- Hive: 分布式数据仓库。关系HDFS中存储的数据,并提供基于SQL的查询语言,用以查询数据
- Chukwa:分布式数据收集和分析系统。