运行spark——2.spark-submit
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相关推荐
- spark任务shell运行_了解Spark 应用的一生
Spark从被创造至今已经成为了大数据计算引擎中不可或缺的一环,虽然Spark非常的优秀但相比于其他的开源框架依然有着比较高的学习门槛,希望能够通过一种有结构性的,简单直接的方式,为Spark的初学者 ...
- Spark之Spark角色介绍及运行模式
Spark之Spark角色介绍及运行模式 集群角色 运行模式 1. 集群模式 从物理部署层面上来看,Spark主要分为两种类型的节点,Master节点和Worker节点: Master节点主要运行集群 ...
- 【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. ...
- 在IntelliJ IDEA中创建和运行java/scala/spark程序
本文将分两部分来介绍如何在IntelliJ IDEA中运行Java/Scala/Spark程序: 基本概念介绍 在IntelliJ IDEA中创建和运行java/scala/spark程序 基本概念介 ...
- Spark之 spark简介、生态圈详解
来源:http://www.cnblogs.com/shishanyuan/p/4700615.html 1.简介 1.1 Spark简介 Spark是加州大学伯克利分校AMP实验室(Algorith ...
- 大数据入门之分布式计算框架Spark(3) -- Spark Streaming
1.概述 Spark Streaming将不同的数据源,经过处理之后,结果输出到外部文件系统. 特点:低延时:能从错误中高效地恢复过来:能够运行在成百上千的节点上:能够将批处理.机器学习.图计算等子框 ...
- [Spark进阶]--Spark配置参数说明
感谢原文链接:http://blog.javachen.com/2015/06/07/spark-configuration.html 参考官方原文:https://spark.apache.org/ ...
- livy使用样例_[Spark]使用Spark的REST服务Livy
Apache Livy简介 Apache Livy是由Cloudera Labs贡献的基于Apache Spark的开源REST服务,它不仅以REST的方式代替了Spark传统的处理交互方式,同时也提 ...
- BigData之Spark:Spark计算引擎的简介、下载、经典案例之详细攻略
BigData之Spark:Spark计算引擎的简介.下载.经典案例之详细攻略 目录 Spark的简介 1.Spark三大特点 Spark的下载 Spark的经典案例 1.Word Count 2.P ...
- Spark之Spark概述
Spark之Spark概述 什么是Spark Spark内置项目介绍 Spark特点 Spark的用户和用途 1. 什么是Spark Spark是一种快速.通用.可扩展的大数据分析引擎,2009年诞生 ...
最新文章
- More about Tair (NoSql)
- MarkMonitor 目前最安全的域名注册商,因此,世界500强网站中的22%域名托管于markmonitor公司...
- 任意java程序都可以是servlet吗_C#从Java servlet中获取文件流实现任意文件下载
- linux跨版本升级,深度Deepin系统支持跨版本升级
- groovy+mysql数据库_使用Groovy连接到MySQL
- python回车键绑定按钮_python tkinter 绑定回车键
- MySQL 成薪资跳板了?
- 如何基于列值从DataFrame中选择行?
- 1.枚举类型、声明指针、常量、存储类型、运算符优先级记忆
- iframe 父页面 子页面互相取值调用
- 产品经理有话说——产品汪成长记(入职)
- xp无线网卡开启的服务器,无线网卡在 Windows XP 系统下的安装与使用过程
- java 代理模式详解
- 竞品分析—微博PK微信
- RE:Working outside of application context
- finecms php7cms,FineCMS评测 是精简版的Phpcms v9?
- 让IE6,IE7,IE8共存
- 直销系统开发|直销双轨制模式详解
- 【MySql】windows下重置数据库密码
- JavaScript 制作简易ATM机
热门文章
- 联想服务器ip无法修改密码,联想(Lenovo)路由器设置好了不能上网的解决办法
- python运维需要哪些技术_学习运维技术要掌握哪些知识点?
- pvcreate命令--Linux命令应用大词典729个命令解读
- 简单实用的图片制作工具——打造个性化设计!
- 哪吒“大闹”希壤元宇宙?北京动画周真会玩儿
- kaggle 在无网络的环境下安装packages的方法
- PCB板的过孔工艺--塞孔
- node数据加密,还不快快点进来?
- java循环拼接byte数组,Java 分割、合并byte数组
- mongo 唯一约束索引_mongodb索引详解(Indexes)