idea连接spark的环境配置

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/u012447842/article/details/81080711

Idea 连接Spark集群

两种方式:sbt和maven

1: 使用maven方式

Idea 连接Spark集群的详细步骤如下:

先在本地安装 scala 和 java ,  

scala下载地址:   https://downloads.lightbend.com/scala/2.12.6/scala-2.12.6.msi

java 下载地址:   http://www.oracle.com/technetwork/java/javase/downloads/index.html

  • 版本问题: 

注意:scala 和 java 版本之间有一定的要求, 要不然会报错

最开始:java版本: 1.8.0_20   和  scala  版本  2.11.8

出现如下报错:

修改scala和java版本:

输出结果如下:

  • 创建新项目

  • 项目配置
  1. 右击项目名-> Add Framework Support , 选择scala (注意: 如没有scala复选框,则是scala环境未配置或配置错误

2.右击main -> scala , 点击Mark Directory as -> Resources Root

3.添加scala文件:

结果如下

配置scala 和java环境

1: 下载 scala

        IDEA安装Scala插件,File->Settings->Plugins,搜索出Scla插件,点击Install安装;

2:本地存在scala

选择scala

右击scala-sdk-2.11.12选择copy to Project Libraries 

配置java环境:

选择java  --》 点击new, 选择安装路径

SDKs 设置java同上处理,选择java的jdk安装路径

将pom.xml中没必要的去掉(可选)

修改pom.xml 添加spark集群所需要的依赖(注意: scala只能是2.11,不能是2.11.8): 

<properties>
  <scala.version>2.11</scala.version>
  <hadoop.version>2.6.0</hadoop.version>
  <spark.version>2.1.0</spark.version>
</properties>

<repositories>
  <repository>
    <id>scala-tools.org</id>
    <name>Scala-Tools Maven2 Repository</name>
    <url>http://scala-tools.org/repo-releases</url>
  </repository>
</repositories>

<dependencies>
  <dependency>
    <groupId>org.apache.spark</groupId>
    <artifactId>spark-core_${scala.version}</artifactId>
    <version>${spark.version}</version>
  </dependency>
  <dependency>
    <groupId>org.apache.spark</groupId>
    <artifactId>spark-sql_${scala.version}</artifactId>
    <version>${spark.version}</version>
  </dependency>
  <dependency>
    <groupId>org.apache.spark</groupId>
    <artifactId>spark-streaming_${scala.version}</artifactId>
    <version>${spark.version}</version>
  </dependency>
  <dependency>
    <groupId>org.apache.hadoop</groupId>
    <artifactId>hadoop-client</artifactId>
    <version>${hadoop.version}</version>
  </dependency>
  <dependency>
    <groupId>org.apache.hadoop</groupId>
    <artifactId>hadoop-common</artifactId>
    <version>${hadoop.version}</version>
  </dependency>
  <dependency>
    <groupId>org.apache.hadoop</groupId>
    <artifactId>hadoop-hdfs</artifactId>
    <version>${hadoop.version}</version>
  </dependency>

</dependencies>

在本地运行:

Run-> Edit Configurations编辑:

vm options: -Dspark.master=saprk://65.49.200.49:7070 在集群上运行

运行结果:

代码:

import org.apache.spark._
import scala.math.random

object WorkCount {
  def main(args: Array[String]): Unit = {
    println("Hello World")
    val conf = new SparkConf().setAppName("SparkPi").setMaster("local[2]")
    val spark = new SparkContext(conf)
//    val slices = if (args.length > 0) args(0).toInt else 2

    println("Time: " + spark.startTime)
    val line = spark.textFile("file:/G:/wc.input")
//    line.flatMap(_.split(" ")).map((_, 1)).reduceByKey(_+_).saveAsTextFile("file:/G:/out.txt")
//    line.foreach(println)
    line.flatMap(_.split(" ")).map((_, 1)).reduceByKey(_ + _).collect().foreach(println)
//    val n = math.min(1000L * slices, Int.MaxValue).toInt  // avoid overflow
//
//    val count = spark.parallelize(1 until n, slices).map { i =>
//      val x = random * 2 -1
//      val y = random * 2 - 1
//      if (x*x + y * y < 1) 1 else 0
//
//    }.reduce(_ + _)
//    println("Pi is roughly " + 4.0 * count / n)
    spark.stop()
  }

打包scala文件, 在服务器运行

1.File->Project Structure -> Artifacts-> + -> JAR -> Frommodules with dependencies... 


 

2. 选择Main Class 

  3.然后再build文件

   Build -> Build Artifact -> scalascala.jar -> Build (如果是第二次之后,则选择Rebuild)

   等待几十秒即可编译完毕。

4.此时可以在该项目文件夹的 ./out/artifacts/SparkT_jar/中即可找到打包后的文件

最后:

 将jar包发到集群中。

  spark-submit --master spark://master:7077   

猜你喜欢

转载自blog.csdn.net/u012447842/article/details/81080711