Win7_64位MyEclipse2015以yarn-client提交spark到CDH5.10.0任务报错及解决方法

CDH版本:5.10.0

IDE环境:win7 64位 MyEclipse2015

spark模式:yarn

提交模式:yarn-client

之前同样的IDE环境下,向alone模式的spark提交任务,一直很顺利,今天测了一下spark on yarn模式,提交只能是yarn-client模式,其它基本不变,只是换了模式,结果出现下面错误:

java.io.IOException: Cannot run program "/etc/hadoop/conf.cloudera.yarn/topology.py" (in directory "D:\workspace2015\5_10_0cdh"): CreateProcess error=2, ?????μ???

折腾了五个小时,总算是解决了,方法如下:

修改工程中的core-site.xml,找到配置net.topology.script.file.name,将其value注释掉,如图:

再次运行,得到正确结果。

代码如下:

package com.byit.test;

import java.util.Arrays;

import org.apache.spark.SparkConf;
import org.apache.spark.api.java.JavaPairRDD;
import org.apache.spark.api.java.JavaRDD;
import org.apache.spark.api.java.JavaSparkContext;
import org.apache.spark.api.java.function.FlatMapFunction;
import org.apache.spark.api.java.function.Function;
import org.apache.spark.api.java.function.Function2;
import org.apache.spark.api.java.function.PairFunction;

import scala.Tuple2;

import com.byit.getinfo.IGetConf;

/**
*
* @author 耿廑
* yarn client模式下将src/main/resources目录下的core-site.xml中的
* net.topology.script.file.name的value值注释掉,切记,切记!!!
*/
public class SparkYarnClientTest implements IGetConf{
static String sendString = " ";
public static void main(String[] args) throws Exception {
// TODO Auto-generated method stub
SparkYarnClientTest.run();
}
public static void run() throws Exception {
// TODO Auto-generated method stub
System.setProperty("HADOOP_USER_NAME",sparkUser);
SparkConf conf = new SparkConf()
.setAppName("SparkYarnClientTest")
.setMaster("yarn-client")
.set("spark.yarn.jar",hdfsURL + "/test/spark/libs/spark-assembly-1.6.0-cdh5.10.0-hadoop2.6.0-cdh5.10.0.jar");
JavaSparkContext sc = new JavaSparkContext(conf);
String jar = jarsPath + "/SparkYarnClientTest.jar";
sc.addJar(jar);
String inPath = hdfsURL + "/test/spark/input";
String outPath = hdfsURL + "/test/spark/output";
JavaRDD<String> word = sc.textFile(inPath).flatMap(new toWord());
JavaPairRDD<String,Integer> wordPair = word.mapToPair(new myMapper());
JavaPairRDD<String,Integer> count = wordPair.reduceByKey(new myReducer());
JavaRDD<String> result = count.map(new toString());
result.saveAsTextFile(outPath);
sc.close();
}
@SuppressWarnings("serial")
private static class toWord implements FlatMapFunction<String,String> {
public Iterable<String> call(String words) throws Exception {
// TODO Auto-generated method stub
return Arrays.asList(words.split(sendString));
}
}
@SuppressWarnings("serial")
private static class myMapper implements PairFunction<String,String,Integer> {

public Tuple2<String, Integer> call(String word) throws Exception {
// TODO Auto-generated method stub
Tuple2<String, Integer> myWord = new Tuple2<String, Integer>(word,1);
return myWord;
}
}
@SuppressWarnings("serial")
private static class myReducer implements Function2<Integer,Integer,Integer> {
public Integer call(Integer value1, Integer value2) throws Exception {
// TODO Auto-generated method stub
Integer value = value1 + value2;
return value;
}
}
@SuppressWarnings("serial")
private static class toString implements Function<Tuple2<String, Integer>,String> {

public String call(Tuple2<String, Integer> result) throws Exception {
// TODO Auto-generated method stub

String myResult = result._1 + "\t" + result._2;
return myResult;
}
}
}

时间: 2024-10-17 14:03:38

Win7_64位MyEclipse2015以yarn-client提交spark到CDH5.10.0任务报错及解决方法的相关文章

SpringMVC提交数据遭遇基础类型和日期类型报400错误解决方法

