windows10下spark2.3.0本地开发环境搭建-亲测

 

1  windows10下spark2.3.0本地开发环境搭建

文档下载地址:https://download.csdn.net/download/hambition/10492232

由于博文上传图片比较麻烦,图片又非常之多,没分的同学可直接看博文

win10上部署Hadoop非Cygwin、非虚拟机方式。安装目录为D:\setupedsoft。涉及相关组件版本:

win10 家庭装,64位,x86处理器

JDK1.8.0_171

hadoop-2.7.6

Spark-2.3.0

Scala-2.11.8

Maven-3.5.3

ideaIC-2018.1.4.exe

spark-2.3.0-bin-hadoop2.7

1.1  JDK1.8.0_171

a.    下载JDK,jdk-8u171-windows-x64.exe,安装到目录:D:\setupedsoft\Java,并设置 JAVA_HOME 变量

b. 设置 Path 变量,添加 ;%JAVA_HOME%\bin;%JAVA_HOME%\jre\bin

c. 设置 Classpath 添加: .;%JAVA_HOME%\lib\dt.jar;%JAVA_HOME%\lib\tools.jar

d.    最后在终端输入java -version,出现类似如下结果即可:

1.2   hadoop-2.7.6

1.2.1 下载并解压

官网http://hadoop.apache.org/releases.html下载Hadoop2.7.6,解压至安装目录D:\setupedsoft\hadoop-2.7.6 

1.2.2 设置环境变量

a.    设置 HADOOP_HOME变量

b.设置 Path 变量:添加 ;%HADOOP_HOME%\bin

1.2.3 支持windows运行

https://pan.baidu.com/s/1_C4TALLBW9TbIrJMC4JKtA 密码: dc63 下载一个支持在windows运行hadoop的工具,解压,用解压后的bin、etc目录覆盖hadoop的bin、etc目录(亲测这个工具适用于hadoop2.5和2.7,其他的尚且不知)

1.2.4 创建HADOOP数据存储目录

在/D:/datafile/hadoop-2.7.6目录新建workplace目录,进入workplace,新建子文件夹temp、data、name 

1.2.5 修改hadoop配置文件

编辑D:\setupedsoft\hadoop-2.7.6\etc\hadoop\core-site.xml

 

        hadoop.tmp.dir

        /D:/datafile/hadoop-2.7.6/workplace/temp

   

   

        dfs.name.dir

        /D:/datafile/hadoop-2.7.6/workplace/name

   

   

        fs.default.name

        hdfs://localhost:9000

   

 

   

        fs.defaultFS

        hdfs://localhost:9000

   

编辑D:\setupedsoft\hadoop-2.7.6\etc\hadoop\mapred-site.xml

   

       mapreduce.framework.name

       yarn

   

          

       mapred.job.tracker

       hdfs://localhost:9001

   

编辑D:\setupedsoft\hadoop-2.7.6\etc\hadoop\hdfs-site.xml

 

 

        dfs.replication

        1

   

        

        dfs.data.dir

        /D:/datafile/hadoop-2.7.6/workplace/data

   

   

        dfs.namenode.name.dir

        /D:/datafile/hadoop-2.7.6/workplace/namenode

   

   

        dfs.datanode.data.dir

        /D:/datafile/hadoop-2.7.6/workplace/datanode

   

编辑D:\setupedsoft\hadoop-2.7.6\etc\hadoop\yarn-site.xml

   

       yarn.nodemanager.aux-services

       mapreduce_shuffle

   

   

       yarn.nodemanager.aux-services.mapreduce.shuffle.class

       org.apache.hadoop.mapred.ShuffleHandler

   

编辑D:\setupedsoft\hadoop-2.7.6\etc\hadoop\hadoop-env.cmd 

找到set JAVA_HOME=%JAVA_HOME%%JAVA_HOME%替换为D:\setupedsoft\Java\jdk1.8.0_171

1.2.6 格式化命名节点

终端运行hdfs namenode -format,出现类似INFO util.ExitUtil: Exiting with status0则说明没有错 

D:\setupedsoft\hadoop-2.7.6\bin>hdfs namenode -format

1.2.7 启动hadoop

切换到hadoopsbin目录,执行start-all.cmd 

D:\setupedsoft\hadoop-2.7.6\sbin>start-all.cmd

1.2.8 web ui界面查看

http://localhost:8088/cluster 

http://localhost:50070/dfshealth.html#tab-overview

1.2.9 停止所有节点

最后我们可以使用“stop-all”停止Hadoop

 

1.3Spark-2.3.0

1.3.1 下载并解压

