1.Hadoop提供了一个稳定的共享存储和分析系统。存储由HDFS实现,分析由MapReduce实现,这两个就是Hadoop的核心所在
2.为什么我们不能使用数据库加上更多磁盘来做大规模的批量分析?为什么我们需要MapReduce?
1.寻址时间的提高速度远远慢于传输速率的提高速度,寻址就是将磁头移动到特定位置进行读写操作的工序,它的特点是磁盘操作有延迟,而传输速率对应于磁盘的带宽
2.数据的访问受限于磁盘的寻址,势必导致它花更长时间(相对于流)来读写大部分数据
3.更新一小部分数据库记录的时候,传统的B树效果更好,但在更新大部分数据库数据的时候,B树的效率就没有MapReduce的效率好,因为它需要使用排序/合并来重新数据库
4.MapReduce很适合处理那些需要分析整个数据集的问题,以批处理的方式,尤其是Ad Hoc分析,RDBMS适合于点查询和更新
5.MapReduce适合数据被一次写入和多次读取的应用,而关系数据库更适合持续更新的数据集
6.MapReduce对于结构化和半结构化数据非常有效,关系型数据库处理的是有模式的数据
3.jobtracker:通过调度任务在tasktracker上运行,来协调所有运行在系统上的作业。tasktracker运行任务的同时,把进度报告传送到jobtracker,jobtracker则记录着每项任务的整体进展情况。如果其中一个任务失败,jobtracker可以重新调度任务到另外一个tasktracker
4.HDFS:是以流式数据访问模式存储超大文件而设计的文件系统,在商用硬件的集群上运行
5.HDFS不适合的场景
1.低延迟数据访问
需要低延迟访问数据在毫秒范围内的应用不适合HDFS,HDFS为了达到高数据吞吐量而优化,这有可能会以延迟为代价,目前,对于低延迟访问,HBase是更好的选择
2.大量的小文件
3.多用户写入,任意修改文件