Maven
maven
1. maven的安装配置:
1)下载maven
http://mirror.bit.edu.cn/apache/maven/maven-3/
注意:
Maven 3.3 要求 JDK 1.7 或以上
Maven 3.2 要求 JDK 1.6 或以上
Maven 3.0/3.1 要求 JDK 1.5 或以上
2) 解压安装
tar -zxvf 存放路径 -C 安装路径
3) 配置环境量
vim /etc/profile
#maven
export MAVEN_HOME=/home/lyb/maven
export PATH=
M
A
V
E
N
H
O
M
E
/
b
i
n
:
MAVEN_HOME/bin:
MAVENHOME/bin:PATH
source /etc/profile
mvn -v (或者version) (查看Maven版本)
2.建立一个项目
路径:File -> New -> Project, 如下:
选择Maven,下一步,填写GroupId、ArtifactId,点击下一步
GroupId:项目所属
ArtifactId: 项目名称
如下图,标注部分是Maven的仓库配置信息,如有需要可根据自己实际情况修改,此处使用默认配置,直接点击下一步继续操作。
到此处,基本配置完成,点击finish,这样一个Maven项目就搭建好了。
## 3.建立完成后
(1)删除无用的文件
(2)把maven /conf /settings.xml 复制到生成的 .m2/下 (.m2是创建自动生成的在maven同级目录下)
(3)修改.xml的配置在160行(:set number //看行数)
a.
alimaven
aliyun maven
http://maven.aliyun.com/nexus/content/groups/public/
central
b.设置jdk,sdk为全局变量(idea)
jdk:file/project structure/project
sdk:file/project structure/Global library
c.配置maven
①:file/setting/Build Executor/BuildTool/Maven/homedir
②:file/setting/Build Executor/BuildTool/Remote Jar Respositoies/修改网址改为(http://maven.aliyun.com/nexus/content/groups/public)
d.如果想把他们设置为全局:file/other Setting /设置其他
4.书写项目
(1) 写pom.xml (所要用的jar )
在https://mvnrepository.com/ 可以找到所要用的jar包信息
cn.xdl.mavenProject
mavenProject
1.0-SNAPSHOT
// spark用的版本
<spark.version>2.3.3</spark.version>
// scala用的版本
<scala.version>2.11</scala.version>
// 包名
org.apache.spark
//要用jar名称
spark-core_
s
c
a
l
a
.
v
e
r
s
i
o
n
<
/
a
r
t
i
f
a
c
t
I
d
>
/
/
j
a
r
包
版
本
号
<
v
e
r
s
i
o
n
>
{scala.version}</artifactId> //jar包版本号 <version>
scala.version</artifactId>//jar包版本号<version>{spark.version}
在https://mvnrepository.com/search?q=spark
网页中按照自己的spark版本添加依赖。如下:
<!-- https://mvnrepository.com/artifact/org.apache.spark/spark-core -->
<dependency>
<groupId>org.apache.spark</groupId>
<artifactId>spark-core_2.11</artifactId>
<version>2.3.3</version>
</dependency>
<!-- https://mvnrepository.com/artifact/org.apache.spark/spark-sql -->
<dependency>
<groupId>org.apache.spark</groupId>
<artifactId>spark-sql_2.11</artifactId>
<version>2.3.3</version>
</dependency>
<!-- https://mvnrepository.com/artifact/org.apache.spark/spark-streaming -->
<dependency>
<groupId>org.apache.spark</groupId>
<artifactId>spark-streaming_2.11</artifactId>
<version>2.3.3</version>
<scope>provided</scope>
</dependency>
<!-- https://mvnrepository.com/artifact/org.apache.spark/spark-mllib -->
<dependency>
<groupId>org.apache.spark</groupId>
<artifactId>spark-mllib_2.11</artifactId>
<version>2.3.3</version>
<scope>runtime</scope>
</dependency>
<!-- https://mvnrepository.com/artifact/org.apache.spark/spark-hive -->
<dependency>
<groupId>org.apache.spark</groupId>
<artifactId>spark-hive_2.11</artifactId>
<version>2.3.3</version>
<scope>provided</scope>
</dependency>
<!-- https://mvnrepository.com/artifact/org.apache.spark/spark-repl -->
<dependency>
<groupId>org.apache.spark</groupId>
<artifactId>spark-repl_2.11</artifactId>
<version>2.3.3</version>
<scope>provided</scope>
</dependency>
<!-- https://mvnrepository.com/artifact/org.apache.spark/spark-graphx -->
<dependency>
<groupId>org.apache.spark</groupId>
<artifactId>spark-graphx_2.11</artifactId>
<version>2.3.3</version>
</dependency>
(2) 编写项目
import org.apache.spark.{SparkConf, SparkContext}
object WordCount {
def main(args: Array[String]): Unit = {
/**创建spark配置连接
setAppName(“”)设置应用程序名称
setMaster(“”)设置模式运行方式
导成jar包时把set给删除//因为虚拟机跑时会加上这些配置**/
val spark = new SparkConf().setAppName(“”).setMaster(“”)
//创建SparkContext对象
val sparkContext= new SparkContext(spark)
//读文件
val word=sparkContext.textFile("hdfs://master:9000/word")
//压平(每读一行根据空格拆分并压实为集合)原集合不变
val r=word.flatMap(_.split(" "))
val result
//1.压平
//2.计数变为元组(k,1)
//3.根据Key,value相加
result=word.flatMap(_.split(" ")).map((_,1)).reduceByKey(_+_)
println(result)
//4.存储到hdfs
result.saveAsTextFile("hdfs://master:9000/word_result")
}
}
5.导成jar包
setMaster("")要去掉,虚拟机中运行master靠参数给定
a.运行成功后,可以将代码打包成 jar 发送到 spark 集群上运行。 步骤如下:点击"File",然后选择"project Structure"
b.除其他不需要的依赖包,如下图所示,删除其他不需要的包,留下:
这两个
注意:output directory 的路径,此处是导出 jar 的路径。
c.执行 bulid 构建jar
jar 包导出以后就可以在spark上运行了
spark-submit --master local --class WordCount MyProject.jar
注:不用local模式看不见结果
6. 原始导入jar 包
在项目中加入依赖的jar。使用简单、方便;网络环境较差的地方使用。需要手工下载依赖包,处理包的冲突。
步骤:选择 File > Project Structure … > Libraries > + > Java >