官网下载Spark2.3.0 http://spark.apache.org/downloads.html,解压至安装目录 D:\setupedsoft\spark-2.3.0-bin-hadoop2.7

1.3.2 新建环境变量SPARK_HOME 

新建环境变量SPARK_HOME,值为spark安装目录 

%SPARK_HOME%\bin添加至环境变量path 

1.3.3 运行SPARK

终端输入spark-shellpysparksparkR,能成功打开则安装成功

1.3.4 界面查看

http://localhost:4040

 

1.4  Scala-2.11.8

2.12.5不行。改为12.11.8

a.设置 SCALA_HOME 变量

b.设置 Path 变量:添加 ;%SCALA_HOME%\bin

c.设置 Classpath 添加:.;%SCALA_HOME%\bin;

 

 

配置JDKScala SDK 菜单路径:Project Structure>>Platform Settings

SDKs,添加上述安装的jdk

Global Libraries,添加Scala SDK,选择上述安装的Scala,版本选择2.11,并将Scala SDK2.11添加到当前项目

 

 

 

1.5  Maven-3.5.3

下载地址:http://maven.apache.org/download.cgi,解压到目录:D:\setupedsoft\apache-maven-3.5.3

a.设置 MAVEN_HOME 变量,值为:D:\setupedsoft\apache-maven-3.5.3

b.设置 Path 变量:添加 ;%MAVEN_HOME%\bin;

查看MAVEN安装是否成功: mvn-v

 

1.6  IntelliJIDEA 安装 

下载地址:http://www.jetbrains.com/idea/download/#section=windows

选择开源版本64

1.7   IDEA环境安装

1.7.1 安装idea

执行EXE文件安装

1.7.2 修改maven配置

配置maven 菜单路径:File>>Setting>>Build,Execution,Deployment>>BuildTools>>Maven 设置maven安装路径

1.7.3 Scala插件安装

Scala插件安装 菜单路径:File>>Setting>>Plugins>>Browse Repositories 搜索Scala,安装 Scala(Version:2018.1.9),SBT(Version: 1.8.0),SBT Executor(Version: 1.2.1)

首先在欢迎界面点击Configure,选择plugins如下图所示:

因为的安装过了所以事uninstall 没有安装的话是 install ,安装成功后,点击OK退出。

注意:插件安装完了之后,记得重启一下IntelliJ IDEA使得插件能够生效。

1.7.4 全局JDK和Library的设置

为了不用每次都去配置JDK,这里先进行一次全局配置。首先在欢迎界面点击Configure,然后在Project Defaults(已创建的项目在file菜单)的下拉菜单中选择ProjectStructure,在打开的Default Project Structure界面的左侧边栏选择Project,在右侧打开的页面中创建一个新的JDK选项(一定要本机已经安装过JDK了),如下图所示步骤在下拉菜单中点击JDK后,在打开的对话框中选择你所安装JDK的位置,注意是JDK安装的根目录,就是JAVA_HOME中设置的目录。


1.7.5 配置全局的Scala SDK

在欢迎页面的右下角点击Configure,然后在Project Defaults的下拉菜单中选择Project Structure,在打开的页面左侧选择GlobalLibraries,然后在中间一栏中有一个绿色的加号标志 +,点击后在下拉菜单中选择 Scala SDK

然后在打开的对话框中选择系统本身所安装的Scala(即System对应的版本),点击OK确定,这时候会在中间一栏位置处出现ScalaSDK,在其上右键点击后选择Copy to Project Libraries…,这个操作是为了将Scala SDK添加到项目的默认Library中去。整个流程如下面的动图所示。

1.7.6 新建maven项目

在欢迎界面点击Create NewProject,在打开的页面左侧边栏中,选择Maven,然后在右侧的Project SDK一项中,查看是否是正确的JDK配置项正常来说这一栏会自动填充的,因为我们之前在前面章节中已经配置过了全局的Project JDK了,如果这里没有正常显示JDK的话,可以点击右侧的New…按钮,然后指定JDK安装路径的根目录即可),然后点击Next,来到Maven项目最重要三个参数的设置页面,这三个参数分别为:GroupId,ArtifactIdVersion. 步骤如下图所示:

GroupId一般分为多个段,这里我只说两段,第一段为域,第二段为公司名称。如:com.alibaba

ArtifactId就是项目的唯一的标识符,一般是项目名。比如:dubbo 

Version为版本号,如:v1.0.0

此时已成功创建一个项目,但无法创建scala类。只有java class可选。

main目录下创建一个scala的目录

