基于Linux的Spark安装与环境配置

简介: 基于Linux的Spark安装与环境配置

基于Linux的Spark安装与环境配置

1、Hadoop测试

因为Spark是基于Hadoop上工作的,所以当我们使用Spark框架时,必须要确保Hadoop能够正常运行:

1.1 启动hadoop

cd /usr/local/hadoop
./sbin/start-all.sh

BUG,内容如下:

SLF4J: Failed to load class "org.slf4j.impl.StaticLoggerBinder".
SLF4J: Defaulting to no-operation (NOP) logger implementation
SLF4J: See http://www.slf4j.org/codes.html#StaticLoggerBinder for further details.

解决方法:SLF4J:Failed to load class org.slf4j.impl.StaticLoggerBinder.

1.2 再次启动hadoop

cd /usr/local/hadoop/sbin
./start-all.sh

1.3 查看是否成功

jps

2、Scala安装与配置

2.1 下载scala

官方网址:https://www.scala-lang.org/download/2.13.10.html

使用wget命令下载scala:

wget https://downloads.lightbend.com/scala/2.13.10/scala-2.13.10.tgz

2.2 解压并重命名

sudo tar zxvf ~/下载/scala-2.13.10.tgz -C /usr/local/ # 解压
cd /usr/local
sudo mv scala-2.13.10 scala # 重命名

2.3 配置环境

# 1.编辑环境变量
sudo vi ~/.bashrc
# 2.使其生效
source ~/.bashrc

2.4 测试

scala -version

3、Spark安装与配置

3.1 下载Spark

下载网址:https://archive.apache.org/dist/spark/spark-3.2.2/

使用wget命令进行下载:

wget https://archive.apache.org/dist/spark/spark-3.2.2/spark-3.2.2-bin-hadoop3.2.tgz

3.2 解压并重命名

# 1.解压
sudo tar zxvf ~/下载/spark-3.2.2-bin-hadoop3.2.tgz  -C /usr/local
# 2.重命名
cd /usr/local
sudo mv spark-3.2.2-bin-hadoop3.2 spark

3.3 配置环境

# 1.编辑环境变量
sudo vi ~/.bashrc
# 2.使其生效
source ~/.bashrc

3.4 配置spark-env.sh

进入到配置目录并打开spark-env.sh文件:

cd /usr/local/spark/conf
sudo cp spark-env.sh.template spark-env.sh
sudo vi spark-env.sh

添加以下内容:

export JAVA_HOME=/usr/lib/jvm/java-8-openjdk-amd64
export HADOOP_HOME=/usr/local/hadoop
export HADOOP_CONF_DIR=/usr/local/hadoop/etc/hadoop
export SCALA_HOME=/usr/local/scala
export SPARK_HOME=/usr/local/spark
export SPARK_MASTER_IP=192.168.3.134
export SPARK_MASTER_PORT=7077
export SPARK_MASTER_WEBUI_PORT=8099
export SPARK_WORKER_CORES=3
export SPARK_WORKER_INSTANCES=1
export SPARK_WORKER_MEMORY=5G
export SPARK_WORKER_WEBUI_PORT=8081
export SPARK_EXECUTOR_CORES=1
export SPARK_EXECUTOR_MEMORY=1G
export LD_LIBRARY_PATH=${LD_LIBRARY_PATH}:$HADOOP_HOME/lib/native

3.5 配置slaves(好像不需要)

cd /usr/local/spark/conf
sudo vi workers.template

发现slaves文件里为localhost即本机地址,当前为伪分布式,因此不用修改!但要执行以下:

sudo cp workers.template  slaves

3.6 启动(报错)

启动sbin目录下的start-master.sh以及start-slaves.sh前提是hadoop已启动):

cd /usr/local/spark
sudo ./sbin/start-master.sh
sudo ./sbin/start-slaves.sh

报错!!!

3.7 测试

通过运行Spark自带的示例,验证Spark是否安装成功:

cd /usr/local/spark
./bin/run-example SparkPi

报错信息如下:

2022-11-01 20:49:24,377 WARN util.Utils: Your hostname, leoatliang-virtual-machine resolves to a loopback address: 127.0.1.1; using 192.168.3.134 instead (on interface ens33)

参考博客:Spark启动:WARN util.Utils: Your hostname, … resolves to a loopback address: …; using … instead

修改配置文件,配置 SPARK_LOCAL_IP 变量即可:

