IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 大数据 -> 2.Spark基础—Linux环境下安装Spark环境、本地模式、独立部署模式 -> 正文阅读

[大数据]2.Spark基础—Linux环境下安装Spark环境、本地模式、独立部署模式

第2章 Linux环境下安装Spark环境

2.1 虚拟机环境准备

  • 虚拟机环境准备在之前学习Hadoop时已经阐述过,在此不再阐述,读者可自行查看博客: 虚拟机环境准备 中的第1.1小节。
    虚拟机环境准备

2.2 安装Spark

2.2.1 进入到Spark安装包路径下

[xqzhao@hadoop100 ~]$ cd /opt/software/

2.3.2 解压安装文件到/opt/module下面

[xqzhao@hadoop100 software]$ tar -zxvf spark-3.0.0-bin-hadoop3.2.tgz -C /opt/module/

2.2.3 查看是否解压成功

[xqzhao@hadoop100 software]$ ls /opt/module/
spark-3.0.0-bin-hadoop3.2	

// 重命名文件夹—使用 `本地模式`[xqzhao@hadoop100 module]$ mv spark-3.0.0-bin-hadoop3.2	spark-local

// 重命名文件夹—使用 `独立部署模式`[xqzhao@hadoop100 module]$ mv spark-3.0.0-bin-hadoop3.2	spark-standalone

2.3 运行模式-本地模式

2.3.1 执行WorkCount案例

  • (1) 在/opt/module/spark-local/data目录下创建word.txt文件, 并填入以下字段:
Hello Scala
Hello Spark
Hello Scala
  • (2) 进入Spark目录
[xqzhao@hadoop100 /]$ cd /opt/module/spark-local
  • (3) 启动Spark程序
[xqzhao@hadoop100 spark-local]$ bin/spark-shell
  • (4) 输入WorkCount程序代码:
scala> sc.textFile("data/word.txt").flatMap(_.split(" ")).map((_, 1)).reduceByKey(_+_).collect
  • (5) 查看输出结果是否正确
res0: Array[(String, Int)] = Array((Hello,3), (Scala,2), (Spark,1))
  • (6) 在本机浏览器输入虚拟机地址:4040/查看程序运行情况
    本机浏览器查看注:在本机浏览器查看程序运行情况之前,需要先配置 Windows 主机的 hosts 文件, 配置 hadoop100虚拟机ip 的对应关系。具体可以参考:Windows修改hosts文件

  • (7) 退出本地模式
    Ctrl+C或输入Scala命令:quit

2.3.2 提交应用

[xqzhao@hadoop100 spark-local]$ bin/spark-submit \
--class org.apache.spark.examples.SparkPi \
--master local[2] \
./examples/jars/spark-examples_2.12-3.0.0.jar \
10
  • (1) --class表示要执行程序的主类,此处可以更换为咱们自己写的应用程序
  • (2) --master local[2]部署模式,默认为本地模式,数字表示分配的虚拟 CPU 核数量
  • (3) spark-examples_2.12-3.0.0.jar 运行的应用类所在的jar包,实际使用时,可以设定为咱们自己打的 jar 包
  • (4) 数字10表示程序的入口参数,用于设定当前应用的任务数量

2.4 独立部署模式

  • 首先需要根据 2.2小节解压缩并按照提示重命名 Spark安装包
  • 此模式需要创建另外两台虚拟机,可以从目前的虚拟机中拷贝,具体步骤请参考博客:虚拟机环境准备1.1小节末尾处的描述。

2.4.1 修改配置文件

  • (1) 进入解压缩后路径的conf目录,拷贝一份slaves.template并命名为slaves
[xqzhao@hadoop100 conf]$ cp slaves.template slaves
  • (2) 修改slaves文件,添加work节点
hadoop100
hadoop101
hadoop102
  • (3) 拷贝一份spark-env.sh.template并命名为spark-env.sh
[xqzhao@hadoop100 conf]$ cp spark-env.sh.template spark-env.sh
  • (4) 修改spark-env.sh文件,添加JAVA_HOME环境变量和集群对应的master节点
[xqzhao@hadoop100 conf]$ vim spark-env.sh
export JAVA_HOME=/opt/module/jdk1.8.0_144
SPARK_MASTER_HOST=linux1
SPARK_MASTER_PORT=7077

注意:7077端口,相当于hadoop3.X内部通信的8020端口,此处的端口需要确认自己的Hadoop配置

2.4.2 分发spark-standalone目录

[xqzhao@hadoop100 module]$ xsync spark-standalone

2.4.3 启动集群

  • (1) 执行脚本命令
