【云计算】搭建Spark On Yarn集,编写Spark scala程序,求解n个数的最大值

1.环境准备

虚拟机:vmware workstation16

linux版本:centOS 7

linux 分布式环境:hadoop 3.1.1,spark 2.4.0 scala 2.11.8

编辑器:JetBrains idea 2022

首先要启动hadoop和spark,如果没有安装,请先安装并配置

spark安装:【云计算】3台虚拟机完成Spark Yarn集群部署并编写Scala应用程序实现单词计数统计_艾伦拜尔AllenBayer的博客-CSDN博客1.准备环境虚拟机:vmware workstation16linux版本:centOS 7linux 分布式环境:hadoop 3.1.1(1)创建三台虚拟机,并准备好linux环境和hadoop,确保hadoop集群能成功运行hadoop启动成功后,网页DataNode页面如下主机为master(在网页上不显示),从机1为slave1,从机2为slave2,这是在配置hadoop时为三台机器配置的名字。(2)准备安装文件需要的安装文件如下spark 2..https://blog.csdn.net/qq_42784183/article/details/124300768?spm=1001.2014.3001.5502

2.编写Scala程序实现

打开我们的idea编辑器,创建Scala项目

如何在idea中创建Scala项目:

【云计算】3台虚拟机完成Spark Yarn集群部署并编写Scala应用程序实现单词计数统计_艾伦拜尔AllenBayer的博客-CSDN博客1.准备环境虚拟机:vmware workstation16linux版本:centOS 7linux 分布式环境:hadoop 3.1.1(1)创建三台虚拟机,并准备好linux环境和hadoop,确保hadoop集群能成功运行hadoop启动成功后,网页DataNode页面如下主机为master(在网页上不显示),从机1为slave1,从机2为slave2,这是在配置hadoop时为三台机器配置的名字。(2)准备安装文件需要的安装文件如下spark 2..https://blog.csdn.net/qq_42784183/article/details/124300768?spm=1001.2014.3001.5502创建scala object,项目结构如下

 写入我们的代码

package com.ldu

import org.apache.hadoop.conf.Configuration
import org.apache.hadoop.fs.FileSystem
import org.apache.spark.{SparkConf, SparkContext}

object max_wangchen {
  def main(args: Array[String]): Unit = {

    // 创建一个Scala版本的Spark Context
    val conf = new SparkConf().setAppName("maxvalue6564").setMaster("local")
    val sc = new SparkContext(conf)

    val h_conf = sc.hadoopConfiguration

    h_conf.set("fs.hdfs.impl", classOf[org.apache.hadoop.hdfs.DistributedFileSystem].getName)
    h_conf.set("fs.file.impl", classOf[org.apache.hadoop.fs.LocalFileSystem].getName)



    sc.setLogLevel("ERROR")
    val lines = sc.textFile("hdfs://master6564:9000/wordcount/word.txt").filter(_.trim().length>0).map(line => ("key",line.trim.toInt)).groupByKey().map(x =>{
      var min = Integer.MAX_VALUE
      var max = Integer.MIN_VALUE
      for(num<- x._2){
        if(num > max) {
          max = num
        }
        if(num < min) {
          min = num
        }
      }
      (max,min)
    })
    lines.saveAsTextFile("hdfs://master6564:9000/wordcount/result2")


  }


}

注意这里的hdfs地址要改为自己的

输入数据展示(word.txt)

然后上传到hadoop中

# hadoop fs -put word.txt /wordcount

3.项目打包

这里我们使用idea的maven自动打包工具,步骤如下

点击右侧maven

 先进行clean

然后编译

最后进行打jar包

 完成后,我们会在target中,找到我们刚刚打的jar包

 4.在spark中运行jar包

在centos终端中执行以下命令

[root@master6564 spark]# spark-submit --class com.ldu.max_wangchen  --master yarn /home/master6564/workspace4/wordcount/target/wordcount-1.0-SNAPSHOT.jar

运行成功

运行命令,查看hdfs中的结果

[root@master6564 bin]# hdfs dfs -text /wordcount/result2/part*

结果:

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值