IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 大数据 -> Spark快速大数据分析——Spark安装与IDEA 开发(贰) -> 正文阅读

[大数据]Spark快速大数据分析——Spark安装与IDEA 开发(贰)

Spark快速大数据分析——Spark安装(贰)

软件环境:

  • Hadoop-3.3.2
  • Spark-3.1.3/Spark-3.2.1(sbt pull)
  • JDK 11
  • Scala 2.13.8/SCala 2.12(搭配Spark3.1.3使用)

环境搭建:

首先下载Spark:Spark下载地址 推荐Spark 3.1.3作为Spark-shell应用稳定。Spark3.2.1的bug,详情点击此处
如果你下载真的很慢也没有魔法下载,可以使用:配套环境下载( 记得给个star!)
请添加图片描述
点击下载Spark,如果你网速慢也该可以通过我的gitee来下载。
gitee地址:配套环境下载
下载后直接解压到自己的新建的目录即可:
请添加图片描述

然后添加系统环境变量(直接再path里面添加哦):
请添加图片描述

spark的运行需要Hadoop的支持,所以还需要下载Hadoop来支持运行:

Hadoop下载地址

也是压缩包需要注意的是解压需要提供管理员权限

解压完后添加环境变量和系统变量。
请添加图片描述

新建一个系统变量:

请添加图片描述

到这里还没有完,如果你是win环境下开发打开命令行输入代码测试:

spark-shell

可能会遇到报错:

C:\spark-3.2.0-bin-hadoop3.2\bin>spark-shell
Using Spark's default log4j profile: org/apache/spark/log4j-defaults.properties
Setting default log level to "WARN".
To adjust logging level use sc.setLogLevel(newLevel). For SparkR, use setLogLevel(newLevel).
21/11/11 00:14:24 WARN NativeCodeLoader: Unable to load native-hadoop library for your platform... using builtin-java classes where applicable
21/11/11 00:14:26 ERROR SparkContext: Error initializing SparkContext.
java.lang.reflect.InvocationTargetException
        at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
        at sun.reflect.NativeConstructorAccessorImpl.newInstance(Unknown Source)
        at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(Unknown Source)
        at java.lang.reflect.Constructor.newInstance(Unknown Source)
        at org.apache.spark.executor.Executor.addReplClassLoaderIfNeeded(Executor.scala:909)
        at org.apache.spark.executor.Executor.<init>(Executor.scala:160)
        at org.apache.spark.scheduler.local.LocalEndpoint.<init>(LocalSchedulerBackend.scala:64)
        at org.apache.spark.scheduler.local.LocalSchedulerBackend.start(LocalSchedulerBackend.scala:132)
        at org.apache.spark.scheduler.TaskSchedulerImpl.start(TaskSchedulerImpl.scala:220)
        at org.apache.spark.SparkContext.<init>(SparkContext.scala:581)
        at org.apache.spark.SparkContext$.getOrCreate(SparkContext.scala:2690)
        at org.apache.spark.sql.SparkSession$Builder.$anonfun$getOrCreate$2(SparkSession.scala:949)
        at scala.Option.getOrElse(Option.scala:189)
        at org.apache.spark.sql.SparkSession$Builder.getOrCreate(SparkSession.scala:943)
        at org.apache.spark.repl.Main$.createSparkSession(Main.scala:106)
        at $line3.$read$$iw$$iw.<init>(<console>:15)
        at $line3.$read$$iw.<init>(<console>:42)
        at $line3.$read.<init>(<console>:44)
        at $line3.$read$.<init>(<console>:48)
        at $line3.$read$.<clinit>(<console>)
        at $line3.$eval$.$print$lzycompute(<console>:7)
        at $line3.$eval$.$print(<console>:6)
        at $line3.$eval.$print(<console>)
        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
        at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
        at java.lang.reflect.Method.invoke(Unknown Source)

但没关系,我帮你踩坑了~

只需要按照对应版本进行下载win的开发工具下载地址:
然后替换bin目录下的内容即可:配套环境下载
请添加图片描述

在任意地方打开cmd:

输入 spark-shell。等待一会:
请添加图片描述
你可以看到下边有一行报错不过这个没问题,因为shell设计时是为了Linux,此时没办法再winshell李敏计算窗体大小,不影响使用可以看看原作者的回复:

引用一个库看一看:

请添加图片描述

如果正常恭喜你完成了80%,这些都是基于命令行的,可是我们要基于IDEA要怎么开发呢?

首先idea支持的构建方式首选的是SBT,如果你没有安装sbt可以参考上一篇文章:SBT安装

注意!!也可以通过IDEA下载,这里选择NEXT就行啦!

