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


目录
相关文章
|
2月前
|
NoSQL 数据可视化 Redis
Mac安装Redis
Mac安装Redis
44 3
|
19天前
|
iOS开发 MacOS Windows
Mac air使用Boot Camp安装win10 ,拷贝 Windows 文件时出错
Mac air使用Boot Camp安装win10 ,拷贝 Windows 文件时出错
|
2月前
|
关系型数据库 MySQL 数据安全/隐私保护
Mac安装Mysql5.7
Mac安装Mysql5.7
58 5
|
2月前
|
缓存 关系型数据库 MySQL
Mac安装brew
Mac安装brew
139 5
|
2月前
|
Oracle Java 关系型数据库
Mac安装JDK1.8
Mac安装JDK1.8
350 4
|
2月前
|
数据安全/隐私保护 iOS开发 MacOS
Mac安装Navicat Premium 16.3.5
Mac安装Navicat Premium 16.3.5
118 3
|
2月前
|
关系型数据库 MySQL 数据库
【Mac os系统】安装MySQL数据库
本文详细介绍了在Mac OS系统上安装MySQL数据库的步骤,包括下载、安装、配置环境变量、启动服务、授权设置以及解决常见问题,并提供了一些常用的MySQL命令。
94 0
【Mac os系统】安装MySQL数据库
|
19天前
|
项目管理 Python
如何在Mac上安装多个Python环境
在你的Mac上使用多个Python环境可以对项目管理很有帮助,特别是在同时处理不同Python版本或不同的包需求时。在这篇文章中,我们将向你展示如何在Mac上轻松地安装和管理多个Python环境。
25 5
 如何在Mac上安装多个Python环境
|
7天前
|
数据采集 中间件 关系型数据库
Mac系统通过brew安装mysql5.7后,启动报错的解决办法
Mac系统通过brew安装mysql5.7后,启动报错的解决办法
20 2
|
18天前
|
Oracle Java 关系型数据库
Mac电脑上安装和配置Flutter开发环境
Mac电脑上安装和配置Flutter开发环境
38 3
下一篇
无影云桌面