【Spark分布式内存计算框架——Spark 基础环境】2. 快速入门(上)环境准备

news2025/1/16 5:36:52

第三章 快速入门

目前Spark最新稳定版本:2.4.x系列,官方推荐使用的版本,也是目前企业中使用较多版本,网址:https://github.com/apache/spark/releases

Spark 2.4.x依赖其他语言版本如下,其中既支持Scala 2.11,也支持Scala 2.12,推荐使用2.11。

3.1 环境准备

本次Spark课程所使用的集群环境为3台虚拟机,否则就是1台虚拟机,安装CentOS 7.7系统:
在这里插入图片描述
其中虚拟机基本信息说明如下
1)、IP地址及主机名称

192.168.88.100 node1.itcast.cn node1
192.168.88.101 node2.itcast.cn node2
192.168.88.102 node3.itcast.cn node3

在Windows系统配置上述映射关系,配置文件:C:\Windows\System32\drivers\etc\hosts。

2)、系统用户及密码

超级管理员用户:root/123456
普通用户:itcast/itcast

3)、虚拟机安装环境及快照
在这里插入图片描述
当讲解集群安装部署时,使用分布式集群环境,否则讲解知识点时使用伪分布式环境,主要节省宿主机资源及避免分布式环境带来学习中环境问题。

4)、软件安装目录为:【/export/server】,Hadoop离线框架使用CDH-5.16.2版本
在这里插入图片描述
本章节Spark应用程序运行在伪分布式环境中,所以使用【3、基础环境(伪分布式)】快照进行操作,如下图所示:
在这里插入图片描述

3.2 源码编译

Spark 软件安装包下载:http://spark.apache.org/downloads.html
默认情况下,可以下载官方提供的针对Apache不同版本的Hadoop编译的软件包,但是在实际企业项目开发中下载Spark对应版本源码,依据所使用的Hadoop版本进行编译,同时不会使用CDH 5.x提供Spark版本(其一:Spark版本太低;其二:CDH 版本Spark功能阉割,尤其在SparkSQL模块,由于SparkSQL与Cloudera公司Impala属于竞争关系),源码下载地址:https://archive.apache.org/dist/spark/spark-2.4.5/

具体如何编译Spark源码,参考官方文档,注意Maven版本:
http://spark.apache.org/docs/2.4.5/building-spark.html
整个编译大概耗时1个小时左右,具体依赖网络及下载依赖包速度,如下为编译完成截图:
在这里插入图片描述

3.3 Spark 安装

将编译完成spark安装包【spark-2.4.5-bin-cdh5.16.2-2.11.tgz】解压至【/export/server】目录:

## 解压软件包
tar -zxf /export/software/spark-2.4.5-bin-cdh5.16.2-2.11.tgz -C /export/server/
## 创建软连接,方便后期升级
ln -s /export/server/spark-2.4.5-bin-cdh5.16.2-2.11 /export/server/spark

其中各个目录含义如下:
在这里插入图片描述
第一步、安装Scala-2.11.12

## 解压Scala
tar -zxf /export/softwares/scala-2.11.12.tgz -C /export/server/
## 创建软连接
ln -s /export/server/scala-2.11.12 /export/server/scala
## 设置环境变量
vim /etc/profile
### 内容如下:
# SCALA_HOME
export SCALA_HOME=/export/server/scala
export PATH=$PATH:$SCALA_HOME/bin

第二步、修改配置名称

## 进入配置目录
cd /export/server/spark/conf
## 修改配置文件名称
mv spark-env.sh.template spark-env.sh

第三步、修改配置文件,$SPARK_HOME/conf/spark-env.sh,增加如下内容:

## 设置JAVA和SCALA安装目录
JAVA_HOME=/export/server/jdk
SCALA_HOME=/export/server/scala
## HADOOP软件配置文件目录,读取HDFS上文件和运行YARN集群
HADOOP_CONF_DIR=/export/server/hadoop/etc/hadoop

在这里插入图片描述
第四步、启动HDFS集群,从HDFS上读取数据文件

# 启动NameNode
hadoop-daemon.sh start namenode
# 启动DataNode
hadoop-daemon.sh start datanode

3.4 运行spark-shell

本地模式运行Spark框架提供交互式命令行:spark-shell,其中本地模式LocalMode含义为:启动一个JVM Process进程,执行任务Task,使用方式如下:
--master local | local[*] | local[K] 建议 K >= 2 正整数
其中K表示启动线程数目(或CPU Core核数),
在这里插入图片描述
在这里插入图片描述
本地模式启动spark-shell:

