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


目录
相关文章
|
29天前
|
NoSQL 数据可视化 Redis
Mac安装Redis
Mac安装Redis
35 3
|
29天前
|
关系型数据库 MySQL 数据安全/隐私保护
Mac安装Mysql5.7
Mac安装Mysql5.7
46 5
|
29天前
|
缓存 关系型数据库 MySQL
Mac安装brew
Mac安装brew
106 5
|
29天前
|
Oracle Java 关系型数据库
Mac安装JDK1.8
Mac安装JDK1.8
266 4
|
29天前
|
数据安全/隐私保护 iOS开发 MacOS
Mac安装Navicat Premium 16.3.5
Mac安装Navicat Premium 16.3.5
87 3
|
1月前
|
关系型数据库 MySQL 数据库
【Mac os系统】安装MySQL数据库
本文详细介绍了在Mac OS系统上安装MySQL数据库的步骤,包括下载、安装、配置环境变量、启动服务、授权设置以及解决常见问题,并提供了一些常用的MySQL命令。
56 0
【Mac os系统】安装MySQL数据库
|
9天前
|
Web App开发 开发工具 Android开发
【Flutter】Flutter安装和配置(mac)
【Flutter】Flutter安装和配置(mac)
|
13天前
|
Shell 数据安全/隐私保护
Mac上HomeBrew安装及换源教程
【8月更文挑战第30天】这是在 Mac 上安装及更换 Homebrew 源的教程。首先通过终端执行命令 `/bin/bash -c &quot;\$\(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh\)` 安装 Homebrew,并使用 `brew --version` 检查是否安装成功。接着可更换软件源以提高下载速度,例如设置中科大为源,并更新相关设置。这将有助于提升 Homebrew 的使用体验。
152 9
|
29天前
|
应用服务中间件 PHP nginx
Mac安装Nginx
Mac安装Nginx
21 2
Mac安装Nginx
|
1月前
【科研技巧】Mac系统如何给Endnote 20安装GB/T中文文献格式以及利用Endnote在Word中插入参考文献
在Mac系统下给Endnote 20安装GB/T中文文献格式的步骤以及如何利用Endnote在Word中插入符合GB/T格式的参考文献。
109 5
【科研技巧】Mac系统如何给Endnote 20安装GB/T中文文献格式以及利用Endnote在Word中插入参考文献