spark体验

前言

spark作为大数据计算引擎,为大数据的计算提供了一套新的底层模型;从存储角度,它借助内存作为首选方式,比hadoop快百倍。记录下一些重点感悟。

几大特点

  1. 快 - 100*hadoop运行
  2. 易用 - 搭好框架之后,支持Java, Scala, Python, R, and SQL.
  3. 通用 - sql、流式计算、复杂分析
  4. 灵活运行 - hadoop集群,mesos、k8s等有广泛集成

使用体验

在接触spark之前,对hadoop、hive有一定了解,hadoop的编程模式还是以java代码,生成jar包的执行方式;hive对hadoop做了一层封装,以支持HQL(类SQL)的方式对用户提供大数据分析方式。

而在spark中,由于spark的精简模型,结合对scala、python的支持,基本几行代码就可以做分析,所见即所得,能很快的得到反馈。

在spark 低版本中,以RDD为核心模型,操作相对底层,支持“告诉框架怎么做”的编程模式。在spark高版本中,以DataFrame、DataSet的更高层模型支持“告诉框架做什么”的编程模式。

执行模式

两类操作:转换:transformation和行动:action

与java的stream类似,在没有遇到terminal之前,不会真正执行具体操作。在遇到action之后,会做逻辑优化后执行。

对于SQL类型语句,底层会基于hive做逻辑计划、物理计划做编排后执行。

集群搭建

和hadoop类似,从思路上来说,作为分布式计算框架,一定需要有分布式的存储支撑,因为之前搭过hadoop、dfs,搭建spark基本无障碍,也是基于dfs作为存储。搭建之后,基于spark-submit方式

示例:

/bin/spark-submit examples/src/main/python/pi.py

 

参考资料

1. 官网 http://spark.apache.org/ Apache Spark™ is a unified analytics engine for large-scale data processing.

2. Learning Spark 2nd  Jules

你可能感兴趣的:(技术精进之路,spark)