Spark入门(三)Idea构建spark项目
发布日期:2021-07-01 01:15:33
浏览次数:2
分类:技术文章
本文共 3076 字,大约阅读时间需要 10 分钟。
一、依赖包配置
scala与spark的相关依赖包,spark包后尾下划线的版本数字要跟scala的版本第一二位要一致,即2.11
pom.xml
4.0.0 com.mk spark-test 1.0 spark-test http://spark.mk.com UTF-8 1.8 1.8 2.11.1 2.4.4 2.6.0 org.scala-lang scala-library ${scala.version} org.apache.spark spark-core_2.11 ${spark.version} org.apache.spark spark-sql_2.11 ${spark.version} junit junit 4.11 test maven-clean-plugin 3.1.0 maven-resources-plugin 3.0.2 maven-compiler-plugin 3.8.0 maven-surefire-plugin 2.22.1 maven-jar-plugin 3.0.2
二、PI例子
java重新编写scala的PI例子
package com.mk;import org.apache.spark.SparkConf;import org.apache.spark.api.java.JavaSparkContext;import org.apache.spark.sql.SparkSession;import java.util.ArrayList;import java.util.List;public class App { public static void main( String[] args ) { SparkConf sparkConf = new SparkConf(); if(System.getProperty("os.name").toLowerCase().contains("win")) { sparkConf.setMaster("local[2]");//本地模拟 System.out.println("使用本地模拟是spark"); } SparkSession session = SparkSession.builder().appName("Pi").config(sparkConf).config(sparkConf).getOrCreate(); int slices =2; int n = (int)Math.min(100_000L * slices, Integer.MAX_VALUE); JavaSparkContext sparkContext = new JavaSparkContext(session.sparkContext()); Listlist = new ArrayList<>(n); for (int i = 0; i < n; i++) list.add(i + 1); int count = sparkContext.parallelize(list, slices). map(v -> { double x = Math.random() * 2 - 1; double y = Math.random() * 2 - 1; if (x * x + y * y < 1) return 1; return 0; }).reduce((Integer a, Integer b) ->a+b); System.out.println("PI:"+ 4.0 * count / n); session.stop(); }}
三、直接在idea本地运行
输出PI
四、spark集群提交
项目打成jar,把spark-test.jar上传到~目录,执行shell命令
~/software/spark-2.4.4-bin-hadoop2.6/bin/spark-submit --master spark://hadoop01:7077,hadoop02:7077,hadoop03:7077 --class com.mk.App ~/spark-test.jar
转载地址:https://maokun.blog.csdn.net/article/details/104119225 如侵犯您的版权,请留言回复原文章的地址,我们会给您删除此文章,给您带来不便请您谅解!
发表评论
最新留言
感谢大佬
[***.8.128.20]2024年04月21日 18时01分50秒
关于作者
喝酒易醉,品茶养心,人生如梦,品茶悟道,何以解忧?唯有杜康!
-- 愿君每日到此一游!
推荐文章
motan学习笔记 五 opentracing学习入门
2019-05-01
爬取博客园博客
2019-05-01
什么是Docker?
2019-05-01
一个基于百度云和图灵的人工智能程序
2019-05-01
用两个栈实现队列
2019-05-01
求列表最长子序列
2019-05-01
字符串的排序
2019-05-01
内存分配(mallloc,calloc,realloc,new)
2019-05-01
《计算机网络》 读书笔记(五) 其他杂项
2019-05-01
《计算机网络》 读书笔记(六) 协议比较
2019-05-01
网络编程之 Socket函数 (一)
2019-05-01
网络编程之 Socket函数 (二)
2019-05-01
网络编程之 Socket的模式(一) --- “阻塞/非阻塞” 与 “同步/异步”
2019-05-01
网络编程之 Socket的模式(二) --- “Linux网络I/O模型”
2019-05-01
网络编程之 Socket的模式(三) --- “Window网络I/O模型”
2019-05-01
网络编程之 Socket的模式(四) --- “Window网络I/O模型” 续
2019-05-01
ffmpeg & mplayer & vlc 手册
2019-05-01
视频编解码学习之二:编解码框架
2019-05-01
Redis拓展篇----过期策略
2019-05-01