怎样利用Spark Streaming和Hadoop实现近实时的会话连接

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了怎样利用Spark Streaming和Hadoop实现近实时的会话连接相关的知识,希望对你有一定的参考价值。

Hadoop/MapReduce和Spark最适合的都是做离线型的数据分析,但Hadoop特别适合是单次分析的数据量“很大”的情景,而Spark则适用于数据量不是很大的情景。这儿所说的“很大”,是相对于整个集群中的内存容量而言的,因为Spark是需要将数据HOLD在内存中的。一般的,1TB以下的数据量都不能算很大,而10TB以上的数据量都是算“很大”的。比如说,20个节点的一个集群(这样的集群规模在大数据领域算是很小的了),每个节点64GB内存(不算很小,但也不能算大),共计1.28TB。让这样规模的一个集群把500GB左右的数据HOLD在内存中还是很轻松的。这时候,用Spark的执行速度都会比Hadoop快,毕竟在MapReduce过程中,诸如spill等这些操作都是需要写磁盘的。

这儿有2点需要提一下:
1)一般情况下,对于中小互联网和企业级的大数据应用而言,单次分析的数量都不会“很大”,因此可以优先考虑使用Spark,特别是当Spark成熟了以后(Hadoop已经出到2.5了,而Spark才刚出1.0呢)。比如说,中国移动的一个省公司(在企业级,移动公司的数据量还是算相当大的),他们单次分析的数量一般也就几百GB,连1TB都很少超过,更不用说超过10TB了,所以完全可以考虑用Spark逐步替代Hadoop。

2)业务通常认为Spark更适用于机器学习之类的“迭代式”应用,但这仅仅是“更”。一般地,对于中等规模的数据量,即便是不属于“更适合”范畴的应用,Spark也能快2~5倍左右。我自己做过一个对比测试,80GB的压缩数据(解压后超过200GB),10个节点的集群规模,跑类似“sum+group-by”的应用,MapReduce花了5分钟,而spark只需要2分钟。
参考技术A hadoop包括hdfs、mapreduce、yarn、核心组件。hdfs用于存储,mapreduce用于计算,yarn用于资源管理。spark包括spark sql、saprk mllib、spark streaming、spark 图计算。saprk的这些组件都是进行计算的。spark sql离线计算,spark streaming 流计算,spark mllib机器学习。mpi高性能计算。hahoop只有mapreduce是和spark一样用来计算,要比较的话,只能比较mapreduce与spark区别。mapreduce叠代计算中间结果放在磁盘,适合大数据离线计算。spark技术先进,统一使用rdd,结果可放在内存,pipeline,计算速度比mapreduce快。建议大数据存储使用hadoop的hdfs,资源管理用hadoop的yarn,计算使用spark或mpi

以上是关于怎样利用Spark Streaming和Hadoop实现近实时的会话连接的主要内容,如果未能解决你的问题,请参考以下文章

mac上搭建kafka并利用spark streaming实时消费

[Spark]-Streaming-调优

实战Spark streaming与kafka

如何将 Spark Streaming 检查点位置存储到 S3 中?

大数据之Spark:Spark Streaming

Spark Streaming实时计算