使用SpringMVC开发的时候,页面如果有日期格式的数据,后台接受也是java.util.Date,则报告400错误 .下面是解决方案的演示示例: 这个是实体类,里面createDate就是java.util.Date类型 1 import java.util.Date; 2 3 public class User { 4 5 private int userId; 6 private String userName; 7 private Date createDate; 8 9 public

SpringMVC + Spring + MyBatis 学习笔记:提交数据遭遇基础类型和日期类型报400错误解决方法

系统:WIN7 数据库:mysql 开发工具:Eclipse 框架:Spring3.2.9.SpringMVC3.2.9.MyBatis3.2.8 使用SpringMVC开发的时候,页面如果有日期格式的数据,后台接受也是java.util.Date,则报告400错误 . 在controller使用对象来接收前台页面的date数据类型时报400错误 下面是解决方案的演示示例: 这个是实体类,里面createDate就是java.util.Date类型 1 import java.util.Date

Spark整合kafka0.10.0新特性(二)

接着Spark整合kafka0.10.0新特性(一)开始 import org.apache.kafka.clients.consumer.ConsumerRecord import org.apache.kafka.common.serialization.StringDeserializer import org.apache.spark.streaming.kafka010._ import org.apache.spark.streaming.kafka010.LocationStrat

win10 64位 python3.6 django1.11 MysqlDB No module named &#39;MySQLdb&#39; 安装MysqlDB报错 Microsoft Visual C++ 14.0 is required

在python3.6中操作数据库,再按python2.7安装MySQLdb进行数据库连接已经不可用了,我使用的是另外一个方法:PyMySQL,安装好之后还是不能直接连接MySQL的,启动项目后报No module named 'MySQLdb' 解决方案: 在项目的__init__()文件中添加如下代码: import pymysql pymysql.install_as_MySQLdb() 这时再次启动项目正常 win10 64位 python3.6 django1.11 MysqlDB No

Spark SQL: Error in query: undefined function错误的解决方法

本文原文出处: http://blog.csdn.net/bluishglc/article/details/50748937 严禁任何形式的转载,否则将委托CSDN官方维护权益! 问题描述 如果你在Spark SQL上试图调用在HIVE注册的自定义函数(UDF)时,你可能会遇到这样的错误: Spark SQL: Error in query: undefined function xxxxxx 这个问题发生在Spark 1.5.0, 1.5.1和1.5.2版本上,对此Spark官方有一个专门的

spark的bulkload报错及解决

需求 将HDFS上的数据解析出来,然后通过hfile方式批量写入Hbase(需要多列写入) 写入数据的关键api: rdd.saveAsNewAPIHadoopFile( stagingFolder, classOf[ImmutableBytesWritable], classOf[KeyValue], classOf[HFileOutputFormat2], job.getConfiguration) 特殊地方: 1): 最初写hfile警告??: Does it contain files

oozie 提交作业时因请求资源不足而suspend的解决方法

1,环境情况 安装的CDH5.4,使用CM来管理各个组件(Yarn.Spark.HDFS.Hive.Oozie……). 2,在shell命令下提交Oozie作业 ①sudo –u hdfs hadoop fs –mkdir /user/cdhfive      创建一个专门的用户目录,这里为cdhfive ②sudo –u hdfs hadoop –chown –R cdhfive /user/cdhfive      权限更改 ③hadoop fs –put examples /user/cd

GNU Linux 64位系统中fatal error: stdio.h: 没有那个文件或目录的错误的解决方法

在64位系统中,编写一个C语言程序后,使用gcc进行编译时,出现了如下的错误: test.c:1:19: fatal  error: stdio.h: 没有那个文件或目录 #include <stdio.h> 针对以上的情况,对于在32环境下一般不会出现这个问题,因为已经把libc的头文件包括在系统中了,那么针对这样的情况,主要检查是否安装了完备的开发环境: build-essential package - Installs the following collection to compi

64位win10系统无法大发彩票平台搭建安装.Net framework3.5的两种解决方法

在Windows10中,当我们大发彩票平台搭建论坛:haozbbs.com Q1446595067安装某些软件的时候会提示"你的电脑上的应用需要使用以下Windows功能:.NET Framework 3.5(包括.NET 2.0和3.0)".这时就需要大家安装该功能.但近日有网友反映在windows10_64位系统电脑上安装Net framework3.5,操作时总是遇到失败的情况.尝试使用"启用于关闭windows功能".控制面板在线安装.使用下载的离线安装包离