Spark应用程序创建并在集群上运行

1.编写spark应用程序

1)创建SparkConf,设置Spark应用配置信息,并设置应用需要连接的集群的master节点的url。local代表本地运行,在集群中运行直接去掉.setMaster。

SparkConf conf = new SparkConf()
		.setAppName("map")
		//.setMaster("local");

2)创建JavaSparkContext对象

JavaSparkContext sc = new JavaSparkContext(conf);

3)创建初始RDD,有两种方式:读取外部数据集,以及在驱动程序中对一个集合进行并行化

JavaRDD<String> lines = sc.textFile("/usr/soft/words");
或者

//构造集合
List<Integer> numbers = Arrays.asList(1, 2, 3, 4, 5);		
//并行化集合,创建初始RDD
JavaRDD<Integer> numberRDD = sc.parallelize(numbers);

4)对初始RDD进行transformation操作

JavaRDD<String> words = lines.flatMap(new FlatMapFunction<String, String>() {
	private static final long serialVersionUID = 1L;
	public Iterable<String> call(String line) throws Exception {		
	return Arrays.asList(line.split(" "));
	}		
});
JavaPairRDD<String, Integer> pairs = words.mapToPair(new PairFunction<String,String,Integer>(){
	private static final long serialVersionUID = 1L;
	public Tuple2<String, Integer> call(String word) throws Exception {
		return new Tuple2<String, Integer>(word,1);
	}});
JavaPairRDD<String, Integer> wordCounts = pairs.reduceByKey(new Function2<Integer,Integer,Integer>(){
	private static final long serialVersionUID = 1L;
	public Integer call(Integer v1, Integer v2) throws Exception {
			return v1+v2;
	}});
wordCounts.foreach(new VoidFunction<Tuple2<String,Integer>>(){
	private static final long serialVersionUID = 1L;
	public void call(Tuple2<String, Integer> wordCount) throws Exception {
	System.out.println(wordCount._1 + "出现了" + wordCount._2 + " 多少次.");
	}});
	sc.close();

2. 使用maven插件对spark工程进行打包,并将spark工程jar包上传到集群。

对工程文件右键——》 Run as ——》Run Configurations ——》Maven Build ——》右击 New ——》填写name,goals等信息

3. 编写spark-submit脚本

/usr/soft/spark-1.6.0/bin/spark-submit \
--class ###(包名).###(类名) \
--num-executors 3 \
--driver-memory 100m \
--executor-memory 100m \
--executor-cores 3 \
/usr/soft/####.jar \
默认情况下,运行不了脚本,因为权限不够,此时就需要对文件赋予权限

chmod 777 ###.sh





  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
以下是使用idea编写spark程序并提交到yarn集群的例子: 1. 首先,在idea中创建一个新的maven项目,选择scala语言。 2. 在pom.xml文件中添加以下依赖: ``` <dependencies> <dependency> <groupId>org.apache.spark</groupId> <artifactId>spark-core_2.11</artifactId> <version>2.4.0</version> </dependency> <dependency> <groupId>org.apache.spark</groupId> <artifactId>spark-sql_2.11</artifactId> <version>2.4.0</version> </dependency> </dependencies> ``` 3. 创建一个简单的Spark应用程序,例如: ``` import org.apache.spark.sql.SparkSession object WordCount { def main(args: Array[String]): Unit = { val spark = SparkSession.builder() .appName("Word Count") .getOrCreate() val lines = spark.read.textFile(args(0)).rdd val words = lines.flatMap(_.split(" ")) val wordCounts = words.map((_, 1)).reduceByKey(_ + _) wordCounts.saveAsTextFile(args(1)) spark.stop() } } ``` 4. 在idea中配置Spark环境变量,打开“Run/Debug Configurations”窗口,选择“Application”,然后单击“+”按钮添加一个新的配置。在“Environment variables”字段中添加以下内容: ``` SPARK_HOME=/path/to/your/spark/home ``` 5. 在idea中打开终端,使用以下命令将应用程序打包成jar文件: ``` mvn package ``` 6. 将jar文件上传到yarn集群中: ``` hadoop fs -put /path/to/your/jar/file /user/yourname/ ``` 7. 在yarn集群中提交应用程序: ``` spark-submit --class WordCount --master yarn --deploy-mode cluster /user/yourname/your-jar-file.jar /input/path /output/path ``` 其中,“WordCount”是你的应用程序的类名,“/input/path”是输入文件的路径,“/output/path”是输出文件的路径。 8. 等待应用程序运行完成,然后检查输出文件是否正确生成。 希望这个例子能够帮助你使用idea编写spark程序并提交到yarn集群

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值