spark 学习之 IDEA 配置 spark 并 wordcount 提交集群

发布于: 2020 年 08 月 16 日
spark学习之IDEA配置spark并wordcount提交集群

这篇文章包括以下内容



  • IDEA中scala的安装



  • hdfs简单的使用,没有写它的部署



  • 使用scala编写简单的wordcount,输入文件和输出文件使用参数传递



  • IDEA打包和提交方法



一 IDEA中scala的安装



(1) *下载IEDA 装jdk*



(2) *启动应用程序 选择插件(pluigin)查看scala版本,然后去对应的网站下载*https://plugins.jetbrains.com/plugin/1347-scala





(4) *将刚才下载的scala zip文件移动到IDEA的plugin下面*



(5) *回到启动页面 选择plugin*



**

**



选择从磁盘安装,然后重启



**

**



(6)新建项目 scala项目 如果没有scala sdk 那么windows下一个导入进去(注意版本一致)



二 提交wordcount并提交jar**



(1) 新建Maven项目



file->project->maven->next-->设置工程名称和路径(路径不要为中文)--->完成



**

**







(2)将pol导入依赖,粘贴下面代码以后,需要点击右侧的maven project并刷新



<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>com.xuebusi</groupId>
<artifactId>spark</artifactId>
<version>1.0-SNAPSHOT</version>
<properties>
<maven.compiler.source>1.7</maven.compiler.source>
<maven.compiler.target>1.7</maven.compiler.target>
<encoding>UTF-8</encoding>
<!-- 这里对jar包版本做集中管理 -->
<scala.version>2.10.6</scala.version>
<spark.version>1.6.2</spark.version>
<hadoop.version>2.6.4</hadoop.version>
</properties>
<dependencies>
<dependency>
<!-- scala语言核心包 -->
<groupId>org.scala-lang</groupId>
<artifactId>scala-library</artifactId>
<version>${scala.version}</version>
</dependency>
<dependency>
<!-- spark核心包 -->
<groupId>org.apache.spark</groupId>
<artifactId>spark-core_2.10</artifactId>
<version>${spark.version}</version>
</dependency>
<dependency>
<!-- hadoop的客户端,用于访问HDFS -->
<groupId>org.apache.hadoop</groupId>
<artifactId>hadoop-client</artifactId>
<version>${hadoop.version}</version>
</dependency>
</dependencies>
<build>
<sourceDirectory>src/main/scala</sourceDirectory>
<testSourceDirectory>src/test/scala</testSourceDirectory>
<plugins>
<plugin>
<groupId>net.alchim31.maven</groupId>
<artifactId>scala-maven-plugin</artifactId>
<version>3.2.2</version>
<executions>
<execution>
<goals>
<goal>compile</goal>
<goal>testCompile</goal>
</goals>
<configuration>
<args>
<arg>-make:transitive</arg>
<arg>-dependencyfile</arg>
<arg>${project.build.directory}/.scala_dependencies</arg>
</args>
</configuration>
</execution>
</executions>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-shade-plugin</artifactId>
<version>2.4.3</version>
<executions>
<execution>
<phase>package</phase>
<goals>
<goal>shade</goal>
</goals>
<configuration>
<filters>
<filter>
<artifact>*:*</artifact>
<excludes>
<exclude>META-INF/*.SF</exclude>
<exclude>META-INF/*.DSA</exclude>
<exclude>META-INF/*.RSA</exclude>
</excludes>
</filter>
</filters>
<!-- 由于我们的程序可能有很多,所以这里可以不用指定main方法所在的类名,我们可以在提交spark程序的时候手动指定要调用那个main方法 -->
<!--
<transformers>
<transformer implementation="org.apache.maven.plugins.shade.resource.ManifestResourceTransformer">
<mainClass>com.xuebusi.spark.WordCount</mainClass>
</transformer>
</transformers>
-->
</configuration>
</execution>
</executions>
</plugin>
</plugins>
</build>
</project>





这个时候在左侧的依赖就会出现很多maven包,注意要有网络哈





(2)修改pol部分内容如下,错误的内容会出现红色的字样哦



在pom.xml文件中还有错误提示,因为src/main/和src/test/这两个目录下面没有scala目录。





(3) 右击项目src,新建scala class,选择object



(4) 编写代码



1 import org.apache.spark.rdd.RDD
2 import org.apache.spark.{SparkConf, SparkContext}
3
4 /**
5 * Created by SYJ on 2017/1/23.
6 */
7 object WordCount {
8 def main(args: Array[String]) {
9 //创建SparkConf
10 val conf: SparkConf = new SparkConf()
11 //创建SparkContext
12 val sc: SparkContext = new SparkContext(conf)
13 //从文件读取数据
14 val lines: RDD[String] = sc.textFile(args(0))
15 //按空格切分单词
16 val words: RDD[String] = lines.flatMap(_.split(" "))
17 //单词计数,每个单词每出现一次就计数为1
18 val wordAndOne: RDD[(String, Int)] = words.map((_, 1))
19 //聚合,统计每个单词总共出现的次数
20 val result: RDD[(String, Int)] = wordAndOne.reduceByKey(_+_)
21 //排序,根据单词出现的次数排序
22 val fianlResult: RDD[(String, Int)] = result.sortBy(_._2, false)
23 //将统计结果保存到文件
24 fianlResult.saveAsTextFile(args(1))
25 //释放资源
26 sc.stop()
27 }
28 }



(5) 打包

将编写好的WordCount程序使用Maven插件打成jar包,打包的时候也要保证电脑能够联网,因为Maven可能会到中央仓库中下载一些依赖:



双击package





打包成功提示





(6) 在jar包上面右击 copy path找到jar在win下的路径并上传到集群



(7) 启动hdfs 因为只用到hdfs,创建一个目录 hdfs dfs -mkdir /wc 然后创建一个txt文件



/hadoop/sbin/start-dfs.sh



(8)启动集群



/spark/sbin/start-all.sh



(9) jps查看master和worker是否都起来



(10) 提交给集群 后面两个参数分别为输入输出文件



bin/spark-submit --class spark.wordCount --executor-memory 512m --total-executor-cores 2 /home/hadoop/hadoop/spark-2.3.1-bin-hadoop2.7/spark_testJar/ljSparkCount-1.0-SNAPSHOT.jar hdfs://slave104:9000/wc hdfs://slave104:9000/wc/output



(11)验证





好了,到此结束,加油骚年



发布于: 2020 年 08 月 16 日 阅读数: 39
用户头像

公众号【我是程序员小贱】干货分享 2019.10.15 加入

计算机小硕,热爱分享

评论

发布
暂无评论
spark学习之IDEA配置spark并wordcount提交集群