提交第一个spark作业到集群运行
写在前面
接触spark有一段时间了,但是一直都没有真正意义上的在集群上面跑自己编写的代码。今天在本地使用scala编写一个简单的WordCount程序。然后,打包提交到集群上面跑一下...
在本地使用idea开发,由于这个程序比较简单,我这里就直接给出代码。
import org.apache.spark.{SparkConf, SparkContext}
object WordCount {
def main(args: Array[String]): Unit = {
val conf=new SparkConf().setAppName("WordCount");
val sc=new SparkContext(conf)
val input=sc.textFile("/home/hadoop/data/test1.txt")
val lines=input.flatMap(line=>line.split(" "))
val count=lines.map(word=>(word,1)).reduceByKey{case(x,y)=>x+y}
val output=count.saveAsTextFile("/home/hadoop/data/output")
}
}
代码,写完之后,就是打包成一个jar文件
接着,上传生成的架包到集群
[hadoop@hadoop000 jars]$ rz
[hadoop@hadoop000 jars]$ ls
scalafirst.jar
[hadoop@hadoop000 jars]$
我们的架包上传好了之后,我们就可以启动spark集群了
在开始之前,先来查看一下需要统计的文件:
启动master
[hadoop@hadoop000 sbin]$ pwd
/home/hadoop/app/spark-2.2.0-bin-2.6.0-cdh5.7.0/sbin
[hadoop@hadoop000 sbin]$ ./start-master.sh
starting org.apache.spark.deploy.master.Master, logging to /home/hadoop/app/spark-2.2.0-bin-2.6.0-cdh5.7.0/logs/spark-hadoop-org.apache.spark.deploy.master.Master-1-hadoop000.out
[hadoop@hadoop000 sbin]$
查看结果:
[hadoop@hadoop000 sbin]$ jps
25266 Master
25336 Jps
22815 SparkSubmit
[hadoop@hadoop000 sbin]$
可以看见master启动成功
启动worker
[hadoop@hadoop000 spark-2.2.0-bin-2.6.0-cdh5.7.0]$ ./bin/spark-class org.apache.spark.deploy.worker.Worker spark://hadoop000:7077
查看结果:
[hadoop@hadoop000 ~]$ jps
25266 Master
25356 Worker
25421 Jps
22815 SparkSubmit
[hadoop@hadoop000 ~]$
上面的worker也是成功启动了
提交作业,计算结果
[hadoop@hadoop000 spark-2.2.0-bin-2.6.0-cdh5.7.0]$ ./bin/spark-submit --master spark://hadoop000:7077 --class WordCount /home/hadoop/jars/scalafirst.jar
17/12/02 23:05:23 WARN NativeCodeLoader: Unable to load native-hadoop library for your platform... using builtin-java classes where applicable
17/12/02 23:05:25 WARN Utils: Service 'SparkUI' could not bind on port 4040. Attempting port 4041.
[Stage 0:> (0 + 0) / 2[Stage 0:> (0 + 1) / 2[Stage 0:> (0 + 2) / 2[Stage 0:=============================> (1 + 1) / 2[Stage 1:> (0 + 0) / 2[Stage 1:> (0 + 1) / 2[Stage 1:=============================> (1 + 1) / 2 [hadoop@hadoop000 spark-2.2.0-bin-2.6.0-cdh5.7.0]$
查看结果:
[hadoop@hadoop000 data]$ pwd
/home/hadoop/data
[hadoop@hadoop000 data]$ cd output/
[hadoop@hadoop000 output]$ ls
part-00000 part-00001 _SUCCESS
[hadoop@hadoop000 output]$ cat part-00000
(hive,1)
(,1)
(hello,5)
(kafka,1)
(sqoop,1)
[hadoop@hadoop000 output]$ cat part-00001
(spark,1)
(hadoop,1)
(flume,1)
(hbase,1)
[hadoop@hadoop000 output]$
可以参照之前的:
好的,到这里,我们的统计就已经完成了,可以看见结果也是没有问题的。就这样简单的三个步骤我们就在集群上面跑了我们的第一个程序。如果,你是初学者,不妨一试哟。。
提交第一个spark作业到集群运行的更多相关文章
- Spark on Yarn 集群运行要点
实验版本:spark-1.6.0-bin-hadoop2.6 本次实验主要是想在已有的Hadoop集群上使用Spark,无需过多配置 1.下载&解压到一台使用spark的机器上即可 2.修改配 ...
- 编写Spark的WordCount程序并提交到集群运行[含scala和java两个版本]
编写Spark的WordCount程序并提交到集群运行[含scala和java两个版本] 1. 开发环境 Jdk 1.7.0_72 Maven 3.2.1 Scala 2.10.6 Spark 1.6 ...
- Java --本地提交MapReduce作业至集群☞实现 Word Count
还是那句话,看别人写的的总是觉得心累,代码一贴,一打包,扔到Hadoop上跑一遍就完事了????写个测试样例程序(MapReduce中的Hello World)还要这么麻烦!!!?,还本地打Jar包, ...
- Spark wordcount开发并提交到集群运行
使用的ide是eclipse package com.luogankun.spark.base import org.apache.spark.SparkConf import org.apache. ...
- Spark本地运行成功,集群运行空指针异。
一个很久之前写的Spark作业,当时运行在local模式下.最近又开始处理这方面数据了,就打包提交集群,结果频频空指针.最开始以为是程序中有null调用了,经过排除发现是继承App导致集群运行时候无法 ...
- spark完全分布式集群搭建
最近学习Spark,因此想把相关内容记录下来,方便他人参考,也方便自己回忆吧 spark开发环境的介绍资料很多,大同小异,很多不能一次配置成功,我以自己的实际操作过程为准,详细记录下来. 1.基本运行 ...
- Spark学习笔记3(IDEA编写scala代码并打包上传集群运行)
Spark学习笔记3 IDEA编写scala代码并打包上传集群运行 我们在IDEA上的maven项目已经搭建完成了,现在可以写一个简单的spark代码并且打成jar包 上传至集群,来检验一下我们的sp ...
- 【Spark】SparkStreaming-提交到集群运行
SparkStreaming-提交到集群运行 spark streaming 提交_百度搜索 SparkStreaming示例在集群中运行 - CSDN博客
- 06、部署Spark程序到集群上运行
06.部署Spark程序到集群上运行 6.1 修改程序代码 修改文件加载路径 在spark集群上执行程序时,如果加载文件需要确保路径是所有节点能否访问到的路径,因此通常是hdfs路径地址.所以需要修改 ...
随机推荐
- JVM内存结构与垃圾回收总结
1.JVM内存模型 JVM只不过是运行在你系统上的另一个进程而已,这一切的魔法始于一个java命令.正如任何一个操作系统进程那样,JVM也需要内存来完成它的运行时操作.记住:JVM本身是硬件的一层软件 ...
- unity_实用小技巧(避免游戏对象被销毁时声音消失)
在游戏中我们使用碰撞检测,当两个物体发生碰撞时产生声音音效,代码如下: 如果使用上述代码,我们会发现,在脚本中使用AudioSource声明该声音,当该物体被销毁时声音也会立刻停止. 但是我们希望声音 ...
- Javaweb Cookie机制
Javaweb Cookie机制 一.前言 HTTP协议是一种无状态的协议,WEB服务器本身不能识别出哪些请求是同一个浏览器发出的 ,浏览器的每一次请求都是完全孤立的,即使 HTTP1.1 支持持续连 ...
- C++ switch注意事项(陷阱)
话不多说,直接上代码 int a; printf("请输入一个整数:"); scanf("%d", &a); switch (a) { : printf ...
- Badboy中创建Suite, test, step和Template
参考: http://leafwf.blog.51cto.com/872759/1111744 http://www.51testing.com/html/00/130600-1367743.html ...
- lightoj 1126 - Building Twin Towers(dp,递推)
题目链接:http://www.lightoj.com/volume_showproblem.php?problem=1126 题解:一道基础的dp就是简单的递推可以设dp[height_left][ ...
- 基于GitLab+Jenkins的DevOps赋能实践
随着微服务.中台架构的兴起,DevOps也变得非常关键,毕竟是一些基础设施层面的建设,如果搞好了对后面的研发工作会有很大的效率提升.关于DevOps本身的概念,网上已经非常多了,在园子里随便搜索一些都 ...
- 解决rac错误 ORA-01102: cannot mount database in EXCLUSIVE mode
启动 Oracle 11g RAC数据库时出现以下错误.只能启动其中一个节点(rac01),另一个节点启动不了(rac02).可能是以前修改cluster_database这个参数引起的.在Orac ...
- puttdy连接服务器报错No supported authentication methods available (server sent:publickey,gassapi-keyex,gassapi-with-mic)
No supported authentication methods available (server sent:publickey,gassapi-keyex,gassapi-with-mic) ...
- group by语法
group by 用法解析 group by语法可以根据给定数据列的每个成员对查询结果进行分组统计,最终得到一个分组汇总表. SELECT子句中的列名必须为分组列或列函数.列函数对于GROUP BY子 ...