[1032]spark-3.0安装和入门
2021/7/26 6:12:08
本文主要是介绍[1032]spark-3.0安装和入门,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
文章目录
- 一.Windows安装
- 1.安装
- 2.使用
- 二.Linux安装
- 一般安装模式
- 下载
- 设置环境变量
- 修改配置
- 启动
- 确认启动成功
- Local模式
- 1.安装
- 2.使用
- yarn模式
- 1.安装
- 2.使用
- 3.spark的历史服务器集成yarn
在这之前已经在本地安装了hadoop和hive,参考大数据相关整理
spark官网下载:http://spark.apache.org/downloads.html
一.Windows安装
1.安装
将spark-3.0.0-bin-hadoop3.2.tgz解压到非中文目录
2.使用
bin/spark-shell.cmd : 提供一个交互式shell
val result: String = sc.textFile("input").flatMap(_.split(" ")).map((_, 1)).reduceByKey( _ + _).collect().mkString(",")
可以打开WEB UI:http://localhost:4040/
(每一个spark-shell会初始化一个spark-context,是一个job,关闭窗口后,就没有这个页面了)
测试一下电脑上已经安装的Spark版本是否支持Hive,(spark-3.1.2是支持hive的)
scala> import org.apache.spark.sql.hive.HiveContext <console>:25: error: object hive is not a member of package org.apache.spark.sql import org.apache.spark.sql.hive.HiveContext
看到了吧,会返回错误信息,也就是spark无法识别org.apache.spark.sql.hive.HiveContext,这就说明你当前电脑上的Spark版本不包含Hive支持。
如果你当前电脑上的Spark版本包含Hive支持,那么应该显示下面的正确信息:
scala> import org.apache.spark.sql.hive.HiveContext import org.apache.spark.sql.hive.HiveContext
bin/spark-submit.cmd: 将程序打包后,提交运行!打包过程参考:idea开发spark程序
1)进入D:\SoftWare\spark\spark-3.0.0-bin-hadoop3.2\bin
2)将jar包上传到bin目录下,和测试的文件
3)在该目录路径输入cmd
打开cmd窗口
输入以下命令测试
spark-submit --class com.spark.day01.WcCount 09sparkdemo-1.0-SNAPSHOT.jar 1.txt
二.Linux安装
一般安装模式
下载
#下载,地址失效就从官网下载 http://spark.apache.org/downloads.html $ wget https://mirror.bit.edu.cn/apache/spark/spark-3.0.0/spark-3.0.0-bin-hadoop3.2.tgz #解压,路径为/Users/zheng/spark/spark-3.0.0 $ tar -zxvf spark-3.0.0-bin-hadoop3.2.tgz #重命名 $ cp spark-3.0.0-bin-hadoop3.2.tgz spark-3.0.0 #修改权限,这里不修改权限,最后启动spark的时候会报一些文件找不到 $ chmod -R 755 /spark-3.0.0
设置环境变量
#设置环境变量 $ vim /etc/profile #增加一下配置: export SPARK_HOME=/Users/zheng/spark/spark-3.0.0 export PATH=$PATH:$SPARK_HOME/bin #保存退出后生效 $ source /etc/profile
修改配置
#进入/spark-3.0.0/conf复制以下几个文件 $ mv spark-defaults.conf.template spark-defaults.conf $ mv slaves.template slaves $ mv spark-env.sh.template spark-env.sh #修改spark-defaults.conf启用yarn模式 spark.master yarn
启动
#进入/spark-3.0.0/sbin,启动spark,start-all.sh表示启动所有 $ ./start-all.sh
确认启动成功
浏览器访问spark master默认地址:http://localhost:8080/
Local模式
一般可以使用local模式进行测试,学习
1.安装
将spark-3.0.0-bin-hadoop3.2.tgz文件上传到linux并解压缩,放置在指定位置,改包名为spark-local
tar -zxvf spark-3.0.0-bin-hadoop3.2.tgz -C /opt/module cd /opt/module mv spark-3.0.0-bin-hadoop3.2 spark-local
2.使用
进入 /opt/module/spark-local目录下
spark-shell:命令行工具
执行以下命令
[hadoop@hadoop103 spark-local]$ bin/spark-shell
[hadoop@hadoop103 spark-local]$ bin/spark-shell 20/07/29 18:54:55 WARN NativeCodeLoader: Unable to load native-hadoop library for your platform... using builtin-java classes where applicable 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). 20/07/29 18:55:06 WARN Utils: Service 'SparkUI' could not bind on port 4040. Attempting port 4041. Spark context Web UI available at http://hadoop103:4041 Spark context available as 'sc' (master = local[*], app id = local-1596020106480). Spark session available as 'spark'. Welcome to ____ __ / __/__ ___ _____/ /__ _\ \/ _ \/ _ `/ __/ '_/ /___/ .__/\_,_/_/ /_/\_\ version 3.0.0 /_/ Using Scala version 2.12.10 (Java HotSpot(TM) 64-Bit Server VM, Java 1.8.0_212) Type in expressions to have them evaluated. Type :help for more information. scala>
通过WEB UI 界面查看:http://hadoop103:4040/jobs/
执行代码
scala> sc.textFile("/opt/module/spark_testdata/1.txt").flatMap(_.split(" ")).map((_,1)).reduceByKey(_+_).collect res0: Array[(String, Int)] = Array((hello,2), (world,2), (spark,1), (hi,2))
spark-submit :提交应用
将写好的spark打包上传至linux,然后执行以下命令
[hadoop@hadoop103 spark-local]$bin/spark-submit --class com.spark.day01.WcCount /opt/module/spark_testdata/09sparkdemo-1.0-SNAPSHOT.jar /opt/module/spark_testdata/1.txt
bin/spark-submit \ --提交应用 --class com.spark.day01.WcCount \ --主类名字 /opt/module/spark_testdata/09sparkdemo-1.0-SNAPSHOT.jar \ --应用类所在的jar包 /opt/module/spark_testdata/1.txt --程序的入口参数
yarn模式
前提,环境中已经安装好hadoop
spark只是类似一个客户端(选择任意一台可以连接上YARN的机器安装即可),YARN是服务端!
1.安装
将spark-3.0.0-bin-hadoop3.2.tgz文件上传到linux并解压缩,放置在指定位置,改包名为spark-yarn
tar -zxvf spark-3.0.0-bin-hadoop3.2.tgz -C /opt/module cd /opt/module mv spark-examples_2.12-3.0.0 spark-yarn
配置
①修改hadoop的/hadoop/etc/hadoop/yarn-site.xml配置文件,然后分发
<!--是否启动一个线程检查每个任务正使用的物理内存量,如果任务超出分配值,则直接将其杀掉,默认是true --> <property> <name>yarn.nodemanager.pmem-check-enabled</name> <value>false</value> </property> <!--是否启动一个线程检查每个任务正使用的虚拟内存量,如果任务超出分配值,则直接将其杀掉,默认是true --> <property> <name>yarn.nodemanager.vmem-check-enabled</name> <value>false</value> </property> <!--允许第三方程序,例如spark将Job的日志,提交给Hadoop的历史服务 --> <property> <name>yarn.log.server.url</name> <value>http://hadoop102:19888/jobhistory/logs</value> </property>
②修改conf/spark-env.sh,添加JAVA_HOME和YARN_CONF_DIR配置
改名 : mv spark-env.sh.template spark-env.sh
YARN_CONF_DIR=/opt/module/hadoop-3.1.3/etc/hadoop #环境变量中有可以不配 export JAVA_HOME=/opt/module/jdk1.8.0_144
2.使用
① 启动HDFS和yarn集群
jps验证下
[hadoop@hadoop103 spark-local]$ myjps ================ hadoop102 JPS ===================== 1809 NameNode 2434 Jps 1939 DataNode 2281 NodeManager ================ hadoop103 JPS ===================== 2867 NodeManager 2552 DataNode 2744 ResourceManager 3263 Jps ================ hadoop104 JPS ===================== 1587 DataNode 1797 NodeManager 1676 SecondaryNameNode 1951 Jps
web界面验证下:
HDFS:http://hadoop102:9870/
YARN:http://hadoop103:8088/
② 提交应用
官方案例
bin/spark-submit \ --class org.apache.spark.examples.SparkPi \ --master yarn \ --deploy-mode cluster \ ./examples/jars/spark-examples_2.12-3.0.0.jar \ 10
自定义的WordCount程序
bin/spark-submit \ --class com.spark.day01.WcCount \ --master yarn \ --deploy-mode cluster \ /opt/module/spark_testdata/09sparkdemo-1.0-SNAPSHOT.jar \ hdfs://hadoop102:8020/input
注意:
读取的文件最好放在hdfs路径,注意端口号别写错,core-site.xml中配置。
放在本地路径可能出现文件找不到的异常。
3.spark的历史服务器集成yarn
① 修改spark-defaults.conf.template文件名为spark-defaults.conf
spark.eventLog.enabled true #HDFS的节点和端口和目录 spark.eventLog.dir hdfs://hadoop102:8020/spark-logs #spark的历史服务器,在spark所在节点,端口18080 spark.yarn.historyServer.address=hadoop03:18080 spark.history.ui.port=18080
注意:HDFS上的目录需要提前存在。
② 修改spark-env.sh文件,配置日志存储路径
#spark的历史服务器 export SPARK_HISTORY_OPTS=" -Dspark.history.ui.port=18080 -Dspark.history.fs.logDirectory=hdfs://hadoop102:8020/spark-logs -Dspark.history.retainedApplications=30"
③ 启动spark的历史服务器
sbin/start-history-server.sh
④ 提交应用程序
bin/spark-submit \ --class org.apache.spark.examples.SparkPi \ --master yarn \ --deploy-mode client \ ./examples/jars/spark-examples_2.12-3.0.0.jar \ 10
⑤ 观察web界面
yarn:http://hadoop103:8088/
spark的历史服务器
hadoop的历史服务器
参考:https://www.cnblogs.com/wh984763176/p/13399538.html
https://blog.csdn.net/zheng911209/article/details/105442186
https://www.cnblogs.com/a155-/p/14438529.html
大数据-从部署到代码:https://blog.csdn.net/zheng911209/article/details/105498505
spark厦门大学林子雨系列教程:http://dblab.xmu.edu.cn/blog/spark/
Spark2.1.0入门:连接Hive读写数据:http://dblab.xmu.edu.cn/blog/1729-2/
这篇关于[1032]spark-3.0安装和入门的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-11-27消息中间件底层原理资料详解
- 2024-11-27RocketMQ底层原理资料详解:新手入门教程
- 2024-11-27MQ底层原理资料详解:新手入门教程
- 2024-11-27MQ项目开发资料入门教程
- 2024-11-27RocketMQ源码资料详解:新手入门教程
- 2024-11-27本地多文件上传简易教程
- 2024-11-26消息中间件源码剖析教程
- 2024-11-26JAVA语音识别项目资料的收集与应用
- 2024-11-26Java语音识别项目资料:入门级教程与实战指南
- 2024-11-26SpringAI:Java 开发的智能新利器