官方定义:hadoop是一个开发和运行处理大规模数据的软件平台。核心词语是平台,也就是说我们有大量的数据,又有好几个电脑,我们知道应该把处理数据的任务分解到各个电脑上,但是不知道怎样分配任务,怎样回收结果,hadoop大概就帮助我们做了这件事。
1、HDFS
我们首先应该考虑的是海量数据怎么保存,怎么管理。这就有了分布式文件系统,HDFS。
2、Map-Reduce
数据保存后,我们怎样处理这些数据呢,如果我处理的方法复杂,而不仅仅是排序,查找这样的操作怎么办?需要有一个能够提供编写代码的地方,让我们自己写出操作,它内部再进行分解,分配,回收数据等等。
3、Hive
能编代码是好的,但编代码太麻烦,而且数据库人员是熟悉SQL语句的,能用SQL语句处理,就不用Map-Reduce了吧,所以出现了Hive。而且大数据无论如何是离不开数据库,离不开表,Hive就能讲数据映射成数据表,然后再操作就方便了,它的缺点是速度较慢。
4、HBase
既然Hive的速度较慢,那么有没有较快的数据库呢?HBase就是,他为查询而生的,查询的速度很快。
5、Sqoop
以前不是有很多有名的数据库像MySQL,Oracle,我数据都是存在这里面的,怎么导入到HDFS中呢?Sqoop提供了关系型数据库和HDFS之间的相互转换。
6、Flume
在这么多电脑上工作,如果其中一台有点问题,或者上面哪个服务有点问题,怎样知道哪坏了呢?Flume提供了一个高可靠的日志采集系统。
7、Mahout
处理大数据很多是用来进行数据挖掘,有那几种常见的机器学习算法,既然算法都固定了而且就那几种,那就开发个叫Mahout的东西实现各种算法,开发人员就能更快捷的使用。
8、Zookeeper
ZooKeeper的目标是封装好复杂易出错的关键服务,将简单易用的接口和性能高效、功能稳定的系统提供给用户。说白了就是动物园管理员,他是用来来管大象(Hadoop) 、 蜜蜂(Hive)的。
以上是Hadoop家族的主要成员,还有几个不常用的就不用介绍了,知道这些成员的作用后,对Hadoop整体能干什么就有了初步的认识,剩下的就是慢慢学习各个部分的原理和使用方法了。