资讯专栏INFORMATION COLUMN

IntelliJ IDEA Windows下Spark开发环境部署

DevWiki / 914人阅读

摘要:运行数据准备随便准备一个文档格式不限,上传到上。解决因为原来是用的版本为相应的依赖包官网已经不再支持,所以更新的平台的环境为,相应的文档很少,更改版本为。星期六星期一由为知笔记迁移到。

0x01 环境说明

博客地址:http://www.cnblogs.com/ning-wang/p/7359977.html

1.1 本地

OS: windows 10
jdk: jdk1.8.0_121
scala: scala-2.11.11
IDE: IntelliJ IDEA ULTIMATE 2017.2.1

1.2 服务器

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端配置 2.1 安装jdk

配置环境变量

JAVA_HOME
CLASSPATH
Path
2.2 配置hosts 2.2.1 文件位置

C:WindowsSystem32driversetc

2.2.2 新增内容

和集群的hosts文件内容一样

192.168.1.100    master
192.168.1.101    slave1
192.168.1.102    slave2
2.2.3 安装IntelliJ IDEA

注意插件安装Maven

2.2.4 IDEA中安装scala插件

0x03 服务器端配置 3.1 安装jdk 3.2 安装hadoop

配置远程访问权限

3.3 安装spark 0x04 测试 4.1 新建maven项目

4.2 添加依赖包

File -> Project Structure -> Libraries添加spark-assembly-1.6.3-hadoop2.6.0.jar(位置在服务器端spark/lib/下)

4.3 新建ConnectionUtil类

srcmainjava目录下新建javaConnectionUtil

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();
  }
}
4.4 编译运行

如果出现上图结果则证明,运行正确。

4.5 运行JavaWordCount 4.5.1 数据准备

随便准备一个文档格式不限,上传到hdfs上。

$ vim wordcount.txt
hello Tom
hello Jack
hello Ning
# 上传文件
$ hadoop fs -put wordcount.txt /user/hadoop/
# 查看文件是否上传成功
$ hadoop fs -ls /user/hadoop/
4.5.2 代码

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 ");
//        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:workspacesparkJavaWordCount.jar");
  String path = "hdfs://master:9000/user/hadoop/wordcount.txt";
  JavaRDD lines = ctx.textFile(path);
  JavaRDD words = lines.flatMap(new FlatMapFunction() {
      @Override
  public Iterable call(String s) {
        return Arrays.asList(SPACE.split(s));
  }
    });
  JavaPairRDD ones = words.mapToPair(new PairFunction() {
        @Override
  public Tuple2 call(String s) {
            return new Tuple2(s, 1);
  }
    });
  JavaPairRDD counts = ones.reduceByKey(new Function2() {
        @Override
  public Integer call(Integer i1, Integer i2) {
            return i1 + i2;
  }
    });
  List> output = counts.collect();
 for (Tuple2 tuple : output) {
        System.out.println(tuple._1() + ": " + tuple._2());
  }
    ctx.stop();
  }
}
4.5.3 打包

非常重要,否则运行会出现各种错误,甚至无法运行
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()方法中所设置的路径)

4.5.4 运行程序

0x05 出现的问题 5.1 找不到scala.Cloneable的类文件

问题描述: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 星期六
Update: 2017-08-14 20:10:47 星期一
update: 2017.10.17
由为知笔记迁移到SF。

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/67790.html

相关文章

  • WindowsIntelliJ IDEA配置Gradle、Spring MVC

    摘要:最近研究了一下,正好把配置的一些东西记录下来安装这里假设你已经学会了安装如果没有安装请先参阅其他教程安装。去下载,可能会比较慢。安装完成后,打开压缩包,解压到指定的文件夹,然后设置环境变量。如果设置正确,在目录中输入正好跳转到你安装的目录。 最近研究了一下java,正好把配置的一些东西记录下来 安装Gradle这里假设你已经学会了安装Java,如果没有安装Java,请先参阅其他教程安装...

    lsxiao 评论0 收藏0
  • WindowsIntelliJ IDEA配置Gradle、Spring MVC

    摘要:最近研究了一下,正好把配置的一些东西记录下来安装这里假设你已经学会了安装如果没有安装请先参阅其他教程安装。去下载,可能会比较慢。安装完成后,打开压缩包,解压到指定的文件夹,然后设置环境变量。如果设置正确,在目录中输入正好跳转到你安装的目录。 最近研究了一下java,正好把配置的一些东西记录下来 安装Gradle这里假设你已经学会了安装Java,如果没有安装Java,请先参阅其他教程安装...

    lakeside 评论0 收藏0

发表评论

0条评论

最新活动
阅读需要支付1元查看
<