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]# 

完美呈现~~

目录
相关文章
|
3月前
|
SQL 分布式计算 资源调度
Dataphin功能Tips系列(48)-如何根据Hive SQL/Spark SQL的任务优先级指定YARN资源队列
如何根据Hive SQL/Spark SQL的任务优先级指定YARN资源队列
105 4
|
3月前
|
分布式计算 监控 Java
|
8月前
|
消息中间件 分布式计算 NoSQL
大数据-104 Spark Streaming Kafka Offset Scala实现Redis管理Offset并更新
大数据-104 Spark Streaming Kafka Offset Scala实现Redis管理Offset并更新
129 0
|
8月前
|
消息中间件 存储 分布式计算
大数据-103 Spark Streaming Kafka Offset管理详解 Scala自定义Offset
大数据-103 Spark Streaming Kafka Offset管理详解 Scala自定义Offset
168 0
|
4月前
|
分布式计算 Spark
【赵渝强老师】Spark RDD的依赖关系和任务阶段
Spark RDD之间的依赖关系分为窄依赖和宽依赖。窄依赖指父RDD的每个分区最多被一个子RDD分区使用,如map、filter操作;宽依赖则指父RDD的每个分区被多个子RDD分区使用,如分组和某些join操作。窄依赖任务可在同一阶段完成,而宽依赖因Shuffle的存在需划分不同阶段执行。借助Spark Web Console可查看任务的DAG图及阶段划分。
196 15
|
8月前
|
SQL 分布式计算 Java
大数据-96 Spark 集群 SparkSQL Scala编写SQL操作SparkSQL的数据源:JSON、CSV、JDBC、Hive
大数据-96 Spark 集群 SparkSQL Scala编写SQL操作SparkSQL的数据源:JSON、CSV、JDBC、Hive
194 0
|
8月前
|
缓存 分布式计算 大数据
大数据-90 Spark 集群 RDD 编程-高阶 RDD容错机制、RDD的分区、自定义分区器(Scala编写)、RDD创建方式(一)
大数据-90 Spark 集群 RDD 编程-高阶 RDD容错机制、RDD的分区、自定义分区器(Scala编写)、RDD创建方式(一)
143 0
|
8月前
|
分布式计算 算法 大数据
大数据-90 Spark 集群 RDD 编程-高阶 RDD容错机制、RDD的分区、自定义分区器(Scala编写)、RDD创建方式(二)
大数据-90 Spark 集群 RDD 编程-高阶 RDD容错机制、RDD的分区、自定义分区器(Scala编写)、RDD创建方式(二)
138 0
|
分布式计算 测试技术 Apache
使用IDEA开发及测试Spark的环境搭建及简单测试
一、安装JDK(具体安装省略) 二、安装Scala(具体安装省略) 三、安装IDEA   1、打开后会看到如下,然后点击OK  2、点击Next:Default plugins,进入以下页面:   3、点击Scala的Install安装(确保联网),等待完成后,出现    ...
1990 0
|
1月前
|
Java 应用服务中间件 Maven
在IntelliJ IDEA中如何配置使用Maven以创建Tomcat环境
所以,别担心这些工具看起来有些吓人,实际上这些都是为了帮助你更好的完成工作的工具,就像超市里的各种烹饪工具一样,尽管它们看起来可能很复杂,但只要你学会用,它们会为你烹饪出一道道美妙的食物。这就是学习新技能的乐趣,让我们一起享受这个过程,攀登知识的高峰!
178 27