Hadoop很强大,但企业在使用Hadoop或者大数据以前,首先要明确本身的目标,再肯定是否选对了工具,毕竟Hadoop不是万能的!本文中列举了几种不适合使用Hadoop的场景。node
随着 Hadoop 应用的不断拓展,使不少人陷入了对它的盲目崇拜中,认为它能解决一切问题。虽然Hadoop是一个伟大的分布式大型数据计算的框架,但Hadoop不是万能的。好比在下面这几种场景就不适合使用Hadoop:算法
一、低延迟的数据访问数据库
Hadoop并不适用于须要实时查询和低延迟的数据访问。数据库经过索引记录能够下降延迟和快速响应,这一点单纯的用Hadoop是没有办法代替的。可是若是你真的想要取代一个实时数据库,能够尝试一下HBase来实现数据库实时读写。编程
二、结构化数据框架
Hadoop不适用于结构化数据,却很是适用于半结构化和非结构化数据。Hadoop和RDBMS不一样,通常采用分布式存储,所以在查询处理的时候将会面临延迟问题。分布式
三、数据量并不大的时候工具
Hadoop通常适用于多大的数据量呢?答案是:TB 或者PB。当你的数据只有几十GB时,使用Hadoop是没有任何好处的。按照企业的需求有选择性的的使用Hadoop,不要盲目追随潮流。Hadoop很强大。但企业在使用Hadoop或者大数据以前,首先要明确本身的目标,再肯定是否选对了工具。oop
四、大量的小文件大数据
小文件指的是那些size比HDFS的block size(默认64M)小得多的文件。若是在HDFS中存储大量的小文件,每个个文件对应一个block,那么就将要消耗namenode大量的内存来保存这些block的信息。若是小文件规模再大一些,那么将会超出现阶段计算机硬件所能知足的极限。spa
五、太多的写入和文件更新
HDFS是采用的一些多读方式。当有太多文件更新需求,Hadoop没有办法支持。
六、MapReduce可能不是最好的选择
MapReduce是一个简单的并行编程模型。是大数据并行计算的利器,但不少的计算任务、工做及算法从本质上来讲就是不适合使用MapReduce框架的。
若是你让数据共享在MapReduce,你能够这样作: