Hadoop产生背景:
传统方式,我们使用数据库来对数据进行管理。可是随着数据量的增加,我们要对这个数据库中的海量数据进行处理,
从中提取出有效的信息,这时候面临的问题随之而来:
1.海量数据读取,采用多个硬件读取,如果硬件故障了怎么办?
2. 1个磁盘读取的数据可能和另外99个磁盘读取的数据合并起来才能使用,如何保证这个不同数据组合的正确性?
这便是Hadoop要解决的问题。Hadoop使用了HDFS分布式文件系统,计算架构Map reduce以及结构化数据处理的Hbase。基于zooKeeper,
pig,hive等,打造的一个海量数据提取分析的 解决方案。
Hadoop与数据库的区别:
1.为什么不使用数据库而是Hadoop? 因为磁盘IO,寻址空间慢于传输速率。如果继续采用数据库方式,数据访问模式受限于磁盘寻址。
而我们知道,磁盘寻址的速度是远远慢于数据传输的速率。
2.Map reduce适用于对整个数据集分析,数据大小PB级别,访问为批处理,更新为一次写入多次读取。
数据库适用于更新和查询。数据大小GB,访问为批处理,更新为多次读写。
mapReduce具体场景举例:
web服务器日志:客户端的主机名带有全名出现,每次都会出现很多次。 mapreduce适用于分析各种日志文件。
MapReduce还解决了某个进程失败时,可以将任务安排到其他机器上。
Hadoop划分层级:
Core
Avro
mapreduce
HDFS
Pig
Hbase
Zookeeper
chukwa