• Spark集群搭建记录 | 云计算[CentOS7] | Scala Maven项目访问Spark(local模式)实现单词计数


    写在前面

    本系列文章索引以及一些默认好的条件在 传送门
    要想完成Spark的配置,首先需要完成Hadoop&&Spark的配置
    Hadoop配置教程:链接
    在这里插入图片描述

    若未进行明确说明,均按照root用户操作

    step1 下载Scala IDE

    本来在Eclipse的Marketplace便可以下载,可是现在官网都寄了
    所以说只好找到之前的版本凑合来用
    下载链接
    这个软件再解压后会产生一个文件夹eclipse,所以说为了避免和先前的eclipse产生冲突或者是覆盖问题
    我们选择在也之前不同的目录下进行解压,然后进行配置

    step2 解压安装Scala IDE

    假设已经将scala-ide放置到虚拟机的某路径下,该路径不同于eclipse的路径
    假如以/usr/local为例
    我们使用tar 命令进行解压:
    tar -zxvf scala-SDK<Tab>
    然后就可以打开其中的eclipse/eclipse使用该软件:
    在这里插入图片描述
    如果说想要更方便的在桌面直接就能点击使用的话,可以直接创建软连接或者是.Desktop文件并放置到桌面,方法不在赘述

    step3 Scala 下载

    注意注意!!!
    Scala 的版本对Spark版本极其敏感,所以说为了能够下载适合已经装了的Spark版本互相兼容,还请移步官网查看并下载适配的Scala,博主下面给出对应的适配关系,来源maven仓库
    在这里插入图片描述

    博主使用的是Spark2.4.0,与这个版本兼容的有2.11/2.12
    在这里博主使用2.11版本的Scala进行配置
    cd /usr/local
    wget https://downloads.lightbend.com/scala/2.11.8/scala-2.11.8.tgz
    tar -zxvf scala-2<Tab>
    mv scala-2<Tab> scala

    step4 Scala 配置

    vim /etc/profile
    加入:

    export SCALA_HOME=/usr/local/scala
    export PATH=$PATH:$SCALA_HOME/bin
    

    source一下使其生效
    source /etc/profile
    在输入scala之后如若出现下图则代表成功:
    在这里插入图片描述
    因为在后续的过程中,均需要该环境跑集群的代码,所以说,集群的所有机器为了能够干活,都需要安装scala
    可以使用scp命令传送到集群的其他节点,或者是手动在剩余的机器重复step3 → \to step4

    step5 创建scala项目

    打开Scala ide ,并创建scala 项目:
    在这里插入图片描述
    右键单击创建好的项目,将下图的第三步换成Convert to Maven Project,因为博主已经将项目设置为Maven项目,所以说,该选项消失
    在这里插入图片描述

    step6 创建scala object

    src 目录下,我们创建一个scala object
    右键src,然后:
    在这里插入图片描述
    在里面写入代码逻辑,具体代码可以参考链接
    并根据实际情况对代码进行修改
    以上链接源代码:
    具体代码根据自己实际情况来进行修改

    import org.apache.spark.{SparkConf, SparkContext}
    
    object WordCount {
    	def main(args: Array[String]): Unit = {
    		val conf = new SparkConf()
    		conf.setAppName("wordcount")
    		conf.setMaster("spark://主机名:7077")
    		val sc = new SparkContext(conf)
    		
    		val rdd = sc.textFile("hdfs://主机名:9000/tmp/test.txt")
    		.flatMap(_.split(" ")).map((_, 1)).reduceByKey(_ + _)
    		rdd.saveAsTextFile("hdfs://主机名:9000/tmp/result")
    	}
    }
    

    step7 修改pom文件

    pom.xml文件中加入和自己实际环境适配的依赖:
    比如spark-core的话,我们就选择:
    在这里插入图片描述

    <!-- https://mvnrepository.com/artifact/org.apache.spark/spark-core -->
    <dependency>
        <groupId>org.apache.spark</groupId>
        <artifactId>spark-core_2.11</artifactId>
        <version>2.4.0</version>
    </dependency>
    
    

    以上内容要加在<dependencies></dependencies> 之间,<dependencies></dependencies><build></build>同“等级”
    至于<plugin></plugin>可以根据自己实际情况进行配置

    step8 配置项目

    右键单击项目:
    在这里插入图片描述
    选择完成后,在左侧找到scala complier
    在这里插入图片描述
    选择跟自己适配的版本,然后确定关闭
    而对于maven的相关配置,也要进行修改,在博文step3中有提及

    step9 添加依赖库(Spark的jar包)

    按照如下操作:
    在这里插入图片描述
    在弹框中:
    在这里插入图片描述
    我们需要选择spark安装目录下jars的所有jar包,博主当然是选择/usr/local/spark/jars/下的所有jar包
    点击Apply and Close即可,项目结构中也会出现相应的引用库:
    在这里插入图片描述

    step10 设置输入路径

    因为在代码中难免会涉及到路径,所以说以step6中的代码为例,需要给tmp文件夹赋予必要的权限:
    hadoop fs -chmod -R 777 /tmp
    并且将自己所需要技术的文件test.txt通过主机名:50070端口的web界面进行上传:
    在这里插入图片描述
    然后点击:
    在这里插入图片描述
    等个十几秒就好啦~:以下是结果:
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    Scala 实现的Spark local模式的配置完成

  • 相关阅读:
    判断平面的一堆点是否在两条直线上
    约数的个数 + 贪心
    划分树板子
    如何获取前端提交来得json格式数据
    post 和php://input 转
    使用Guzzle执行HTTP请求
    redis集群搭建 不用ruby
    systemctl命令
    canal 配置 多个监听 推送到不同mq
    canal 整合RabbitMQ
  • 原文地址:https://www.cnblogs.com/PushyTao/p/16196698.html
Copyright © 2020-2023  润新知