Spark应用程序开发流程
2024-10-06 13:12:14
配置文件:
pom.xml
<properties>
<scala.version>2.11.8</scala.version>
<spark.version>2.2.0</spark.version>
<hadoop.version>2.6.0-cdh5.7.0</hadoop.version>
</properties>
<repositories>
<!--添加cloudera仓库依赖, CDH版本是cloudera仓库下的-->
<repository>
<id>cloudera</id>
<name>cloudera</name>
<url>https://repository.cloudera.com/artifactory/cloudera-repos/</url>
</repository>
</repositories>
<dependencies>
<!--添加scala依赖-->
<dependency>
<groupId>org.scala-lang</groupId>
<artifactId>scala-library</artifactId>
<version>${scala.version}</version>
</dependency>
<!--添加spark-code的依赖,scala版本2.11-->
<dependency>
<groupId>org.apache.spark</groupId>
<artifactId>spark-core_2.11</artifactId>
<version>${spark.version}</version>
</dependency>
<!--添加hadoop-client的依赖-->
<dependency>
<groupId>org.apache.hadoop</groupId>
<artifactId>hadoop-client</artifactId>
<version>${hadoop.version}</version>
</dependency>
</dependencies>
测试代码:
传入参数:

WordCountApp.scala
package com.ruozedata
import org.apache.spark.{SparkConf, SparkContext}
object WordCountApp extends App {
val conf = new SparkConf()
val sc = new SparkContext(conf)
//输入(用args()传入参数,非硬编码)
val dataFile = sc.textFile(args(0))
//业务逻辑
val outputFile = dataFile.flatMap(_.split(",")).map((_,1)).reduceByKey(_+_)
//输出文件
outputFile.saveAsTextFile(args(1))
//关闭流(输入流)
sc.stop()
}
CLI中测试:

打包提交到服务器并执行:








Linux下本地模式提交到服务器: (在脚本中配置)
$ /home/hadoop/app/spark/bin/spark-submit \
--class com.ruozedata.WordCountApp \
--master local[2] \
--name WordCountApp \
/home/hadoop/lib/spark/SparkCodeApp-1.0.jar \
/wc_input/ /wc_output
具体配置参考Spark官网:
http://spark.apache.org/docs/2.2.0/rdd-programming-guide.html
http://spark.apache.org/docs/2.2.0/configuration.html
http://spark.apache.org/docs/2.2.0/submitting-applications.html
最新文章
- 【原创】Kakfa utils源代码分析(二)
- QT5.5.0版本添加icon图标步骤
- 05章 OGNL
- windows 命令修改IP
- MSChart使用之动态生成多个多行ChartArea
- Android界面优化方法
- UVa 442 Matrix Chain Multiplication(矩阵链,模拟栈)
- 采用rest接口对接而非webservice
- ZABBIX自定义用户KEY与参数USERPARAMETERS监控脚本输出
- 201521123067 《Java程序设计》第13周学习总结
- CSS选择器、样式、盒模型
- Zxing2.1扫描取景框变形问题解决
- sql查询语句示例
- Android 编程下通过 zipalign 对 APK 文件进行优化
- linux系统编程之信号(七):被信号中断的系统调用和库函数处理方式
- Linux下svn的安装与部署
- Vue 不睡觉教程1-从最土开始
- C# 类库下 读取不到config里节点的问题
- 获取ArcGIS安装路径
- iframe的应用量还是这么大
热门文章
- MYSQL第二课
- 海思Hi3519A MPP从入门到精通(一 系统概述)
- Codeforces Round #604 (Div. 2) 练习A,B题解
- 在Python中用许多点找到两个最远点的点
- Springboot项目启动不了。也不打印任何日志信息。
- css3/sass 样式记录
- luoguP4094 [HEOI2016/TJOI2016]字符串
- eclipse git pull 代码 failed 并且报DIRTY_WORKTREE.classpath
- NG-ZORRO 使用相关
- 2019 SDN阅读作业