ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

maven安装及搭建

2021-04-11 11:06:04  阅读:130  来源: 互联网

标签:Maven val -- maven conf sc spark 安装 搭建


1.maven安装及搭建 (参照word文档搭建)
a.下载maven3.3.9版本。解压至D,将m2放到解压后的路径中
b.配置本地仓库
修改{Maven_HOME}/conf/settings.xml
添加以下内容(本地仓库位置最好不要放在C盘,因为我们需要在线下载jar包):
D:\Maven-3.3.9\m2\repository
c.IDEA配置Maven
【Setting】–>【Build,Execution,Deployment】–>【Build Tools】–> 【Maven】
修改【Maven home directory】 = “D:\Maven-3.3.9”
【Users setting file】 = “D:\Maven-3.3.9\conf\settings.xml”
【local repository】 = “D:\Maven-3.3.9\m2\repository”
d.基于Maven构建Scala工程 File–>new -->Project/Modules 选择Maven
指定groupId=com.crx //说明:设置Maven库中所在的组
指定artifactId = scala //说明:设置唯一标识
指定version = 1.0.0 //说明:设置版本号

d.src -> new Director,标记为source

f.File->Modules-> Dependencies ->选择Maven scala或scala-sdk-2.11.8


http://mvnrepository.com  

搜索:scala
点击:Scala Library  -->  2.11.8

pom.xml 增加内容(改为2.11.9  查看路径下,下载版本D:\Maven-3.3.9\m2\repository\org\scala-lang\scala-library)
<dependencies> 
 <dependency>
	 <groupId>org.scala-lang</groupId>
	 <artifactId>scala-library</artifactId>
	 <version>2.11.8</version>
 </dependency> 
</dependencies>

刷新后,会出来Dependencies
下载源码包:Maven Project->Dependencies->右键Downlod Source

到manven下找到2.11.8

Lifecycle -->   mvn compile 编译源代码
				mvn deploy 发布项目
				mvn test-compile 编译测试源代码
				mvn test 运行应用程序中的单元测试
				mvn site 生成项目相关信息的网站
				mvn clean 清除项目目录中的生成结果
				mvn package 根据项目生成的jar
				mvn install 在本地Repository中安装jar

1.构建独立应用,采用Maven搭建Spark应用程序
   a. 1.新建spark的project项目构建maven项目
      2.本地仓库seting修改 右边compile (每次创建 项目本地仓库都需要修改)
      3.File -->Project Structure..选择+ -->lib 选scala -->Dependences 勾选scala-sdk-2.11.8
      4.https://mvnrepository.com/search?q=spark 
		Spark Project Core
      5.加载spark-core_2.11依赖库 -->Import Changes -->2.1.2:
      <dependencies>
		<dependency>
			<groupId>org.apache.spark</groupId>
			<artifactId>spark-core_2.11</artifactId>
			<version>2.1.2</version>
		</dependency>
	  </dependecies>
   注意:spark-core_{版本号},版本号应为scala的对应版本
         version为spark 2.1.2

   6.创建spark文件 标记为源码包
		 main -->新建文件夹 (sparkTest) -->右键Mark Directory as  -->Resources Root
   b.编写spark Driver端程序
      1).创建SparkConf对象,并指定集群模式和AppName;
	  2).创建SparkContext对象,生成sc
	  3).创建RDD
	  4).针对业务需求,编写相应的RDD操作



创建sc对象两种方式
1)spark shell: 直接可以用sc对象

2)javaAPI:先创建SparkConf,再通过SparkConf创建SparkContext

val conf = new SparkConf().setMaster("local").setAppName("wordcount")
val sc = new SparkContext(conf)



sc创建RDD3种方式 
1)由外部存储系统的数据集创建,包括本地的文件系统,还有所有Hadoop支持的数据集,比如HDFS、Cassandra、HBase等
rdd2 = sc.textFile("hdfs://slave1:9000/words.txt")


2)由一个已经存在的集合创建。
rdd1 = sc.parallelize(Array(1,2,3,4,5,6,7,8))

3)由一个已经存在的集合创建makeRDD
rdd3 = sc.makeRDD(Array(1,2,3,4,5,6,7,8)) 


例1:  
	import org.apache.spark.{SparkConf,SparkContext}
		object WordCount {
			def main(args: Array[String]): Unit = {
            //构建Spark的conf对象,并通过setMaster方法设置集群模式运行的方式{“本地”},通过setAppName方法指定应用名字
            val conf = new SparkConf().setMaster("local").setAppName("ListTest")
            val sc = new SparkContext(conf); 
            val rdd = sc.parallelize(List(1,3,5,2,56))
            println(rdd.count())
           }
        }
 例2:
	import org.apache.spark.{SparkConf,SparkContext}
	object WordCount {
	  def main(args: Array[String]): Unit = {
		//构建Spark的conf对象,并通过setMaster方法设置集群模式运行的方式{“本地”},通过setAppName方法指定应用名字
		val conf = new SparkConf().setMaster("local").setAppName("wordcount")
		val sc = new  SparkContext(conf);
		val rdd = sc.textFile("file:///E:/inputwordcount")
		//1.统计rdd的行数
		println(rdd.count()) 
	  }
	}

2.WordCount案例
  object WordCount {
  def main(args: Array[String]): Unit = {
    //构建Spark的conf对象,并通过setMaster方法设置集群模式运行的方式{“本地”},通过setAppName方法指定应用名字
    val conf = new SparkConf().setMaster("local").setAppName("wordcount")
    val sc = new  SparkContext(conf);
    val rdd = sc.textFile("file:///D:/测试数据/spark_wordcount.txt")
	
	//中间结果保存
//    val rdd1 = rdd.flatMap(x=> x.split(" "))
//    val rdd2 = rdd1.map(x=>(x,1))
//    val rdd3 = rdd2.reduceByKey((x,y)=>x+y)
	  //saveAsTextFile是无返回值类型的,所以不用接收返回类型
//    rdd3.saveAsTextFile("file:///D:/测试数据/spark_wordcount_res")


	//1)收集rdd数据到当前节点再转为list打印输出,即将磁盘的数据输出到控制台
    println(rdd.collect().toList)
	
    rdd.flatMap(_.split(" ")).map((_,1)).reduceByKey(_+_).saveAsTextFile("file:///E:/spark_wordcount_res0")
	
	
	//2)用foreach实现
    rdd2.collect().toList.foreach(println(_))
  }
  
  
  
  

总结mapreduce和spark的区别: 
mapreduce运行wordcount例子里map和reduce中间结果不保留  
spark可以保存中间结果 rdd3可以save,rdd2也可以save,所有的中间结果都可以保存起来


对应的 SQL 查询语句会是这样:
SELECT word, COUNT(*) as count FROM raw_words GROUP BY word;

标签:Maven,val,--,maven,conf,sc,spark,安装,搭建
来源: https://blog.csdn.net/weixin_40645193/article/details/115590826

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有