## 进入Spark安装目录
cd /export/server/spark
## 启动spark-shell
bin/spark-shell --master local[2]

运行成功以后,有如下提示信息:
在这里插入图片描述
其中创建SparkContext实例对象:sc、SparkSession实例对象:spark和启动应用监控页面端口号:4040,详细说明如下:

Spark context Web UI available at http://192.168.59.140:4040
 #表示每个Spark 应用运行时WEB UI监控页面,端口号4040
Spark context available as 'sc' (master = local[2], app id = local-1572380095682).
 #表示SparkContext类实例对象名称为sc
 #在运行spark-shell命令行的时候,创建Spark 应用程序上下文实例对象SparkContext
 #主要用于读取要处理的数据和调度程序执行
Spark session available as 'spark'.
 #Spark2.x出现的,封装SparkContext类,新的Spark应用程序的入口
 #表示的是SparkSession实例对象,名称spark,读取数据和调度Job执行

将【$SPARK_HOME/README.md】文件上传到HDFS目录【/datas】,使用SparkContext读取文件,命令如下:

## 上传HDFS文件
hdfs dfs -mkdir -p /datas/
hdfs dfs -put /export/server/spark/README.md /datas
## 读取文件
val datasRDD = sc.textFile("/datas/README.md")
## 条目数
datasRDD.count
## 获取第一条数据
datasRDD.first

相关截图如下:
在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/198223.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

代码随想录算法训练营第三十一天_第八章_贪心算法 | 理论基础、455.分发饼干、376. 摆动序列、53.最大子数组和

理论基础 LeetCode 455.分发饼干 视频讲解https://www.bilibili.com/video/BV1MM411b7cq/?spm_id_from333.788&vd_sourcef98f2942b3c4cafea8907a325fc56a48文章讲解https://programmercarl.com/0455.%E5%88%86%E5%8F%91%E9%A5%BC%E5%B9%B2.html 思路:代码&…

开唐贡献榜(凌烟阁二十四功臣)

唐贞观十七年,太宗李世民为表彰唐初的开国功臣 建造凌烟阁 绘制二十四功臣像以示纪念 第一位 威能服物,智能动众。力安社稷,一代奸雄。 赵国公 长孙无忌 第二位 挺身陷阵,勇冠三军。飞虎将军,十三太保。 河间王 李孝…

【C语言】文件操作函数

文件操作函数1.文件的打开和关闭1.1fopen1.2close2.文件的顺序读写2.1fgetc和fputc2.1.1fputc2.1.2fgetc2.2fgets和fputs2.2.1fputs2.2.2fgets2.3fscanf和fprintf2.3.1fprintf2.3.2fscanf2.4fread和fwrite2.4.1fwrite2.4.2fread2.5总结2.6拓展(sscanf和sprintf&…

【面试题】async/await、promise和setTimeout的执行顺序

从一道题目出发今天看到一道面试题,是关于async/await、promise和setTimeout的执行顺序,题目如下:asyncfunctionasync1() {console.log(async1 start);awaitasync2();console.log(asnyc1 end); } asyncfunctionasync2() {console.log(async2)…

kafka官方文档中文翻译(kafka参数解释)

目录 入门 1.1简介 kafka™是一个分布式流媒体平台。这到底意味着什么? 1.2使用案例 1.3快速入门 1.4生态系统 1.5从以前的版本升级 2. API 2.1生产者API 2.2消费者API 2.3 Streams API 2.4连接API 2.5遗留API 3.配置 3.1Broker配置 3.2生产者配置 …

Exynos 4412 看门狗定时器中断

如果想弄懂看门狗定时器中断,要掌握下面两个知识点: 1 懂寄存器 Cortex A9采用的是ARM官方规定的中断处理机制 有两大类寄存器决定了中断工作状态 1) exynos 4412 特有的寄存器(在第26章) 2) Cortex A9 规定的工作寄存器(在第9章和第10章) 2 懂中断处理过…

【memcached】下载、安装、、出错一分钟全搞定

各位小伙伴在看黑马程序员springboot的时候可能会遇到的情况:memcached如何安装?官网地址:https://www.runoob.com/memcached/window-install-memcached.html找到合适的下载即可,占用内容很小,几秒就下载好了开启服务安…

SpringBoot + jackson + redis 序列化、反序列化 配置正确姿势

