实验步骤:
1、Scala安装与环境配置
①Scala文件解压、重命名
输入:tar -xvf scala-2.12.2.tgz
然后移动到/opt/scala 里面,重命名为
输入:
mv scala-2.12.2 /opt/scala
mv scala-2.12.2 scala2.12
②环境配置
编辑 /etc/profile 文件,输入:
输入source /etc/profile使配置生效
输入 scala -version 查看是否安装成功
2,Spark配置
①Spark文件解压、重命名
输入:tar -xvf spark-1.6.3-bin-hadoop2.4-without-hive.tgz
然后移动到/opt/spark 里面,重命名
mv spark-1.6.3-bin-hadoop2.4-without-hive /opt/spark
mv spark-1.6.3-bin-hadoop2.4-without-hive spark1.6-hadoop2.4-hive
②环境配置
编辑 /etc/profile 文件
输入:
输入source /etc/profile使配置生效
③更改配置文件
切换目录,输入:
cd /opt/spark/spark1.6-hadoop2.4-hive/conf
④修改 spark-env.sh
在conf目录下,修改spark-env.sh文件,如果没有 spark-env.sh 该文件,就复制spark-env.sh.template文件并重命名为spark-env.sh。
修改这个新建的spark-env.sh文件,加入配置:
⑤修改slaves
slaves 分布式文件
在conf目录下,修改slaves文件,如果没有 slaves 该文件,就复制slaves .template文件并重命名为slaves 。
修改这个新建的slaves 文件,加入配置:
slave1
slave2
输入:
scala环境传输
spark环境传输
传输之后,便在主节点启动集群。
⑥spark启动
先启动Hadoop
切换到Spark目录下
输入cd /opt/spark/spark2.2/sbin
启动Spark ,输入start-all.sh
启动成功之后,可以使用jps命令在各个机器上查看是否成功,在浏览器查看
3、编写wordcount程序
①spark shell仅在测试和验证我们的程序时使用的较多,在生产环境中,通常会在IDE中编制程序,然后打成jar包,然后提交到集群,最常用的是创建一个Maven项目,利用Maven来管理jar包的依赖。
②配置Maven的pom.xml:
注意:配置好pom.xml以后,点击Enable Auto-Import即可;
③将src/main/java和src/test/java分别修改成src/main/scala和src/test/scala,与pom.xml中的配置保持一致;
④新建一个scala class,类型为Object,然后编写spark程序,如下所示:
import org.apache.spark.{SparkConf, SparkContext}
object WordCount {
def main(args: Array[String]): Unit = {
//创建SparkConf()并且设置App的名称
val conf = new SparkConf().setAppName("wordCount");
//创建SparkContext,该对象是提交spark app的入口
val sc = new SparkContext(conf);
//使用sc创建rdd,并且执行相应的transformation和action
sc.textFile(args(0)).flatMap(_.split(" ")).map((_ ,1)).reduceByKey(_ + _,1).sortBy(_._2,false).saveAsTextFile(args(1));
//停止sc,结束该任务 sc.stop();
}
}
⑤使用Maven打包:首先修改pom.xml中的mainClass,使其和自己的类路径对应起来:
然后,点击idea右侧的Maven Project选项,点击Lifecycle,选择clean和package,然后点击Run Maven Build等待编译完成,选择编译成功的jar包,并将该jar上传到Spark集群中的某个节点上
启动hdfs和Spark集群,使用spark-submit命令提交Spark应用,然后开始进行Spark Submit提交操作,命令如下所示:
可以在图形化页面看到多了一个Application:
最后查看执行结果即可