使用IDEA进行RDD编程+scala打包运行

前言

本篇文章结合上一篇文章的spark-shell编程的基础,进行了如下工作

  1. 将scala的shell中的命令整合成一个完整的.scala格式的文件
  2. 使用IDEA将程序打包上传后执行
  3. 配置IDEA连接hadoop和spark,直接在本地上运行.scala文件

安装IDEA

一、本机下载安装scala
1. 下载安装
这一步可以跳过,因为在后面可以直接在IDEA中安装scala,但是由于在线安装时间太长,这里不推荐大家在线安装,给出链接,https://www.scala-lang.org/download/,推荐大家直接下载zip,解压即用

然后有个小技巧就是可以先复制下载链接,然后可以自己修改里面的版本号来找到适合自己的版本号
2. 环境变量配置
解压完之后,将scala的bin路径放到path里面
3. 测试
打开cmd,输入scala -version,会有相应的版本号出现在这里插入图片描述
二、安装IDEA
这里给出官网链接https://www.jetbrains.com/idea/download/#section=windows
下载后安装即可
在这里插入图片描述
这里注意把环境变量选上
在这里插入图片描述
在这里插入图片描述
在这里直接安装scala插件
在这里插入图片描述
三、创建scala工程

  1. 选择Maven
    注意这里可以选择java版本
    在这里插入图片描述
  2. 填写信息
    在这里插入图片描述
  3. 选择任务存储路径
    在这里插入图片描述
  4. 选择Enable Auto-Import
    在这里插入图片描述
  5. 新建scala文件夹,并设置为源目录
    在这里插入图片描述
    右键scala
    在这里插入图片描述
  6. 添加scala支持
    在这里插入图片描述
    具体的版本看自己的选择在这里插入图片描述
  7. 新建scala文件
    在这里插入图片描述
    在这里插入图片描述
  8. 运行第一个scala程序
    object Hello_World {
     def main(args: Array[String]) {
       println("Hello World!")
     }
    }
    
  9. 运行结果
    在这里插入图片描述

打包scala程序

  1. 配置pom.xml
    下面给出一些常见的Maven依赖

    这里给出说明,下面依赖中的spark,scala,hadoop的版本号具体的限制没有那么严格,不一定要标准的使用自己的版本号,在第一次将依赖写入的时候,会下载比较长的时间,当代码里面没有语句标红之后证明依赖全部导入。

    可能有些人在写入自己的版本号之后,会发现有些语句会一直标红,这证明没有你输入版本号组合的相应的依赖包,这个时候需要适当调整版本号,下面给出的版本号的组合是可以使用的,如果改成你自己的版本号无法使用,可以尝试下面给出的版本号组合

<groupId>com.ssh.spark</groupId>
<artifactId>spark-test</artifactId>
<version>1.0-SNAPSHOT</version>

<properties>
        <spark.version>2.3.4</spark.version>
        <scala.version>2.11</scala.version>
        <hadoop.version>2.8.5</hadoop.version>
</properties>

<dependencies>
    <dependency>
        <groupId>org.apache.spark</groupId>
        <artifactId>spark-core_${scala.version}</artifactId>
        <version>${spark.version}</version>
    </dependency>

    <dependency>
        <groupId>org.apache.spark</groupId>
        <artifactId>spark-sql_${scala.version}</artifactId>
        <version>${spark.version}</version>
    </dependency>

    <dependency>
        <groupId>org.apache.spark</groupId>
        <artifactId>spark-hive_${scala.version}</artifactId>
        <version>${spark.version}</version>
    </dependency>

    <dependency>
        <groupId>org.apache.spark</groupId>
        <artifactId>spark-streaming_${scala.version}</artifactId>
        <version>${spark.version}</version>
    </dependency>

    <dependency>
        <groupId>org.apache.hadoop</groupId>
        <artifactId>hadoop-client</artifactId>
        <version>${hadoop.version}</version>
    </dependency>

    <dependency>
        <groupId>org.apache.spark</groupId>
        <artifactId>spark-mllib_${scala.version}</artifactId>
        <version>${spark.version}</version>
    </dependency>

    <dependency>
        <groupId>org.apache.hadoop</groupId>
        <artifactId>hadoop-common</artifactId>
        <version>${hadoop.version}</version>
    </dependency>

    <dependency>
        <groupId>org.apache.hadoop</groupId>
        <artifactId>hadoop-hdfs</artifactId>
        <version>${hadoop.version}</version>
    </dependency>

    <dependency>
        <groupId>org.apache.hadoop</groupId>
        <artifactId>hadoop-mapreduce-client-core</artifactId>
        <version>${hadoop.version}</version>
    </dependency>

    <dependency>
        <groupId>org.apache.hadoop</groupId>
        <artifactId>hadoop-mapreduce-client-jobclient</artifactId>
        <version>${hadoop.version}</version>
    </dependency>

</dependencies>

<build>
    <plugins>

        <plugin>
            <groupId>org.scala-tools</groupId>
            <artifactId>maven-scala-plugin</artifactId>
            <version>2.15.2</version>
            <executions>
                <execution>
                    <goals>
                        <goal>compile</goal>
                        <goal>testCompile</goal>
                    </goals>
                </execution>
            </executions>
        </plugin>

        <plugin>
            <artifactId>maven-compiler-plugin</artifactId>
            <version>3.6.0</version>
            <configuration>
                <source>1.8</source>
                <target>1.8</target>
            </configuration>
        </plugin>

        <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-surefire-plugin</artifactId>
            <version>2.19</version>
            <configuration>
                <skip>true</skip>
            </configuration>
        </plugin>

    </plugins>
</build>
  1. 开始打包
    先进这个
    在这里插入图片描述
    然后
    在这里插入图片描述
    选择主类
    在这里插入图片描述
    这里加载的包可以全部去掉,因为我们后面是提交到spark上面运行在这里插入图片描述
    这个需要保留
    在这里插入图片描述
  2. build
    在这里插入图片描述
    在这里插入图片描述
  3. 产生对应jar包
    在这里插入图片描述
  4. 提交运行
    将jar包放到spark中,即可运行
spark-submit --class Hello_World --master local idea_scala.jar

对应结果

Hello World!
2019-11-08 21:41:28 INFO  ShutdownHookManager:54 - Shutdown hook called
2019-11-08 21:41:28 INFO  ShutdownHookManager:54 - Deleting directory /tmp/spark-f134102e-5389-4e09-bc6d-191e1e49e713

配置本地连接Hadoop

  1. 本机上安装hadoop
    直接将自己安装的hadoop集群复制到本机上即可,最好不要用新下载的hadoop,因为你的hadoop文件里面会有很多的已经配置过的配置文件
  2. 配置环境变量
    在这里插入图片描述
  3. 添加资源文件
    将hadoop文件夹下配置过的core-site.xml和hdfs-site.xml放到资源文件夹内
    在这里插入图片描述
  4. 别的教程里面可能会说需要替换hadoop.dll或者要换winutils.exe,但是这里由于我们没有替换也能正常执行,所以没有进行替换,如果此时执行还出现问题可以将上述的两个文件替换一下,遇到问题可以参考下面的文章https://www.cnblogs.com/xingluo/p/9512961.html
  • 1
    点赞
  • 23
    收藏
    觉得还不错? 一键收藏
  • 5
    评论
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值