此时scala目录既不可创建java class,也不可以创建scala class文件。

此时需要将Scala的框架添加到这个项目中,方法是在左侧栏中的项目名称上右键菜单中点击Add Framework Support,然后在打开的对话框左侧边栏中,勾选Scala前面的复选框,然后点击确定即可(前提是上文中所述步骤都已正确走通,否则你很有可能看不到Scala这个选项的)

此时已可在项目中看到增加了scala的引用包

file-projectstructure-modules中,将scala目录标记为sources

在已经标记好为源文件根目录的 scala 文件夹上,右键选择 New,然后选择 Scala Class,随后设置好程序的名称,并且记得将其设置为一个 Object(类似于Java中含有静态成员的静态类),正常的话,将会打开这个 Object 代码界面,并且可以看到IntelliJ IDEA自动添加了一些最基本的信息;

在创建的 Object 中输入如下语句:

defmain(args: Array[String]):Unit = {

println("Hello World!")

}

 

在程序界面的任意位置,右键单击后选择 Run '你的程序名称',静待程序的编译和运行,然后在下方自动打开的窗口中,你就可以看到振奋人心的 Hello World!

1.7.7 导入spark依赖

此时你已经可以成功的运行一个Scala 项目了。想要运行在spark 上则还需要导入相关依赖。打开pom.xml文件添加如下依赖。

注意:是添加如下依赖;spark Scala的版本是对应的。

         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"

         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">

    4.0.0

 

    com.hanr

    test2

    1.0-SNAPSHOT

 

   

        UTF-8

        2.3.0

        2.11

        2.7

   

 

 

   

       

            org.apache.spark

            spark-core_${scala.version}

            ${spark.version}

       

       

            org.apache.spark

            spark-streaming_${scala.version}

            ${spark.version}

       

       

            org.apache.spark

            spark-sql_${scala.version}

            ${spark.version}

        

       

            org.apache.spark

            spark-hive_${scala.version}

            ${spark.version}

       

       

            org.apache.spark

            spark-mllib_${scala.version}

            ${spark.version}

       

 

   

 

   

       

 

           

                org.scala-tools

                maven-scala-plugin

                2.15.2

               

                   

                       

                            compile

                            testCompile

                       

                   

               

           

 

           

                maven-compiler-plugin

                3.6.0

               

                    1.8

                    1.8

               

           

 

            

                org.apache.maven.plugins

                maven-surefire-plugin

                2.19

               

                    true

                

           

 

       

   

导入依赖以后记得点击,这个引入jar 包哦

1.7.8编写sprak代码

依赖添加成功后,新建scala object 文件然后填写如下代码,本文以运行一个pi作示例。

import scala.math.random

import org.apache.spark._

object SparkPi {

  def main(args: Array[String]) {

    val conf = new SparkConf().setAppName("Spark Pi").setMaster("local")

    val spark = new SparkContext(conf)

    val slices = if (args.length > 0) args(0).toInt else 2

    val n = math.min(100000L * 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()

  }

}

代码编写好以后,右键 run ‘SparkPi运行。

1.7.9打包运行

运行成功后,可以讲代码打包成jar 包发送到远端或者本地的spark 集群上运行。打包有以下步骤

点击“File“然后选择“project Structure“

  

然后如图所示进行如下操作 

在弹出的对话框中点击按钮,选择主类进行如下4步操作。

由于我们的jar包实在spark 上运行的,所可以删除其他不需要的依赖包,如下图所示,删除其他不需要的包,只留下红色矩形中的两个。

注意:outputdirectory 的路径。此处是你导出 jar 的路径。

执行 bulid 构建你的jar

jar 包导出以后就可以在spark上运行了。包导出路径是在project structureoutput directoryD:\hanrworkspace\mytest\out\artifacts\mytest_jar

此时进入终端,进入到spark安装包的 bin 目录下。执行如下命令:

spark-submit--class SparkPi --master spark://spark1:7077/D:/hanrworkspace/mytest/out/artifacts/mytest_jar/mytest.jar

注:

SparkPi:是启动类的名字,如果有包命,要加包名,(例如 com.edu.SparkPi

spark1:7077 是你远端的spark 的地址,(spark1:7077为提交到本机测试)。

/D:/hanrworkspace/mytest/out/artifacts/mytest_jar/mytest.jar是你jar 包的路径。

运行结果如下图所示:

 

1.8Git集成

后续补充


 本文章参考了好几位大神的文章,部分内容作了细化,非完全原创。

参考链接:https://my.oschina.net/orrin/blog/1812035

 


你可能感兴趣的:(大数据,spark)