文章目录1.背景2. 原来项目配置3.正确配置4.小结1.背景 最近项目上 使用 SpringBoot 2.7.7 jackson redis 框架实现将javaBean 序列化和反序列化到 redis 中。但是最近在做登陆的时候将LoginUser 序列化到redis 中没问题,不重启服务的话反序列化成对象也没有问题…

【Java多线程】同步代码块处理线程安全问题

题:创建三个窗口卖票,总票数为100张 1.问题:买票过程中,出现了重票,错票 --> 出现了线程的安全问题 2.问题出现的原因:当某个线程操作车票的过程中,尚未操作完成时,其他线程参与进…

IDEA常用技巧汇总

查看代码历史版本鼠标在需要查看的java类 右键 找到Local History >> Show History 点开即可看到历史版本,常用于自己忘记代码改了哪些内容 或需要恢复至某个版本 (注意 只能看近期修改 太久了也是看不到的)idea设置成eclipse的快捷键这对eclipse转idea的开发…

网络编程套接字

✏️作者:银河罐头 📋系列专栏:JavaEE 🌲“种一棵树最好的时间是十年前,其次是现在” 目录Socket 套接字UDP 和 TCPUDP数据报套接字编程DatagramSocket APIDatagramPacket APIUdpEchoServerUdpEchoClientUdpDictServer…

分享62个JS返回顶部特效,总有一款适合您

分享62个JS返回顶部特效,总有一款适合您 62个JS返回顶部特效下载链接:https://pan.baidu.com/s/1X1fSwxibtEDXKeYqj0sHXQ?pwde2kp 提取码:e2kp Python采集代码下载链接:https://wwgn.lanzoul.com/iKGwb0kye3wj import os im…

[Android]Toolbar

Toolbar是由AndroidX库提供的,它的强大之处在于,它不仅继承了ActionBar的所有功能,并且灵活度很高,可以配合其他控件完成一些Material Design的效果。 使用Toolbar替代ActionBar 在themes的两个xml文件中, 都指定一个…

视频连载08 - 这个为生信学习和生信作图打造的开源R教程真香!!!

点击阅读原文跳转完整教案。1 思考题2 R基础2.1 R安装2.2 Rstudio基础2.2.1 Rstudio版本2.2.2 Rstudio安装2.2.3 Rstudio 使用2.3 R基本语法2.3.1 获取帮助文档,查看命令或函数的使用方法、事例或适用范围2.3.2 R中的变量及其初始化2.3.3 变量类型和转换2.3.4 R中矩…

ECharts接收dataset类型数据封装各类型图形组件

数据平台整合matabase图表,调用matabase已有接口使用echarts实现图表展示 目标 将各类型图形独立封装为组件 将多个组件整体封装成一个组件 使用时只需传入组件名和对应数据即可 展示 数据格式 ECharts中dataset配置 公共组件 示例饼图 pie-chart pie-chart comm…

AcWing 1083. Windy数(数位DP)

AcWing 1083. Windy数(数位DP)一、问题二、分析状态表示状态转移初末状态循环设计注意事项三、代码一、问题 二、分析 这道题考察的是数位DP的知识,对于数位DP的分析方法作者在之前的文章中做过详细地介绍:AcWing 1081. 度的数量…

java面试题(九)集合篇

2.1 Java中有哪些容器(集合类)? 参考答案 Java中的集合类主要由Collection和Map这两个接口派生而出,其中Collection接口又派生出三个子接口,分别是Set、List、Queue。所有的Java集合类,都是Set、List、Qu…

【LeetCode】Day206-二叉树着色游戏

题目 1145. 二叉树着色游戏【中等】 题解 官解说的实在是抽象了,看了下高赞题解,果然很清晰易懂 以 x 为根,它的三个邻居(左儿子、右儿子和父节点)就对应着三棵子树: 左子树右子树父节点子树 哪棵子树…

微服务项目框架及多模块开发

目录 项目模式 技术栈 项目架构图 模块 案例演示 主模块 zmall-common子模块 zmall-user子模块 项目模式 电商模式:市面上有5种常见的电商模式,B2B、B2C、 C2B、 C2C、O2O; 1、B2B模式 B2B (Business to Business),是指 商家与商家…

java递归-八皇后问题(回溯算法)

1.八皇后问题介绍 八皇后问题,是一个古老而著名的问题,是回溯算法的典型案例。该问题是国际西洋棋棋手马克斯贝瑟尔于 1848 年提出:在 88 格的国际象棋上摆放八个皇后,使其不能互相攻击,即:任意两个皇后都…