cd /usr/local/spark
sudo vim conf/spark-env.sh
# 添加以下内容:
export SPARK_LOCAL_IP=192.168.3.134  # 自己输出对应的IP

再次测试:

BUG解决!!!

执行时会输出非常多的运行信息,输出结果不容易找到,可以通过 grep 命令进行过滤:

./bin/run-example SparkPi 2>&1 | grep "Pi is"

3.8 查看Spark版本

cd /usr/local/spark
./bin/spark-shell

相关实践学习
CentOS 7迁移Anolis OS 7
龙蜥操作系统Anolis OS的体验。Anolis OS 7生态上和依赖管理上保持跟CentOS 7.x兼容,一键式迁移脚本centos2anolis.py。本文为您介绍如何通过AOMS迁移工具实现CentOS 7.x到Anolis OS 7的迁移。
目录
相关文章
|
3天前
|
Linux C语言
成功解决 在Linux CentOS 7 中安装gcc
这篇文章介绍了如何在Linux CentOS 7系统中安装gcc (g++) 8工具集。由于CentOS 7默认的gcc版本是4.8,而这个版本与Qt 5.14、Qt 5.15或更高版本不兼容,可能会导致编译时出现系统头文件错误。文章中提到,即使在项目配置中添加了`CONFIG+=c++11`,如果仍然报错,那么很可能是gcc版本的问题。为了解决这个问题,文章提供了使用CentOS的Software Collections (scl)来安装更新版本的gcc的步骤。
成功解决 在Linux CentOS 7 中安装gcc
|
2天前
|
关系型数据库 Java MySQL
Linux安装JDK1.8 & tomcat & MariaDB(MySQL删减版)
本教程提供了在Linux环境下安装JDK1.8、Tomcat和MariaDB的详细步骤。这三个组件的组合为Java Web开发和部署提供了一个强大的基础。通过遵循这些简单的指导步骤,您可以轻松建立起一个稳定、高效的开发和部署环境。希望这个指导对您的开发工作有所帮助。
20 8
|
4天前
|
Linux Python
Linux 升级安装 Python 3
Linux 升级安装 Python 3
11 2
|
4天前
|
Linux 网络安全 Python
Linux离线安装Python时ssh和hashlib死活安装不上的解决方案
本文提供了Linux环境下离线安装Python时遇到的"ImportError: No module named _ssl"和"ERROR:root:code for hash md5|sha1|sha224|sha256|sha384|sha512 was not found"两个问题的解决方案,通过设置OpenSSL环境变量和编辑Python源码配置文件来解决。
9 1
|
4天前
|
存储 NoSQL Java
使用redis进行手机验证码的验证、每天只能发送三次验证码 (redis安装在虚拟机linux系统中)
该博客文章展示了如何在Linux虚拟机上使用Redis和Jedis客户端实现手机验证码的验证功能,包括验证码的生成、存储、验证以及限制每天发送次数的逻辑,并提供了测试结果截图。
使用redis进行手机验证码的验证、每天只能发送三次验证码 (redis安装在虚拟机linux系统中)
|
4天前
|
Linux
虚拟机安装Linux系统的网络配置
该博客文章提供了解决虚拟机中Linux系统网络问题的多种方法,包括重置网络服务、修改网络配置文件、使用不同网络模式等,以确保虚拟机能够成功连接到网络。
虚拟机安装Linux系统的网络配置
|
3天前
|
机器学习/深度学习 Linux Shell
超详细的Linux-Conda环境安装教程
超详细的Linux-Conda环境安装教程
|
4天前
|
Oracle Java 关系型数据库
简单记录在Linux上安装JDK环境的步骤,以及解决运行Java程序时出现Error Could not find or load main class XXX问题
本文记录了在Linux系统上安装JDK环境的步骤,并提供了解决运行Java程序时出现的"Error Could not find or load main class XXX"问题的方案,主要是通过重新配置和刷新JDK环境变量来解决。
13 0
|
4天前
|
Linux 数据安全/隐私保护 Docker
MQTT(EMQX) - Linux CentOS Docker 安装
MQTT(EMQX) - Linux CentOS Docker 安装
21 0
|
6天前
|
JavaScript Linux 内存技术
NVM——Linux下快速部署NVM并安装nodeJs
NVM——Linux下快速部署NVM并安装nodeJs
17 0

热门文章

最新文章