大数据的逻辑:
1TB级别的磁盘驱动器是很正常的,数据传输的速度在100 MB/s左右,所以它需要花两个半小时以上的时间读取整个驱动器的数据。
试想一下,我们拥有100个磁盘,每个存储百分之一的数据。如果它们并行运行,那么不到两分钟我们就可以读完所有的数据。
这个逻辑在放在CPU上是一样的。并行能加快速度。
1. Hadoop的几个组件
作者:Doug Cutting和Mike Cafarella
MapReduce:分布式计算框架,将计算打碎,将结果组合,map后生成的列表来shuffle和sort,之后把这些列表进行reduce操作
Hive :数据仓库,将SQL语句封装
Pig:数据流处理
Hbase (BigTable):实时分布式数据库,key-value表,value存储在HDFS中
HDFS (GFS):分布式文件系统,将value存在不同的主机,并做多份拷贝
Zookeeper(Chubby):分布式协作服务,各个service的分布式配置,同步配置,并可以管理service的生命周期
Yarn:调度CPU资源处理任务
2. Hadoop集群
Master服务器:NameNode,JobTracker,Secondary NameNode
Slave服务器:DataNode,TaskTracker
2. MapReduce
Job
JobTracker:分配job给TaskTracker,任务没完成也可以重新分配
TaskTracker
MapTaskReduceTask
3. GFS(HDFS)
NameNode:中心服务器,管理文件系统的命名空间,与datanode有心跳,master节点,存储元数据,知道数据在哪里,文件在哪些block
Secondary NameNode: 和NameNode都在master节点,负责备份NameNode的元数据到别处
DataNode:chunk节点,存储value的block,通过block id拿到文件的内容
不适合做: