Mac安装Spark+Spark基本功能

简介: 主要实现的是mac安装spark,spark基本的wordcount代码,spark on yarn
  1. 安装scala,brew install scala
  2. 配置scala到环境变量
  3. 安装Spark,brew install spark
  4. 配置spark到环境变量
  5. 不能使用的版本,安装brew install apache-spark
  6. 更改环境变量,使用spark-shell检验是否安装成功
  7. 进入到sbin目录下,使用./start-all.sh启动sprk,注意加.,因为不加的话,我启动的命令会是hadoop的start-all.sh
  8. 进入web页面查看http://localhost:8080/
  9. 使用命令spark-shell --master spark://bogon:7077将spark作业提交到master,运行代码

 

sc.textFile("/Users/mac/Downloads/01.csv")
      .flatMap(line=>line.split(","))
      .map(w=> (w, 1))
      .reduceByKey(_+_)
      .map { case (word, count) => (count, word) }
      .sortByKey(true)
      .map { case (count, word) => (word, count) }
      .foreach(println)
  1. 尝试在idea运行,此刻需要在pom中引入依赖

 

<!-- https://mvnrepository.com/artifact/org.apache.spark/spark-core --><dependency><groupId>org.apache.spark</groupId><artifactId>spark-core_2.13</artifactId><version>3.3.0</version></dependency>
  1. 但发现代码只能在本地local模式下运行,每次尝试连接master报错StandaloneAppClient$ClientEndpoint: Failed to connect to master bogon:7077
  2. 有人说是版本导致,查询sprak-shell的版本,修改pom中sprak-core_2.13为spark-core_2.12,将项目中的scala版本从2.13改为2.12.15

  1. 后运行,错误修改,出现新错误cannot assign instance of java.lang.invoke.SerializedLambda to field org.apache.spark.rdd.MapPartitionsRDD
  2. 百度结果:standalone方式远程调用进要把jar传给worker需要增加,可以在conf后setjars来指定jar包,确保分发成功
  3. 但代码是scala代码,所以pom依赖需要增加plugins,才能打包成功
<build><plugins><plugin><groupId>net.alchim31.maven</groupId><artifactId>scala-maven-plugin</artifactId><version>3.2.1</version><executions><execution><id>scala-compile-first</id><phase>process-resources</phase><goals><goal>add-source</goal><goal>compile</goal></goals></execution><execution><id>scala-test-compile</id><phase>process-test-resources</phase><goals><goal>add-source</goal><goal>testCompile</goal></goals></execution></executions><configuration><args><!-- 编译时使用 libs 目录下的 jar 包,通过 mvn scala:help 查看说明 --><arg>-extdirs</arg><arg>${project.basedir}/libs</arg></args><scalaVersion>2.12.15</scalaVersion></configuration></plugin></plugins></build>
  1. 同时代码需要进行修改,修法后代码如下:
packagecom.daishuimportorg.apache.spark.{SparkConf, SparkContext}
objectLy001 {
defmain(args: Array[String]): Unit= {
valjars=List("/Users/mac/IdeaProjects/ly04/target/ly04-1.0-SNAPSHOT.jar")
valconf=newSparkConf()
      .setAppName("ly001")
      .setJars(jars)
      .setMaster("spark://bogon:7077")
valsc=newSparkContext(conf)
sc.textFile("/Users/mac/Downloads/01.csv")
      .flatMap(line=>line.split(","))
      .map(w=> (w, 1))
      .reduceByKey(_+_)
      .map { case (word, count) => (count, word) }
      .sortByKey(true)
      .map { case (count, word) => (word, count) }
      .foreach(println)
  }
}
  1. 好了,新的报错来了:java.io.FileNotFoundException: /Users/mac/Downloads/01.csv (Operation not permitted)
  2. 原因是读取的文件不在项目目录下,放在项目目录下,修改文件路径即可成功sc.textFile("src/main/resources/01.csv");同样,读取hdfs的文件也是只需要将路径更改sc.textFile("hdfs://localhost:8020/user/hive/warehouse/ly001.db/dwd_mn_mkt_order_master_df_ds/ds=20230101/*")
  3. 尝试在hive中修改引擎从mr到sparkset hive.execution.engine=spark;但需要注意版本问题,建议还是不要安装过于靠前的版本

  1. 如果想实现sprk on yarn,则可以先在spark-env中配置参数,配置好之后可以使用spark-shell --master yarn进入spark,此时运行的任务就会出现在yarn的8088端口
