随着企业级海量数据爆发,数据处理分析模式的多样化,数据是如何加工、分析、处理的?
数据计算技术百家争鸣,不可一枝独秀
海量数据或者大数据是近十年非常流行的名词,与之相伴的是各种眼花缭乱的框架例如Hadoop、Spark、Hive、Storm、Flink等等,让企业和他们的IT工程师们应接不暇。每一种技术都声称自己的革命性创新,可以大幅度提升性能,颠覆既有框架。但时间证明它们谁也取代不了谁,只是各自适用不同的场景和问题。这背后的根本原因是大数据不仅仅是指数据量大,更重要的是数据处理模式和应用场景的多样性。
举个“栗子”
-
Hadoop Map/Reduce擅长海量数据的统计分析;
-
Spark基于内存的RDD更适用于迭代计算;
-
当处理大量关联的图数据时则不得不采用Pregel的计算模式;
-
在计算的某些阶段,涉及到小数据量的复杂计算,传统MPI更胜一筹;
-
当数据处理完成后,用户可能需要对处理结果进行机器学习,此时Tensorflow/Pytorch则更为合适。
企业如何在成本范围内,应对数据处理的多样性?
不考虑成本的话,可以购买足够的硬件,雇佣足够数量的工程师,应对所有可能的变化。这在事实上不可行。真正可行的是构建一套融合计算系统,充分利用硬件资源,兼容所有框架,且能简化用户编程。这套系统需要在调度层面实现硬件资