打开IDEA新建一个项目:
请添加图片描述

系统会自动检测你的安装的SBT和SCALA
这里我已经提前 安装了2.13.8 推荐安装一个早期版本(2.12)能和Spark适配。
Spark 3.2.1 才和 Scala 2.13.8完美适配
这里没关系IDEA可以很方便切换版本不用担心。
请添加图片描述

在创建完成后在build.sbt中添加如下代码:

libraryDependencies += "org.apache.spark" % "spark-core_2.12" % "3.1.3"

请添加图片描述

如果你在MVN找到的sbt依赖添加代码是这样的:

libraryDependencies += "org.apache.spark" %% "spark-core" % "3.1.3"

或者是这样的:

libraryDependencies += "org.apache.spark" % "spark-core" % "3.1.3"
//这个是错的 %% 才能自动指定scala版本

有可能会报错:

请添加图片描述

这个就是Scala版本无法和选择Spark所匹配造成的。没关系更改一下版本就可以:

libraryDependencies += "org.apache.spark" %% "spark-core" % "3.2.1"

请添加图片描述

如果更改版本还没办法的话可以指定一下版本:

libraryDependencies += "org.apache.spark" % "spark-core_2.12" % "3.1.3"

请添加图片描述

但是你如过不太清楚构建spark的scala和你本地的scala是否匹配的话建议还是用“%%”来自动匹配版本:

否则就会报错:

Exception in thread "main" java.lang.NoSuchMethodError: 'void scala.util.matching.Regex.<init>(java.lang.String, scala.collection.Seq)'
	at scala.collection.immutable.StringLike.r(StringLike.scala:284)
	at scala.collection.immutable.StringLike.r$(StringLike.scala:284)
	at scala.collection.immutable.StringOps.r(StringOps.scala:33)
	at scala.collection.immutable.StringLike.r(StringLike.scala:273)
	at scala.collection.immutable.StringLike.r$(StringLike.scala:273)
	at scala.collection.immutable.StringOps.r(StringOps.scala:33)
	at org.apache.spark.util.Utils$.<init>(Utils.scala:105)
	at org.apache.spark.util.Utils$.<clinit>(Utils.scala)
	at org.apache.spark.SparkConf.loadFromSystemProperties(SparkConf.scala:75)
	at org.apache.spark.SparkConf.<init>(SparkConf.scala:70)
	at org.apache.spark.SparkConf.<init>(SparkConf.scala:59)
	at com.demo.test$.main(test.scala:8)
	at com.demo.test.main(test.scala)

这里给一段测试代码,如果报错了你就要更换spark版本:

package com.demo
import org.apache.spark.{SparkConf, SparkContext}

object test
{

  def main(args: Array[String]): Unit = {
    val conf = new SparkConf().setMaster("local").setAppName("HelloWorld")

    val sc = new SparkContext(conf)

    val helloWorld = sc.parallelize(List("Hello,World!","Hello,Spark!","Hello,BigData!"))

    helloWorld.foreach(line => println(line))
  }

}

如果没问题,环境就搭建好了!

但是你会有个疑问:

为什么我都本地下载了Spark,还需要下载托管的Spark?

这是我刚开始的疑问,SBT不能同时管理本地的jar包吗?必须重新下载后才能管理本地内容吗?

通过SBT手动添加JAR包是可以的,但是有点复杂 而且需要添加多个才能使用,所以这里推荐另一个模式来构建项目:

我们来利用IDEA本身的管理来构建Scala项目,在创建栏选择IDEA:

请添加图片描述

后面都是一样的,这里主要讲解一下如何导入本地Spark实现项目构建:

选择对应选项卡:

请添加图片描述

Golobal Libraries用+添加Spark
请添加图片描述

选择java选项:

请添加图片描述

找到自己Spark安装的:

请添加图片描述

点击OK:
请添加图片描述

如果出现Problems点击一下Fix,选择添加到依赖修复即可:
请添加图片描述

在外部库中可以看见jars,并且可以引用Spark
请添加图片描述

  大数据 最新文章
实现Kafka至少消费一次
亚马逊云科技:还在苦于ETL?Zero ETL的时代
初探MapReduce
【SpringBoot框架篇】32.基于注解+redis实现
Elasticsearch:如何减少 Elasticsearch 集
Go redis操作
Redis面试题
专题五 Redis高并发场景
基于GBase8s和Calcite的多数据源查询
Redis——底层数据结构原理
上一篇文章      下一篇文章      查看所有文章
加:2022-03-16 22:27:35  更:2022-03-16 22:31:41 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/24 7:01:34-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码