一、Hadoop、Spark、Storm三大框架比较
Hadoop:离线海量数据批处理,基于磁盘的
Spark:基于内存。
Spark特点:运行速度快,使用DAG执行引擎以支持循环数据流与内存计算,
2、容易使用:多种语言编程,通过spark shell进行交互式编程
3、通用性:提供了完整而强大的技术栈,包括sQL查询、流式计算、机器学习和图算法组件
4、运行模式多样:可运行在独立集群模式中,可以运行与hadoop中,也可以运行在AmazonEC2等云环境中,并可以访问HDFS、HBase、Hive等多种数据源
Scala:多范式编程语言
函数式编程(lisp语言,Haskell语言)
运行于java平台(jvm,虚拟机),兼容java程序
scala特性:具备强大的并发性,支持函数式编程,支持分布式系统,
语法简洁,能提供优雅的API
scala兼容java,运行速度快,能融合到hadoop生态圈中。
scala是spark的主要编程语言,提供REPL(交互式解释器),提高程序开发效率
Spark与Hadoop的对比
hadoop的缺点:1、表达能力有限,只能用map和reduce来表示
2、磁盘开销大
3、延迟高,由于要写磁盘,因此延迟高
4、任务之间的衔接涉及IO开销
Spark相对于hadoop MapReduce的优点:
1、不局限于MapReduce,提供多种数据集操作类型,编程模型比Hadoop MapReduce更灵活
2、spark提供内存计算,可将中间结果放到内存中,对于迭代运算效率更高
3、基于DAG的任务调度机制,效率更高
二、Spark生态系统
spark生态系统主要包含了Spark Core