这篇文章包括以下内容
(1)IDEA中scala的安装
(2)hdfs简单的使用,没有写它的部署
(3) 使用scala编写简单的wordcount,输入文件和输出文件使用参数传递
(4)IDEA打包和提交方法
一 IDEA中scala的安装
(1) 下载IEDA 装jdk
(2) 启动应用程序 选择插件(pluigin)查看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并刷新
1 25 4.0.0 6 7com.xuebusi 8spark 91.0-SNAPSHOT 10 1112 21 221.7 131.7 14UTF-8 15 16 172.10.6 181.6.2 192.6.4 2023 43 4424 25 29org.scala-lang 26scala-library 27${scala.version} 2830 31 35 36org.apache.spark 32spark-core_2.10 33${spark.version} 3437 38 42org.apache.hadoop 39hadoop-client 40${hadoop.version} 4145 105src/main/scala 46src/test/scala 4748 10449 68 69net.alchim31.maven 50scala-maven-plugin 513.2.2 5253 6754 6655 58compile 56testCompile 5759 6560 64-make:transitive 61-dependencyfile 62${project.build.directory}/.scala_dependencies 6370 103org.apache.maven.plugins 71maven-shade-plugin 722.4.3 7374 10275 101package 7677 79shade 7880 10081 90 91 98 9982 89*:* 8384 88META-INF/*.SF 85META-INF/*.DSA 86META-INF/*.RSA 87
这个时候在左侧的依赖就会出现很多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 //创建SparkConf10 val conf: SparkConf = new SparkConf()11 //创建SparkContext12 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 //单词计数,每个单词每出现一次就计数为118 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)验证
好了,到此结束,加油骚年