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


目录
相关文章
|
7月前
|
流计算 UED
「Mac畅玩鸿蒙与硬件48」UI互动应用篇25 - 简易购物车功能实现
本篇教程将带你实现一个简易购物车功能。通过使用接口定义商品结构,我们将创建一个动态购物车,支持商品的添加、移除以及实时总价计算。
241 69
「Mac畅玩鸿蒙与硬件48」UI互动应用篇25 - 简易购物车功能实现
|
4月前
|
Ubuntu Linux Shell
Ubuntu gnome WhiteSur-gtk-theme类mac主题正确安装和卸载方式
通过这个过程,用户不仅可以定制自己的桌面外观,还可以学习到更多关于 Linux 系统管理的知识,从而更好地掌握系统配置和主题管理的技巧。
476 12
|
4月前
|
SQL 分布式计算 关系型数据库
基于云服务器的数仓搭建-hive/spark安装
本文介绍了在本地安装和配置MySQL、Hive及Spark的过程。主要内容包括: - **MySQL本地安装**:详细描述了内存占用情况及安装步骤,涉及安装脚本的编写与执行,以及连接MySQL的方法。 - **Hive安装**:涵盖了从上传压缩包到配置环境变量的全过程,并解释了如何将Hive元数据存储配置到MySQL中。 - **Hive与Spark集成**:说明了如何安装Spark并将其与Hive集成,确保Hive任务由Spark执行,同时解决了依赖冲突问题。 - **常见问题及解决方法**:列举了安装过程中可能遇到的问题及其解决方案,如内存配置不足、节点间通信问题等。
基于云服务器的数仓搭建-hive/spark安装
|
4月前
|
监控 Shell Linux
Android调试终极指南:ADB安装+多设备连接+ANR日志抓取全流程解析,覆盖环境变量配置/多设备调试/ANR日志分析全流程,附Win/Mac/Linux三平台解决方案
ADB(Android Debug Bridge)是安卓开发中的重要工具,用于连接电脑与安卓设备,实现文件传输、应用管理、日志抓取等功能。本文介绍了 ADB 的基本概念、安装配置及常用命令。包括:1) 基本命令如 `adb version` 和 `adb devices`;2) 权限操作如 `adb root` 和 `adb shell`;3) APK 操作如安装、卸载应用;4) 文件传输如 `adb push` 和 `adb pull`;5) 日志记录如 `adb logcat`;6) 系统信息获取如屏幕截图和录屏。通过这些功能,用户可高效调试和管理安卓设备。
|
4月前
|
SQL 分布式计算 资源调度
Dataphin功能Tips系列(48)-如何根据Hive SQL/Spark SQL的任务优先级指定YARN资源队列
如何根据Hive SQL/Spark SQL的任务优先级指定YARN资源队列
123 4
|
4月前
|
分布式计算 监控 Java
|
8月前
「Mac畅玩鸿蒙与硬件26」UI互动应用篇3 - 倒计时和提醒功能实现
本篇将带领你实现一个倒计时和提醒功能的应用,用户可以设置倒计时时间并开始计时。当倒计时结束时,应用会显示提醒。该项目涉及时间控制、状态管理和用户交互,是学习鸿蒙应用开发的绝佳实践项目。
285 2
「Mac畅玩鸿蒙与硬件26」UI互动应用篇3 - 倒计时和提醒功能实现
|
8月前
|
开发工具 git 开发者
「Mac畅玩鸿蒙与硬件3」鸿蒙开发环境配置篇3 - DevEco Studio插件安装与配置
本篇将专注于如何在 DevEco Studio 中安装和配置必要的插件,以增强开发功能和提升效率。通过正确配置插件,开发流程能够得到简化,开发体验也会更加顺畅。
344 1
「Mac畅玩鸿蒙与硬件3」鸿蒙开发环境配置篇3 - DevEco Studio插件安装与配置
|
8月前
|
开发工具 iOS开发 开发者
「Mac畅玩鸿蒙与硬件2」鸿蒙开发环境配置篇2 - 在Mac上安装DevEco Studio
本篇将专注于如何在 Mac 上安装鸿蒙开发工具 DevEco Studio,确保开发环境能够顺利搭建。完成安装后,可以正式开始鸿蒙应用的开发工作。
513 1
「Mac畅玩鸿蒙与硬件2」鸿蒙开发环境配置篇2 - 在Mac上安装DevEco Studio

热门文章

最新文章