你的位置:首页 > 数据库

[数据库]企业级大数据处理方案


企业级大数据处理方案有三种业务场景:

1.离线处理;(mapreduce(第一代)、sparksql(第二代))

2.实时处理;(数据库操作、storm)

3.准实时处理。(spark Streaming)

mapreduce与spark对比

mr与spark优缺点对比:(一)

a.mapreduce频繁的数据读写,使数据处理速度滞后

b.spark所有计算在内存中消除了,磁盘读写此快其一

mr与spark优缺点对比:(二)

a.mapreduce每一个计算过程与上一个计算过程无血统继承

b.spark步步操作均有血统继承关系,ageline机制,可以追溯到数据来源或者checkpoint(lazy级别)容错性与框架的自动优化

mr与spark优缺点对比:(三)

程序运行的可视化,spark有DAG图

streaming和storm对比

streaming和storm优缺点对比:(一)

a.storm计算相当于电流,这边进那边就要出

b.streaming为了提高吞吐量,引进了批处理,牺牲了实时性,增加了吞吐量

streaming和storm优缺点对比:(二)

a.storm拓扑计算模式(有向无环图)

b.streamingDAG图,流式计算,中间数据交换可以调用丰富的计算框架,sql和ml和graphX

传统数据库实时操作与大数据技术对比:

a.虽然实时,但是数据量大时,无法解决,速度就降了下来

b.大数据技术,解决了大数据,牺牲了实时

      综上所述:任何技术都不是完美的,为了一方面就必然牺牲另一方面,人无完人。吞吐量与实时的取舍,内存与速度的取舍。--当实时处理的数据量的能力提高,离线处理还有存在的必要吗?如果数据处理不能实时性,必然影响数据的价值。大数据的核心价值:数据挖掘和数据分析最终为数据消费者的行为和决策力服务。

      继续反思:既然每种大数据处理技术都有缺陷,那怎样才能达到我们心中的完美效果呢?

      三国曹操选用人才的方略-物尽其才,只要你有才,是不会让你埋没的。

      所以大数据处理方案不是单纯的某种技术的天下,而是各分块的紧密结合,优势互补,进而达到理想的效果。所以,必须了解技术的优势和使用场景,才能在实际的业务场景中,挑选合适的技术。就现在而言:

1.Hadoop只能用作存储和资源管理

2.spark只能作为计算,(只计算)

3.storm只计算

4.kafka数据缓存层(平衡流式数据量的过大过小)

5.flume采集

7.Tachyon分布式内存文件系统(alluxio)

8.redis、mongoDB分布式内存数据库

9.实时搜索引擎solr和lucene

      基本上数据处理的主流技术都在这了,上文虽然都是一种,但是每类技术都有多种,用途都是一样,只是场景和处理逻辑不同。那如何构建企业级大数据处理,且看下回。