整体来说
SparkContext是spark api的入门,可以用来编程
SQLContext是sparkSQL的一个分支入口,可以用来操作sql
HiveContext是spark sql中另外分支,用来操作hive
第一步spark driver应用程序创建SparkContext,SparkContext 允许spark driver应用程序通过资源管理器访问集群。资源管理器可以是yarn。
为了创建SparkContext,第一步可以创建SparkConf,SparkConf存储的配置信息,Spark driver应用程序将传给SparkContext。
现在你的Spark driver应用程序有SparkContext,它知道使用和请求集群资源。如果是yarn的RM和NM将会为executor分配container。如果资源有效的,在集群上executor将会根据配置参数分配memeory和cores。
image
每一个spark driver应用程序都有自己的executors在集群上。集群保持运行只要spark driver应用程序有SparkContext。executors运行用户code,运行计算和缓存应用程序的数据。SparkContext创建job,分解为stages。
SparkContext
其实是连接集群以及获取spark配置文件信息,然后运行在集群当中。
SQLContext
spark处理结构化数据的入口,允许创建DataFrame以及sql查询。
HiveContext
Spark sql执行引擎,集成hive数据,读取在classpath的hive-site.xml配置文件配置hive