在多台阿里云服务器上进行Spark部署及wordcount实验

一、安装Scala
1.到官网下载Scala安装压缩包,本次试验下载的为2.12.8版本。
2.h1用户下新建Scala文件夹,并将下载好的压缩包解压缩到Scala文件夹中。
3.配置 /etc/profile文件
在这里插入图片描述
4.source /etc/profile使环境变量配置生效。
二、安装Spark
1.到官网下载Spark安装压缩包,本次试验下载的为2.4.0版本。
2.在h1用户下新建Spark文件夹,并将下载好的压缩包解压到Spark文件夹中。
3.进入 /con文件夹中对Spark进行配置:
4.配置spark-env.sh文件:

export SCALA_HOME=/home/h1/Scala/scala-2.12.8
export JAVA_HOME=/usr/java/jdk1.8.0_191
export SPARK_WORKER_MEMORY=1g
export SPARK_MASTER_IP=master
export MASTER=spark://master:7077

5.修改conf/slaves文件
在slaves文件中添加slave1
6.使用scp命令将master上的scala及spark文件拷到slave1机器上,并修改环境变量使其生效。
三、启动集群
1.start-all.sh启动hadoop集群。
2.然后切到spark安装目录下的sbin文件夹中使用./start-all.sh启动spark。
3.使用jps可以查看到相应进程

四、WordCount实验
1.安装sbt

echo "deb https://dl.bintray.com/sbt/debian /" | sudo tee -a /etc/apt/sources.list.d/sbt.list
sudo apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv 2EE0EA64E40A89B84B2DF73499E82A75642AC823
sudo apt-get update
sudo apt-get install sbt

2.sbt默认安装到了/usr/bin文件夹下。
3.在h1用户下新建sparkapp文件夹。

mkdir  ~/sparkapp

并创建程序所需的文件夹结构:

mkdir -p ~/sparkapp/src/main/scala 

4.使用下列命令创建一个Wordcount.scala文件,并写入代码:

import org.apache.spark._
    import org.apache.spark.SparkContext._

        object WordCount {
          def main(args: Array[String]){
            val conf = new SparkConf()
            val sc = new SparkContext(conf)
            val line = sc.textFile(args(0))

      val result = line.flatMap(_.split("[^a-zA-Z]+")).map((_, 1)).reduceByKey(_+_)
            result.saveAsTextFile(args(1))
            sc.stop()
          }
        }
~                

5.vim ~/sparkapp/WordCount.sbt创建一个sbt文件,并声明依赖关系:
在这里插入图片描述
6.使用/usr/bin/sbt package进行打包
在这里插入图片描述
在这里插入图片描述

显示success时表明打包成功,在~/sparkapp/target/scala-2.11下生成了wordcount_2.11-1.0.jar包。
7.在h1目录下新建spark.txt文件用于wordcount实验,并写入内容:we are good
8.并将.txt文件上传到hdfs中。
9.切换到spark下的bin目录中,使用./spark-submit --class “WordCount” ~/sparkapp/target/scala-2.11/wordcount_2.11-1.0.jar /Spark/spark.txt /Spark/out命令执行任务
在这里插入图片描述
在这里插入图片描述
10.使用cat命令可查看实验结果。
在这里插入图片描述

注意:
1.机器上安装的Scala版本可能会与编译Spark的Scala版本不同,会导致sbt打包的jar包出现版本冲突错误,应在.sbt文件中声明依赖关系时使用Spark编译的Scala版本,可在Spark的jars文件夹中查看编译Spark的Scala版本。
2.注意权限问题。

发布了14 篇原创文章 · 获赞 36 · 访问量 8243

猜你喜欢

转载自blog.csdn.net/weixin_42047699/article/details/89191620
今日推荐