前言
本文以sparkSQL在elasticsearch中的关联查询为例介绍了使用java开发spark sql应用程序提交到yarn上运行的全过程,并介绍解决了一些开发和提交中常见的问题。
准备
首先我们要搭建好spark on yarn的集群环境,我是用cdh安装和cloudera manager进行维护的。
这里用到的组件主要有yarn、hdfs和hive。
对于开发人员来说唯一要准备的就是代码开发环境,使用idea创建一个maven项目,在pom.xml中添加如下内容:
<properties>
<java.version>1.8</java.version>
<scala.version>2.10.5</scala.version>
<!--<maven-jar-plugin.version>3.1.1</maven-jar-plugin.version>-->
<!--禁用测试-->
<maven.test.skip>true</maven.test.skip>
</properties>
<dependencies>
<dependency>
<groupId>org.elasticsearch</groupId>
<artifactId>elasticsearch-spark-20_2.10</artifactId>
<!--支持spark使用6.4.3-->
<version>6.4.3</version>
<exclusions>
<exclusion>
<groupId>org.codehaus.janino</groupId>
<artifactId>janino</artifactId>
</exclusion>
<exclusion>
<groupId>org.codehaus.janino</groupId>
<artifactId>commons-compiler</artifactId>
</exclusion>
</exclusions>
</dependency>
<dependency>
<groupId>org.codehaus.janino</groupId>
<artifactId>commons-co