spark-submit,以kmeans为例

本地模式:

使用setMaster("local"),在idea中直接右键run即可

import org.apache.log4j.{ Level, Logger }
import org.apache.spark.{ SparkConf, SparkContext }
import org.apache.spark.mllib.clustering._
import org.apache.spark.mllib.linalg.Vectorsobject test {def main(args: Array[String]): Unit = {// 1. 构造spark对象val conf = new SparkConf().setMaster("yarn-client").setAppName("KMeans").set("spark.driver.memory", "512m").set("spark.executor.memory", "512m")val sc = new SparkContext(conf)println("mode:"+sc.master)// 去除多余的warn信息// 2. 读取样本数据,LIBSVM格式val data = sc.textFile("file:///test/kmeans_data.txt")val parsedData = data.map(s => Vectors.dense(s.split(' ').map(_.toDouble))).cache()// 3. 新建KMeans模型,并训练val model = KMeans.train(parsedData,2,20)// 打印聚类中心model.clusterCenters.foreach(println)}
}

也可以读取hdfs的文件:

val data = sc.textFile("file:///test/kmeans_data.txt")

yarn模式:

首先打jar包,可以用idea也可以用sbt

然后选择build --》build artifacts,test --》build,

然后在工程目录的子目录下会生成对应的jar文件:

在src文件的旁的/out/artifacts中找到我们需要的test.jar

复制到好找到的目录,如/export/spark_jar/

[root@master ~]# spark-submit --class test --master yarn file:///export/spark_jar/test.jar

结果:

spark-submit命令参数:

./bin/spark-submit --class org.apache.spark.examples.SparkPi \

--master yarn \

--deploy-mode cluster \

--driver-memory 1g \

--executor-memory 1g \

--executor-cores 1 \

--queue thequeue \

examples/target/scala-2.11/jars/spark-examples*.jar 10

遇到的错误:

1.内存不足:

diagnostics: Application application_1555606869295_0001 failed 2 times due to AM Container for appattempt_1555606869295_0001_000002 exited with exitCode: -103

Failing this attempt.Diagnostics: [2019-04-19 01:02:32.548]Container [pid=18294,containerID=container_1555606869295_0001_02_000001] is running 125774336B beyond the 'VIRTUAL' memory limit. Current usage: 75.3 MB of 1 GB physical memory used; 2.2 GB of 2.1 GB virtual memory used. Killing container.

Dump of the process-tree for container_1555606869295_0001_02_000001 :

Container要用2.2GB的内存,而虚拟内存只有2.1GB,不够用了,所以Kill了Container

我的SPARK-EXECUTOR-MEMORY设置的是1G,即物理内存是1G,Yarn默认的虚拟内存和物理内存比例是2.1,也就是说虚拟内存是2.1G,小于了需要的内存2.2G。解决的办法是把拟内存和物理内存比例增大,在yarn-site.xml中增加一个设置:

解决方法:

yarn-site.xml中增加一个设置:

<property> <name>yarn.nodemanager.vmem-pmem-ratio</name> <value>2.5</value> </property>

修改hadoop的yarn-site.xml,不检查一些东西

<property> <name>yarn.nodemanager.vmem-check-enabled</name> <value>false</value>
</property>
<property> <name>yarn.nodemanager.pmem-check-enabled</name> <value>false</value>
</property>

2.警告warn:Neither spark.yarn.jars nor spark.yarn.archive is set, falling back to uploading libraries under SPARK_HOME.

原因:

原因是因为Spark提交任务到yarn集群,需要上传Hadoop相关yarn的jar包,只是warn,可以不管

解决办法:

把yarn的jar包上传到hdfs,修改配置文件指定路径即可

(1)上传

[root@hadoop00 ~]# hadoop fs -mkdir -p /spark/jars

[root@hadoop00 ~]# hadoop fs -ls /

[root@hadoop00 ~]# hadoop fs -put /export/servers/spark-2.3.1-bin-hadoop2.7/jars/* /spark/jars/

(2)在spark的conf的spark-default.conf ,添加: spark.yarn.jars hdfs://192.168.12.129:9000//spark/jars/*

(3)重新运行,warn消失

[root@hadoop00 ~]# spark-shell --master yarn --deploy-mode client

运行spark——2.spark-submit相关推荐

  1. spark任务shell运行_了解Spark 应用的一生

    Spark从被创造至今已经成为了大数据计算引擎中不可或缺的一环,虽然Spark非常的优秀但相比于其他的开源框架依然有着比较高的学习门槛,希望能够通过一种有结构性的,简单直接的方式,为Spark的初学者 ...

  2. Spark之Spark角色介绍及运行模式

    Spark之Spark角色介绍及运行模式 集群角色 运行模式 1. 集群模式 从物理部署层面上来看,Spark主要分为两种类型的节点,Master节点和Worker节点: Master节点主要运行集群 ...

  3. 【spark】Spark环境搭建(运行模式)

    一.local本地模式 解压重命名 cd /export/servers tar spark-2.2.0-bin-2.6.0-cdh5.14.0.tgz mv spark-2.2.0-bin-2.6. ...

  4. 在IntelliJ IDEA中创建和运行java/scala/spark程序

    本文将分两部分来介绍如何在IntelliJ IDEA中运行Java/Scala/Spark程序: 基本概念介绍 在IntelliJ IDEA中创建和运行java/scala/spark程序 基本概念介 ...

  5. Spark之 spark简介、生态圈详解

    来源:http://www.cnblogs.com/shishanyuan/p/4700615.html 1.简介 1.1 Spark简介 Spark是加州大学伯克利分校AMP实验室(Algorith ...

  6. 大数据入门之分布式计算框架Spark(3) -- Spark Streaming

    1.概述 Spark Streaming将不同的数据源,经过处理之后,结果输出到外部文件系统. 特点:低延时:能从错误中高效地恢复过来:能够运行在成百上千的节点上:能够将批处理.机器学习.图计算等子框 ...

  7. [Spark进阶]--Spark配置参数说明

    感谢原文链接:http://blog.javachen.com/2015/06/07/spark-configuration.html 参考官方原文:https://spark.apache.org/ ...

  8. livy使用样例_[Spark]使用Spark的REST服务Livy

    Apache Livy简介 Apache Livy是由Cloudera Labs贡献的基于Apache Spark的开源REST服务,它不仅以REST的方式代替了Spark传统的处理交互方式,同时也提 ...

  9. BigData之Spark:Spark计算引擎的简介、下载、经典案例之详细攻略

    BigData之Spark:Spark计算引擎的简介.下载.经典案例之详细攻略 目录 Spark的简介 1.Spark三大特点 Spark的下载 Spark的经典案例 1.Word Count 2.P ...

  10. Spark之Spark概述

    Spark之Spark概述 什么是Spark Spark内置项目介绍 Spark特点 Spark的用户和用途 1. 什么是Spark Spark是一种快速.通用.可扩展的大数据分析引擎,2009年诞生 ...

最新文章

  1. More about Tair (NoSql)
  2. MarkMonitor 目前最安全的域名注册商,因此,世界500强网站中的22%域名托管于markmonitor公司...
  3. 任意java程序都可以是servlet吗_C#从Java servlet中获取文件流实现任意文件下载
  4. linux跨版本升级,深度Deepin系统支持跨版本升级
  5. groovy+mysql数据库_使用Groovy连接到MySQL
  6. python回车键绑定按钮_python tkinter 绑定回车键
  7. MySQL 成薪资跳板了?
  8. 如何基于列值从DataFrame中选择行?
  9. 1.枚举类型、声明指针、常量、存储类型、运算符优先级记忆
  10. iframe 父页面 子页面互相取值调用
  11. 产品经理有话说——产品汪成长记(入职)
  12. xp无线网卡开启的服务器,无线网卡在 Windows XP 系统下的安装与使用过程
  13. java 代理模式详解
  14. 竞品分析—微博PK微信
  15. RE:Working outside of application context
  16. finecms php7cms,FineCMS评测 是精简版的Phpcms v9?
  17. 让IE6,IE7,IE8共存
  18. 直销系统开发|直销双轨制模式详解
  19. 【MySql】windows下重置数据库密码
  20. JavaScript 制作简易ATM机

热门文章

  1. 联想服务器ip无法修改密码,联想(Lenovo)路由器设置好了不能上网的解决办法
  2. python运维需要哪些技术_学习运维技术要掌握哪些知识点?
  3. pvcreate命令--Linux命令应用大词典729个命令解读
  4. 简单实用的图片制作工具——打造个性化设计!
  5. 哪吒“大闹”希壤元宇宙?北京动画周真会玩儿
  6. kaggle 在无网络的环境下安装packages的方法
  7. PCB板的过孔工艺--塞孔
  8. node数据加密,还不快快点进来?
  9. java循环拼接byte数组,Java 分割、合并byte数组
  10. mongo 唯一约束索引_mongodb索引详解(Indexes)