IntelliJ IDEA Windows下Spark开发环境部署
来源:互联网 发布:淘宝订单管控 编辑:程序博客网 时间:2024/05/16 18:39
0x01 环境说明
本地
OS: windows 10
jdk: jdk1.8.0_121
scala: scala-2.11.11
IDE: IntelliJ IDEA ULTIMATE 2017.2.1服务器
OS: CentOS_6.5_x64
jdk: jdk1.8.111
hadoop: hadoop-2.6.5
spark: spark-1.6.3-bin-hadoop2.6
scala: scala-2.11.11
0x02 windows端配置
安装
jdk
配置环境变量JAVA_HOMECLASSPATHPath
- 配置
hosts
- 文件位置
C:\Windows\System32\drivers\etc
新增如下内容(和集群的hosts文件内容一样,根据自己集群的实际情况修改)
192.168.1.10 master192.168.1.11 slave1192.168.1.12 slave2
安装
IntelliJ IDEA
注意插件安装Maven
IDEA中安装
scala
插件
0x03 服务器端配置
安装
jdk
安装
hadoop
安装
spark
0x04 测试
新建
maven项目
添加依赖包
File -> Project Structure -> Libraries添加spark-assembly-1.6.3-hadoop2.6.0.jar
在
src\main\java
目录下新建java
类ConnectionUtil
import org.apache.spark.SparkConf;import org.apache.spark.api.java.JavaSparkContext;public class ConnectionUtil {public static final String master = "spark://master:7077";public static void main(String[] args) { SparkConf sparkConf = new SparkConf().setAppName("demo").setMaster(master); JavaSparkContext javaSparkContext = new JavaSparkContext(sparkConf); System.out.println(javaSparkContext); javaSparkContext.stop(); }}
编译运行,结果如下
如果出现上图结果则证明,运行正确。运行
JavaWordCount
例子
数据准备,随便准备一个文档格式不限,上传到
hdfs
上。$ vim wordcount.txthello Tomhello Jackhello Ning# 上传文件$ hadoop fs -put wordcount.txt /user/hadoop/# 查看文件是否上传成功$ hadoop fs -ls /user/hadoop/
代码(
spark
安装包中的example
,指定了jar包和输入文件的路径)import scala.Tuple2;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.Function2;import org.apache.spark.api.java.function.PairFunction;import java.util.Arrays;import java.util.List;import java.util.regex.Pattern;public final class JavaWordCount {private static final Pattern SPACE = Pattern.compile(" ");public static void main(String[] args) throws Exception {// if (args.length < 1) {// System.err.println("Usage: JavaWordCount <file>");// System.exit(1);// }SparkConf sparkConf = new SparkConf().setAppName("JavaWordCount") .setMaster("spark://master:7077") .set("spark.executor.memory", "512M");JavaSparkContext ctx = new JavaSparkContext(sparkConf);ctx.addJar("D:\\workspace\\spark\\JavaWordCount.jar");String path = "hdfs://master:9000/user/hadoop/wordcount.txt";JavaRDD<String> lines = ctx.textFile(path);JavaRDD<String> words = lines.flatMap(new FlatMapFunction<String, String>() { @Override public Iterable<String> call(String s) { return Arrays.asList(SPACE.split(s)); }});JavaPairRDD<String, Integer> ones = words.mapToPair(new PairFunction<String, String, Integer>() { @Override public Tuple2<String, Integer> call(String s) { return new Tuple2<String, Integer>(s, 1); }});JavaPairRDD<String, Integer> counts = ones.reduceByKey(new Function2<Integer, Integer, Integer>() { @Override public Integer call(Integer i1, Integer i2) { return i1 + i2; }});List<Tuple2<String, Integer>> output = counts.collect();for (Tuple2<?,?> tuple : output) { System.out.println(tuple._1() + ": " + tuple._2());}ctx.stop(); }}
打包非常重要,否则运行会出现各种错误,甚至无法运行
在File -> Project Structure ->Artifacts点击绿色“+”,Add-->JAR-->From Modules with Dependencies
输入main class入口函数名,将Output Layout下所有jar包删掉(因为spark运行环境已经包含了这些包),如果已经存在META-INF
要先将这个文件夹删除。然后Apply,OK
编译程序:Build-->Build Artifacts...,然后选择要编译的项目进行编译
在当前工程生成的out目录下就可以找到输出的jar包,放到程序中指定的位置(就是addJar()
方法中所设置的路径)运行程序,结果如下
0x05 出现的问题
- java: 无法访问scala.Cloneable 找不到scala.Cloneable的类文件
原因:原来使用的是spark-2.1.0-bin-hadoop2.4
没有spark-assembly-1.6.3-hadoop2.6.0.jar
依赖包所致。
解决:因为原来是用的hadoop版本为2.5.2
相应的依赖包官网已经不再支持,所以更新的平台的hadoop环境为2.6.5
,spark 2.X相应的文档很少,更改版本为1.6.3
。
Create: 2017-08-12 10:33:55 星期六
Update1: 2017-08-14 20:10:47 星期一
- IntelliJ IDEA Windows下Spark开发环境部署
- Spark2.x学习笔记:6、在Windows平台下搭建Spark开发环境(Intellij IDEA)
- Windows下使用IntelliJ IDEA搭建Spark环境
- Spark开发环境配置(windows/Intellij IDEA 篇)
- Spark开发环境配置(windows/Intellij IDEA 篇)
- Spark开发环境配置(windows/Intellij IDEA 篇)
- Spark开发环境配置(windows/Intellij IDEA 篇)
- Intellij Idea搭建Spark开发环境
- 使用Intellij Idea搭建Spark开发环境
- 使用Intellij IDEA构建spark开发环境
- spark mac intellij idea开发环境
- Intellij Idea搭建Spark开发环境
- Windows下使用sbt打造Intellij Idea环境下Spark源码阅读环境
- IntelliJ IDEA开发Spark1.4.0环境部署
- GIS+=地理信息+云计算技术——SPARK for IntelliJ IDEA 开发环境部署
- Intellij idea下spark开发HelloWorld
- IntelliJ IDEA下的Spark程序开发
- 【Spark】在window下搭建spark开发环境(IntelliJ IDEA)
- 机器学习入门:线性回归及梯度下降
- leetcode 660. Remove 9
- jquery 删除元素
- 30多条mysql数据库优化方法,千万级数据库记录查询轻松解决
- Java JNI实现原理初探
- IntelliJ IDEA Windows下Spark开发环境部署
- Sublime Text 全程指引
- 初识hadoop--(2)通过java操作hdfs
- mysql 事物处理
- CentOS 7.2.1511 修改系统字体
- 华为 nexus 6P手机 Google Android Beta 8.0 系统Root
- 2.1 linux 存储结构和硬盘划分
- eBay数据科学家李睿:自然语言处理在eBay的技术实践
- 辣子鸡一步一爪印react native——导航TabNavigator,react-native-tab-navigator