Scala+Spark+Hadoop+IDEA实现WordCount单词计数,上传并执行任务(简单实例-下)

简介: Scala+Spark+Hadoop+IDEA实现WordCount单词计数,上传并执行任务(简单实例-下)

Scala+Spark+Hadoop+IDEA上传并执行任务

本文接续上一篇文章,已经在IDEA中执行Spark任务执行完毕,测试成功。

上文链接:Scala +Spark+Hadoop+Zookeeper+IDEA实现WordCount单词计数(简单实例)

一、打包

1.1  将setMaster注释掉

package day05
 
import org.apache.spark.rdd.RDD
import org.apache.spark.{SparkConf, SparkContext}
 
import scala.collection.mutable
 
/**
  * 打包注意事项:1,将setMaster注释掉
  *             2,不需要打印
  */
object SparkWordCount {
 
  def main(args: Array[String]): Unit = {
    //配置信息类
    //1,setAppName(任务名称) setMaster(表示开启多少个线程运行)
    System.setProperty("hadoop.home.dir", "/usr/local/hadoop-2.7.5")
 
    val conf: SparkConf = new SparkConf().setAppName("SparkWordCount")//.setMaster("local[*]")
 
    //上下文对象
    val sc: SparkContext = new SparkContext(conf)
 
    //读取数据(数据通过数组 args进入)
    val lines: RDD[String] = sc.textFile(args(0))
 
    //处理数据
    val map01: RDD[(String, Int)] = lines.flatMap(_.split(" ")).map((_, 1))
    val wordCount: RDD[(String, Int)] = map01.reduceByKey(_ + _).sortBy(_._2, false)
 
    val wcToBuffer: mutable.Buffer[(String, Int)] = wordCount.collect().toBuffer
//    println(wcToBuffer)
    sc.stop()
  }
}

1.2 打开 clear 并打包

(1)工具栏-->view-->Tool Buttons(右侧出现 Maven Project)

(2)双击clean

(3)双击package

打包结果:(出现target、连个jar包)

注意:如果出现ClassNotFound 并且出现了只有一个Jar包的话,就将其他的没有用的类删掉,只留下当前类。

1.3 拷贝生成的Jar包

二、上传

2.1 将Jar包拷贝到指定目录下(我这儿将scala02-1.0-SNAPSHOT.jar改名为 swc.jar)

/root/swc.jar

2.2 在spark中运行

./bin/spark-submit --class day05.SparkWordCount --master spark://centos01:7077 --executor-memory 1g --total-executor-cores 2 /root/swc.jar hdfs://centos01:9000/ws hdfs://centos01:9000/outp

–class设定的是程序的入口点,也就是我们的驱动类,这点和Hadoop MapReduce 程序很相似。

–master是我们设置的master URL,这里官方有详细的参数列表:

  • local:在本地的单线程运行
  • local[k]:在本地多线程运行,运行线程数为K
  • local[*]:在本地多线程运行,尽可能多的线程数量
  • spark://HOST:PORT :连接上spark单点模式运行,端口PORT是提前配置好的,默认端口7077
  • mesos://HOST:PORT :连接上mesos(好像是一种集群支持工具,没有深入研究)
  • yarn :基于Hadoop的yarn运行,集群的位置在 HADOOP_CONF_DIR ,YARN_CONF_DIR这两个变量指定的位置

2.3 从Web ui查看信息是否上传成功。

(1)查看spark任务

(2)查看hdfs 文件上传

(3)通过命令来查看内容。

[root@centos01 spark-1.6.3-bin-hadoop2.6]# hdfs dfs -cat /outp/part-00000
(hello,12)
(java,9)
[root@centos01 spark-1.6.3-bin-hadoop2.6]# hdfs dfs -cat /outp/part-00001
(scala,7)
(new,7)
(work,7)
(python,5)
[root@centos01 spark-1.6.3-bin-hadoop2.6]# hdfs dfs -cat /outp/part-00002
(javaScript,4)
(jvm,4)
(world,3)
[root@centos01 spark-1.6.3-bin-hadoop2.6]# 

完美呈现~~

目录
相关文章
|
存储 缓存 分布式计算
Spark任务OOM问题如何解决?
大家好,我是V哥。在实际业务中,Spark任务常因数据量过大、资源分配不合理或代码瓶颈导致OOM(Out of Memory)。本文详细分析了各种业务场景下的OOM原因,并提供了优化方案,包括调整Executor内存和CPU资源、优化内存管理策略、数据切分及减少宽依赖等。通过综合运用这些方法,可有效解决Spark任务中的OOM问题。关注威哥爱编程,让编码更顺畅!
697 3
|
SQL 分布式计算 DataWorks
DataWorks产品使用合集之如何开发ODPS Spark任务
DataWorks作为一站式的数据开发与治理平台,提供了从数据采集、清洗、开发、调度、服务化、质量监控到安全管理的全套解决方案,帮助企业构建高效、规范、安全的大数据处理体系。以下是对DataWorks产品使用合集的概述,涵盖数据处理的各个环节。
288 2
|
8月前
|
SQL 分布式计算 资源调度
Dataphin功能Tips系列(48)-如何根据Hive SQL/Spark SQL的任务优先级指定YARN资源队列
如何根据Hive SQL/Spark SQL的任务优先级指定YARN资源队列
283 4
|
8月前
|
分布式计算 监控 Java
|
9月前
|
分布式计算 Spark
【赵渝强老师】Spark RDD的依赖关系和任务阶段
Spark RDD之间的依赖关系分为窄依赖和宽依赖。窄依赖指父RDD的每个分区最多被一个子RDD分区使用,如map、filter操作;宽依赖则指父RDD的每个分区被多个子RDD分区使用,如分组和某些join操作。窄依赖任务可在同一阶段完成,而宽依赖因Shuffle的存在需划分不同阶段执行。借助Spark Web Console可查看任务的DAG图及阶段划分。
389 15
|
分布式计算 大数据 Java
大数据-86 Spark 集群 WordCount 用 Scala & Java 调用Spark 编译并打包上传运行 梦开始的地方
大数据-86 Spark 集群 WordCount 用 Scala & Java 调用Spark 编译并打包上传运行 梦开始的地方
233 1
大数据-86 Spark 集群 WordCount 用 Scala & Java 调用Spark 编译并打包上传运行 梦开始的地方
|
消息中间件 分布式计算 Java
Linux环境下 java程序提交spark任务到Yarn报错
Linux环境下 java程序提交spark任务到Yarn报错
184 5
|
SQL 机器学习/深度学习 分布式计算
Spark适合处理哪些任务?
【9月更文挑战第1天】Spark适合处理哪些任务?
420 3
|
存储 分布式计算 供应链
Spark在供应链核算中应用问题之通过Spark UI进行任务优化如何解决
Spark在供应链核算中应用问题之通过Spark UI进行任务优化如何解决

相关实验场景

更多