浅谈Hadoop在大数据中的作用以及与Spark的关系

说起Hadoop在大数据中的作用以及与Spark的关系,首先要了解Hadoop作为一种分布式的大数据框架,如今已在各个领域被广泛使用,能够对海量数据进行存储和计算分析;同时,Hadoop作为一种开源的集群,有众多的组件方便开发者安装和开发,而且开发成本相对低廉;同时,Hadoop中的Hive对SQL的支持可以使Hadoop吸收了关系型数据库的优点,便于用户对数据进行优化管理。它和Spark的区别更多的是Spark偏重的不是数据存储而是计算,通常人们会将Hadoop和Spark结合起来使用,充分发挥其各自的优点。

在实施Hadoop集群的过程中,如何减少HDFS的冗余、用好大数据存储的错容性、使用MapReduce对数据进行离线处理是较为重点的部分。而没有使用高效性能的关系型数据库,尽管关系型数据库可以快速处理用户事务数据,可以实现较为复杂的表间关联操作等。因为数据由磁盘是寻址读取,在读取所有数据之后再进行运算和操作,若是TB的数据,那么读取的时间会非常的长。那么如果能把数据分散在多台机器上并行读取那么理论上其速度必然是大幅度提升, HDFS提供的是流式数据处理,在读取部分数据后即可操作。在MapReduce框架中,其框架形式为key-value形式,最终经过MapReduce的数据会保持其完整性。这就是Hadoop对磁盘读取的优化。

其次,Hadoop生态系统中的Hive能够完成复杂关联操作,虽然Hive有一定的延迟,它是数据仓库。但是在大数据处理中一般不需要进行复杂的关联操作,基本上都是行列的分析与处理。尚学堂陈老师指出,在处理海量数据不能够完全按照关系型数据库的逻辑,所以要具体问题具体分析。而且关系型数据库产品多样,技术也相对十分成熟。在Hive可以发挥关系型数据库的优势之外,HBase可以在一定程度上进行补充。

Hadoop大数据处理的相关产品有很多,如Hive、HBase、Spark、Storm、Mahout等等,用户的需求也能够日益得到满足。相比于使用场景已基本固化的关系型数据库,Hadoop功能更加灵活。并且Hadoop是开源项目,有开源社区和大多技术者的支持,开发维护也较为方便。在Hive中,关系型数据主要基于SQL语言,并且Hadoop有SQL型,同时也可以用Java、Python等进行开发。那么Hadoop和Spark有哪些不同呢?

首先,Hadoop 和Spark 两者都是大数据框架,但解决问题的层面有所不同。Hadoop更多是一个分布式数据基础设施,将巨大的数据集分派到一个由普通计算机组成的集群中的多个节点进行存储,节省了硬件成本 ,而Spark,则是那么一个专门用来对那些分布式存储的大数据进行处理的工具,依赖于分布式数据存储。

其次, Spark要比Hadoop的MapReduce计算速度快很多。Spark,它会在内存中以接近“实时”的时间完成所有的数据分析,从集群中读取数据,完成所有必须的分析处理,将结果写回集群。对于动态数据实时分析而言,Spark要比Hadoop性能较为优越。 比如实时的市场活动、网络安全分析等方面的应用。

以上就是Hadoop在大数据中的作用以及与Spark关系的说明,可见Hadoop在大数据分析中被广泛应用,同时也可以与Spark相结合提高其实时计算分析能力。

  • 发表于:
  • 原文链接http://kuaibao.qq.com/s/20180319A0QGBS00?refer=cp_1026
  • 腾讯「云+社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。

扫码关注云+社区

领取腾讯云代金券