spark on yarn通过--deploy-mode cluster提交任务之后,应用已经在yarn上执行了,但是spark-submit提交进程还在,直到应用执行结束,提交进程才会退出,有时这会很不方便,并且不注意的话还会占用很多资源,比如提交spark streaming应用: 最近发现spark里有一个配置可以修改这种行为,提交任务的时候加长一个conf就可以 --conf spark.yarn.submit.waitAppCompletion=false org.apache.spa…
一,开发环境: 操作系统:win19 64位 IDE:IntelliJ IDEA JDK:1.8 scala:scala-2.10.6 集群:linux上cdh集群,其中spark为1.5.2,hadoop:2.6.0(其实我也想用spark最新版和hadoop的最新版,但1.6以前有spark-assembly-1.x.x-hadoop2.x.x.jar) 二,实现步骤: 1,设置maven的pom.xml <project xmlns="http://maven.apache.org/…
在yarn中的application详情页面 http://resourcemanager/cluster/app/$applicationId 或者通过application命令 yarn application -status $applicationId 只能看到应用启动以来占用的资源*时间统计,比如: Aggregate Resource Allocation : 3962853 MB-seconds, 1466 vcore-seconds 到处都找不到这个应用当前实时的资源占用情况,比…
spark任务添加依赖的方式: 1 如果是local方式运行,可以通过--jars来添加依赖: 2 如果是yarn方式运行,可以通过spark.yarn.jars来添加依赖: 这两种方式在oozie上都行不通,首先oozie上没办法也不应该通过local运行,其次通过spark.yarn.jars方式配置你会发现根本不会生效,来看为什么 查看LauncherMapper的日志 Spark Version 2.1.1 Spark Action Main class        : org.apa…
写在前面: spark只是一种计算框架,如果要搭建集群要依托与一定的组织模式. 目前来说,Spark集群的组织形式有三种: 1.      Standalone:使用akka作为网络IO组件,master和worker之间采用actor模型进行组织.简单说就是spark自己实现了集群中的各个节点上的服务. 2.      Yarn:直接使用Yarn框架完成资源分配和分布式管理功能,spark只是简单地把任务提交给yarn框架. 3.      Mesos:不太清楚.(好像比较古老了) 因此,要搭…
yarn开启日志归集功能,除了配置之外 yarn.log-aggregation-enable=true 还要检查/tmp/logs目录是否存在以及权限,尤其是在开启kerberos之后,有些目录可能不能自动创建成功,需要手工创建: $ hdfs dfs -mkdir /tmp$ hdfs dfs -chmod 777 /tmp 每个应用的hdfs日志目录: /tmp/logs/$user/logs/$applicationId…
yarn中有一个比较重要的配置yarn.nodemanager.local-dirs,如果配置的不好,在饱和状态运行下集群会出现很多问题:1 默认配置${hadoop.tmp.dir}/nm-local-dir,系统盘通常只有几百G,配置在这里会经常报磁盘空间不足的错误:2 配置到其中1个数据盘,比如/data0/,这个数据盘会经常没有响应,或者直接坏掉:3 正确的配置是配置到所有的数据盘,通常是12个,其实yarn的description写的很清楚 <property> <descri…
hdfs.yarn.hbase这些组件的master支持多个,实现自动主备切换,其中hdfs.hbase无论访问主master或者备master都可以正常访问页面,但是yarn比较特别,只有主master的页面可以访问,备master会返回Refresh,3s后重定向: 一种方式是提供两个域名,分别对应两个yarn的master,一旦有master切换,需要手工切换到另外一个,有没有更好的方式? 访问备master过程如下: curl http://standby_ip:8088/cluster…
用户提交任务到yarn时有可能遇到下面的错误: 1) Requested user anything is not whitelisted and has id 980,which is below the minimum allowed 1000 这是因为yarn中配置min.user.id=1000,yarn认为id小于1000的是超级用户,yarn禁止超级用户提交任务: Each account must have a user ID that is greater than or equ…
spark 2.1.1 系统中希望监控spark on yarn任务的执行进度,但是监控过程发现提交任务之后执行进度总是10%,直到执行成功或者失败,进度会突然变为100%,很神奇, 下面看spark on yarn任务提交过程: spark on yarn提交任务时会把mainClass修改为Client childMainClass = "org.apache.spark.deploy.yarn.Client" spark-submit过程详见:https://www.cnblog…