Spark工程环境搭建
Spark工程相关配置的版本
- JDK: 1.8.0_181
- Spark: 2.3.0
- Hadoop: 2.7
- Scala: 2.12.6
- OS: mac
- Maven: 3.5.4
下载并安装JDK、Scala、Maven
安装步骤很简单,这里就不做阐述啦。
通过IDEA安装Scala插件
通过maven方式创建scala工程
按照步骤 点击next
修改pom.xml中的文件
增加spark和scala相关的依赖
小强直接把pom.xml文件上传到云盘,需要的同学可以直接下载。
https://pan.baidu.com/s/1M7KJVH89h6bVMJVpai1s8A 密码:vdp5
本地模式
将创建好scala工程,可以在本地调试,需要配置sparkConf和创建SparkContext
创建scala的object类
在本地环境运行wordcount
在Edit Configurations设置为本地运行,VM options设置如下:
-Dspark.master=local
然后直接运行main函数即可。在结果输出的路径可以查看到相关文件。
该任务的执行结果
集群模式
编译打包
在生产环境下,通过在IDEA中编写程序,然后打成jar包,再提交到集群中。可以利用mavne或sbt打包,小强一般用maven创建一个项目,利用maven来管理jar包的依赖。
使用maven打包,首先修改pom.xml中的mainClass,使其和自己对应的类对应起来
运行maven打包命令:mvn clean package
上传jar包到集群
编译打包成功后,将对应的jar包上传到spark集群中的某个节点上
一般公司内都有现成的hadoop集群和spark集群。使用bin/spark-submit脚本执行我们的应用,spark-submit脚本可以为我们配置spark所要用到的一系列环境变量。
在spark-submit可以通过设置参数对spark任务进行调优,这个小强后续会有专题介绍。
交互模式
如果是scala版本的shell,输入: bin/spark-shell,稍等数秒,shell提示符就会出现。
如果觉得shell中输出的日志信息过多而使人分心,可以调整日志级别来控制输出的信息量。需要在conf的目录下创建一个名为log4j.prpperties的文件来管理日志设置。将日志级别设置为只显示警告及更严重的信息:
log4j.rootCategory=WARN, console
这会再打开shell,输出大大减少
总结
我们讲到了spark在单机和集群模式下运行spark以及spark的使用。相比java代码,scala代码更简洁,spark是由scala开发的,由此可见scala在spark工程中的优势。