文章目录
Spark with Hive
Spark with Hive这种集成方式,主要是Spark访问Hive的元数据,将Hive的数据作为数据源来进行操作。
其中实现的方式有三种
SparkSession + Hive Metastore
实现方式:在创建SparkSession 的时候,通过 config 函数来明确指定 hive.metastore.uris 参数;或者是将 hive-site.xml 拷贝到 Spark 安装目录下的 conf 子目录,Spark 即可自行读取其中的配置内容。
这种方式是通过代码进行Spark开发可以使用的。
Spark-SQL CLI + Hive Metastore
实现方式:与第一种方式是一样的,将 hive-site.xml 拷贝到 Spark 安装目录下的 conf 子目录即可。
这种方式是将,SQL语句转化为Spark任务的方式,可以直接用SQL开发,比较方便。
Beeline + Spark Thrift Server
实现方式:使用 Beeline 客户端连接 Spark Thrift Server,从而访问Hive数据。
这种方式需要启动 Spark Thrift Server。
Hive on Spark
Hive on Spark的集成方式,是Hive SQL交由Spark执行的方式,可以认为只是把Hive SQL的执行引擎换成了Spark。
实现方式:配置三个参数
- hive.execution.engine = spark
- spark.master = spark集群部署模式,如 yarn
- spark.home = spark安装目录
这种以Hive为主的方式可以方便的进行第三方SQL开发,比如在hue上。
Spark on yarn
Spark on yarn 其实只是Spark的一种部署模式,关于Spark的部署模式如下
本地模式
-
- Local:本地模式,Driver和Executors进程都在执行Spark应用程序的服务器上
分布式环境部署
选择不同的资源调度器,每个分布式部署模式都包括 Client 和 Cluster 两种模式
Client模式:Driver进程在执行Spark应用程序的服务器上,Executorrs进程在集群节点服务器上
Cluster模式:Driver和Executors进程都在集群节点上
-
- Standalone:使用Spark自带的资源调度器
- YARN:YARN作为资源调度器
- Mesos:Mesos作为资源调度器
- Kubernetes:Kubernetes作为资源调度器