exportYARN_CONF_DIR=/usr/local/Cellar/hadoop/3.3.4/libexec/etc/hadoop
exportHADOOP_CONF_DIR=/usr/local/Cellar/hadoop/3.3.4/libexec/etc/hadoop


目录
相关文章
|
3月前
|
NoSQL 数据可视化 Redis
Mac安装Redis
Mac安装Redis
75 3
|
2月前
|
iOS开发 MacOS Windows
Mac air使用Boot Camp安装win10 ,拷贝 Windows 文件时出错
Mac air使用Boot Camp安装win10 ,拷贝 Windows 文件时出错
|
3月前
|
数据安全/隐私保护 iOS开发 MacOS
Mac安装Navicat Premium 16.3.5
Mac安装Navicat Premium 16.3.5
279 3
|
14天前
|
开发工具 iOS开发 开发者
「Mac畅玩鸿蒙与硬件2」鸿蒙开发环境配置篇2 - 在 Mac 上安装 DevEco Studio
本篇将专注于如何在 Mac 上安装鸿蒙开发工具 DevEco Studio,确保开发环境能够顺利搭建。完成安装后,可以正式开始鸿蒙应用的开发工作。
51 1
「Mac畅玩鸿蒙与硬件2」鸿蒙开发环境配置篇2 - 在 Mac 上安装 DevEco Studio
|
1月前
|
机器学习/深度学习 Python
【10月更文挑战第5天】「Mac上学Python 6」入门篇6 - 安装与使用Anaconda
本篇将详细介绍如何在Mac系统上安装和配置Anaconda,如何创建虚拟环境,并学习如何使用 `pip` 和 `conda` 管理Python包,直到成功运行第一个Python程序。通过本篇,您将学会如何高效地使用Anaconda创建和管理虚拟环境,并使用Python开发。
64 4
【10月更文挑战第5天】「Mac上学Python 6」入门篇6 - 安装与使用Anaconda
|
1月前
|
IDE 开发工具 iOS开发
【10月更文挑战第3天】「Mac上学Python 3」入门篇3 - 安装Python与开发环境配置
本篇将详细介绍如何在Mac系统上安装Python,并配置Python开发环境。内容涵盖Python的安装、pip包管理工具的配置与国内镜像源替换、安装与配置PyCharm开发工具,以及通过PyCharm编写并运行第一个Python程序。通过本篇的学习,用户将完成Python开发环境的搭建,为后续的Python编程工作打下基础。
174 2
【10月更文挑战第3天】「Mac上学Python 3」入门篇3 - 安装Python与开发环境配置
|
1月前
|
iOS开发 MacOS Python
【10月更文挑战第1天】「Mac上学Python 1」入门篇1 - 安装Typora与Markdown编辑技巧
本篇将详细介绍如何在Mac系统上安装Typora这款简洁高效的Markdown编辑器,并学习Markdown常用语法。通过本篇,用户能够准备好记录学习笔记的工具,并掌握基本的文档编辑与排版技巧,为后续学习提供便利。
149 1
【10月更文挑战第1天】「Mac上学Python 1」入门篇1 - 安装Typora与Markdown编辑技巧
|
1月前
|
NoSQL Shell MongoDB
Mac OSX 平台安装 MongoDB
10月更文挑战第11天
20 4
|
1月前
|
应用服务中间件 Linux nginx
Mac os 安装 nginx 教程(success)
这篇文章是关于如何在Mac OS系统上使用Homebrew安装nginx及其依赖,并解决安装过程中可能出现的权限问题。
80 0
Mac os 安装 nginx 教程(success)
|
2月前
|
项目管理 Python
如何在Mac上安装多个Python环境
在你的Mac上使用多个Python环境可以对项目管理很有帮助,特别是在同时处理不同Python版本或不同的包需求时。在这篇文章中,我们将向你展示如何在Mac上轻松地安装和管理多个Python环境。
63 5
 如何在Mac上安装多个Python环境