找回密码
 立即注册
  • QQ空间
  • 回复
  • 收藏

Linux平台下Spark开发环境搭建

admin 2019-9-11 10:40 73人围观 Linux相关

本文介绍使用IDEA进行Spark开发的搭建方法。

(一) 下载IDEA


打开网址

http://www.jetbrains.com/idea/download/

显示界面如下



选择Community 版本下载。

(二)安装


进入下载目录,可看到新增文件 ideaIC-2019.2.2.tar.gz

执行以下命令,进行解压配置。
$ tar -xzvf ideaIC-2019.2.2.tar.gz
$ cd idea-IC-192.6603.28/
$ ./bin/idea.sh

(三)安装scala插件


在欢迎界面点击Configure,选择Plugins,如下图所示:



在弹出的界面中选择scala,进行安装,界面如下:



(四)配置全局JDK和Library


在欢迎界面点击Configure,选择Structure for New Project,如下图所示:



在弹出的界面的左侧边栏选择Project,在右侧打开的页面中创建一个新的JDK选项,如下图所示步骤在下拉菜单中点击JDK后,在打开的对话框中选择你所安装JDK的位置。注意是JDK安装的根目录,就是JAVA_HOME中设置的目录。



(五)配置全局的Scala SDK


上节的界面中左侧选择Global Libraries,然后在中间一栏中有一个绿色的加号标志 +,点击后在下拉菜单中选择 Scala SDK。

然后在打开的对话框中选择系统本身所安装的Scala,点击OK确定,这时候会在中间一栏位置处出现Scala的SDK,在其上右键点击后选择Copy to Project Libraries…。若本机未安装Scala,可点击底部的安装按钮,进行安装,完成后界面如下图所示:



(六)新建maven项目


在欢迎界面点击Create New Project,在打开的页面左侧边栏中,选择Maven,然后点击Next,填写三个参数:GroupId, ArtifactId和Version. 点击Finish,创建完成。

(七)增加Scale支持


  1. 删除文件夹 main\java, main\resources 和 test 这三个;

  2. 将Scala的框架添加到这个项目中,方法是在左侧栏中的项目名称上右键菜单中点击Add Framework Support…,然后在打开的对话框左侧边栏中,勾选Scala前面的复选框,然后点击确定即可。

  3. 在main文件夹中建立一个名为 scala 的文件夹,并右键点击 scala 文件夹,选择 Make Directory as,然后选择Sources Root。

  4. 在已经标记好为源文件根目录的 scala 文件夹 上,右键选择 New,然后选择 Scala Class,随后设置好程序的名称,并且记得将其设置为一个 Object(类似于Java中含有静态成员的静态类)。

  5. 在创建的 Object 中输入如下语句:

    def main(args: Array[String]):Unit = {println("Hello World!")}

在程序界面的任意位置,右键单击后选择 Run '你的程序名称',程序的编译和运行完成后,会在下方自动打开的窗口中显示 Hello World!。

(八)添加spark依赖


打开pom.xml文件添加如下依赖。其中spark 和Scala的版本是对应的。
<properties>
<spark.version>2.0.2</spark.version>
<scala.version>2.11</scala.version>
</properties>
<dependencies>
<dependency>
<groupId>org.apache.spark</groupId>
<artifactId>spark-core_${scala.version}</artifactId>
<version>${spark.version}</version>
</dependency>
<dependency>
<groupId>org.apache.spark</groupId>
<artifactId>spark-streaming_${scala.version}</artifactId>
<version>${spark.version}</version>
</dependency>
<dependency>
<groupId>org.apache.spark</groupId>
<artifactId>spark-sql_${scala.version}</artifactId>
<version>${spark.version}</version>
</dependency>
<dependency>
<groupId>org.apache.spark</groupId>
<artifactId>spark-hive_${scala.version}</artifactId>
<version>${spark.version}</version>
</dependency>
<dependency>
<groupId>org.apache.spark</groupId>
<artifactId>spark-mllib_${scala.version}</artifactId>
<version>${spark.version}</version>
</dependency>
</dependencies>
<build>
<plugins>
<plugin>
<groupId>org.scala-tools</groupId>
<artifactId>maven-scala-plugin</artifactId>
<version>2.15.2</version>
<executions>
<execution>
<goals>
<goal>compile</goal>
<goal>testCompile</goal>
</goals>
</execution>
</executions>
</plugin>
<plugin>
<artifactId>maven-compiler-plugin</artifactId>
<version>3.6.0</version>
<configuration>
<source>1.8</source>
<target>1.8</target>
</configuration>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-surefire-plugin</artifactId>
<version>2.19</version>
<configuration>
<skip>true</skip>
</configuration>
</plugin>
</plugins>
</build>

导入依赖以后保存后,Event Log窗口中的Import Changes 或 Enable Auto-Import,引入jar 包,如下图:



(九)编写Spark代码


依赖添加成功后,就可以创建Spark代码了,本文以对数据进行过滤求和的代码为例进行说明,代码如下:
import org.apache.spark.{SparkConf, SparkContext}

object MySpark {
def main(args: Array[String]) {
val conf = new SparkConf().setAppName("mySpark")
conf.setMaster("local")
val sc =new SparkContext(conf)
val rdd =sc.parallelize(List(1,2,3,4,5,6,7,8,9)).map(_*3)
val mappedRDD=rdd.filter(_>10).collect()
println(rdd.reduce(_+_))
for(arg <- mappedRDD)
print(arg+" ")
println()
println("math is work")
}
}

代码编写好以后,右键 run ‘mySpark’ 运行。

(十)打包


运行成功后,可以讲代码打包成jar 包发送到远端或者本地的spark 集群上运行。打包有以下步骤

(1)点击“File”然后选择“project Structure”- “Artifacts”添加 “JAR”,如下图:



在弹出的对话框中,按下图进行操作。



由于我们的jar包是在Spark 上运行的,所以与Spark有关的包可以删除,如下图所示,删除其他不需要的包,只留下红色矩形中的两个。



执行 菜单Bulid——Build Artifacts 构建你的jar。

(十一)运行


进入 Spark 安装目录,执行以下命令:

./bin/spark-submit --class MySpark --master spark://spark1:7077 ~/Idea/mySpark/out/artifacts/mySpark_jar/mySpark.jar

其中:
MySpark :启动类的名字,如果有包命,需要带包名。
spark1:7077 :是你远端的spark 的地址。
~/Idea/mySpark/out/artifacts/mySpark_jar/mySpark.jar:是jar 包的路径。


----------------------------------------------------------------------------------------------------------------------
我们尊重原创,也注重分享,文章来源于微信公众号:程序员空间,建议关注公众号查看原文。如若侵权请联系qter@qter.org。
----------------------------------------------------------------------------------------------------------------------

鲜花

握手

雷人

路过

鸡蛋

yafeilinux和他的朋友们微信公众号二维码

微信公众号

专注于Qt嵌入式Linux开发等。扫一扫立即关注。

Qt开源社区官方QQ群二维码

QQ交流群

欢迎加入QQ群大家庭,一起讨论学习!

我有话说......