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:分布式数据收集和分析系统。