[xqzhao@hadoop100 spark-standalone]$ sbin/start-all.sh

:使用此命令之前,需要配置 3 台虚拟机之间的无密登录,详情参考:SSH无密登录配置 中的第 4.7小节

  • (2) 查看 3 台虚拟机运行进程
[xqzhao@hadoop100 /]$ jps
3220 Master
3303 Worker
3353 Jps

[xqzhao@hadoop101 /]$ jps
2804 Worker
2842 Jps

[xqzhao@hadoop102 /]$ jps
2804 Jps
2762 Worker
  • (3) 查看 Master 资源监控 Web UI 界面:http://hadoop100:8080
    在这里插入图片描述

2.4.4 提交应用

[xqzhao@hadoop100 spark-standalone]$ bin/spark-submit \
--class org.apache.spark.examples.SparkPi \
--master spark://hadoop100:7077 \
./examples/jars/spark-examples_2.12-3.0.0.jar \
10
  • --master spark://hadoop100:7077 独立部署模式,连接到 Spark 集群

2.4.5 提交参数说明

参数解释可选值举例
--classSpark 程序中包含主函数的类
--masterSpark 程序运行的模式(环境)模式:local[*]spark://hadoop100:7077Yarn
--executor-memory 1G指定每个 executor 可用内存为 1G
--total-executor-cores 2指定所有executor使用的cpu核数为 2 个
--executor-cores指定每个 executor 使用的 cpu 核数
application-jar打包好的应用 jar,包含依赖。这个 URL 在集群中全局可见。 比如 hdfs:// 共享存储系统,如果是 file:// path,那么所有的节点的 path 都包含同样的 jar
application-arguments传给 main() 方法的参数

2.4.6 配置历史服务器

由于 spark-shell 停止掉后,就无法再通过 hadoop100:4040 页面查看历史任务的运行情况,所以开发时需要配置历史服务器记录任务运行情况。

  • (1) 拷贝一份spark-defaults.conf.template并命名为spark-defaults.conf
[xqzhao@hadoop100 conf]$ cp spark-defaults.conf.template spark-defaults.conf
  • (2) 修改spark-default.conf文件,配置日志存储路径
spark.eventLog.enabled true
spark.eventLog.dir hdfs://hadoop100:8020/directory

注意:需要启动 hadoop 集群,HDFS 上的 directory 目录需要提前存在。

[xqzhao@hadoop100 spark-standalone]$ sbin/start-dfs.sh
hadoop fs -mkdir /directory
  • (3) 修改spark-env.sh文件, 添加日志配置
[xqzhao@hadoop100 spark-standalone]$ vim conf/spark-env.sh

export SPARK_HISTORY_OPTS="
-Dspark.history.ui.port=18080 
-Dspark.history.fs.logDirectory=hdfs://linux1:8020/directory 
-Dspark.history.retainedApplications=30"
  1. 参数1含义:WEB UI 访问的端口号为 18080
  2. 参数2含义:指定历史服务器日志存储路径
  3. 参数3含义:指定保存 Application 历史记录的个数,如果超过这个值,旧的应用程序信息将被删除,这个是内存中的应用数,而不是页面上显示的应用数。
  • (4) 分发配置文件
[xqzhao@hadoop100 spark-standalone]$ xsync conf
  • (5) 重新启动集群和历史服务
[xqzhao@hadoop100 spark-standalone]$ sbin/start-all.sh
[xqzhao@hadoop100 spark-standalone]$ sbin/start-history-server.sh
  • (6) 重新执行任务
[xqzhao@hadoop100 spark-standalone]$ bin/spark-submit \
--class org.apache.spark.examples.SparkPi \
--master spark://hadoop100:7077 \
./examples/jars/spark-examples_2.12-3.0.0.jar \
10
  • (7) 查看历史服务:http://hadoop100:18080

声明:本文是学习时记录的笔记,如有侵权请告知删除!
原视频地址:https://www.bilibili.com/video/BV11A411L7CK

  大数据 最新文章
实现Kafka至少消费一次
亚马逊云科技:还在苦于ETL?Zero ETL的时代
初探MapReduce
【SpringBoot框架篇】32.基于注解+redis实现
Elasticsearch:如何减少 Elasticsearch 集
Go redis操作
Redis面试题
专题五 Redis高并发场景
基于GBase8s和Calcite的多数据源查询
Redis——底层数据结构原理
上一篇文章      下一篇文章      查看所有文章
加:2021-07-16 21:59:58  更:2021-07-16 22:00:39 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年5日历 -2024/5/21 4:14:57-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码