分布式集群环境之Spark的安装与配置(Centos7)

简介: 分布式集群环境之Spark的安装与配置(Centos7)

0x00 教程内容


  1. Spark的获取
  2. 上传Scala安装包到集群
  3. 安装与配置Scala

说明:安装Spark之前,请先安装Scala,参考文章:

1、分布式集群环境之Scala的安装与配置(Centos7)


0x01 Spark的获取


1. 官网下载

a. 为了统一,此处下载spark-2.2.0-bin-hadoop2.7.tgz版本:

https://archive.apache.org/dist/spark/

拉到下面,选择spark-2.2.0-bin-hadoop2.7.tgz进行下载(如果小版本好不一样也没关系)

2. 关注公众号:邵奈一


a. 回复spark获取


0x02 上传Spark安装包到集群


1. 上传安装包到虚拟机

a. 可以用XFtp软件上传到master(/home/hadoop-sny/software/),没有software目录就新建


image.png


0x03 安装与配置Spark


1. 解压Spark包并配置

a. 解压到指定目录~/bigdata/(-C ~/bigdata/,不加-C则解压到压缩包的路径)

tar -zxvf spark-2.2.0-bin-hadoop2.7.tgz -C ~/bigdata/

b. 配置spark-env.sh

cd ~/bigdata/spark-2.2.0-bin-hadoop2.7/conf

cp spark-env.sh.template spark-env.sh

添加JAVA_HOME路径:

vi spark-env.sh

export JAVA_HOME=/usr/local/lib/jdk1.8.0_161


image.png


c. 配置slaves文件

cp slaves.template slaves

添加上从节点主机名:

vi slaves


slave1
slave2


image.png


2. 同步到slave1、slave2

a. 同步(因为我们的免密码登录是配了hadoop-sny用户的,所以root用户,还是要输入密码的)

scp -r ~/bigdata/spark-2.2.0-bin-hadoop2.7 hadoop-sny@slave1:~/bigdata

scp -r ~/bigdata/spark-2.2.0-bin-hadoop2.7 hadoop-sny@slave2:~/bigdata


3. 配置环境变量

a. 用master上的环境变量

vi ~/.bash_profile

c. 添加内容(此处我们可以指配到Home路径,因为sbin路径下有一些脚本是跟Hadoop的一样的,会冲突不起作用):


export SPARK_HOME=/home/hadoop-sny/bigdata/spark-2.2.0-bin-hadoop2.7
PATH=$PATH:$SPARK_HOME/bin


d. 使环境变量在当前会话生效(一定要记得执行)

source ~/.bash_profile

4. 启动Spark

a. 校验是否安装成功

$SPARK_HOME/sbin/start-all.sh

查看三个节点脚本请参考教程:大数据常用管理集群脚本集合


image.png


b. 查看Web UI界面

打开master:8080端口


image.png


0x04 Spark初体验


1. 启动spark-shell

a. 启动并测试一下

spark-shell --master spark://master:7077

1+1


image.png


0xFF 总结


请尝试将此教程的WordCount例子打包,并打包到服务器执行:

IntelliJ IDEA开发Spark案例之WordCount

请参考1.的教程,用spark-shell方式完成一个WordCount程序

注意:

a. 目前我只是启动了Spark,Hadoop并没有启动,如果有需要,请记得启动Hadoop等。

b. 如果是用集群模式启动Spark:spark-shell --master spark://master:7077,不能使用file:///来输入文件,要用HDFS,不然会报错。所以,如果想用file:///,则要把spark://master:7077去掉,默认使用本地。


相关文章
|
2天前
|
前端开发 jenkins 持续交付
新的centos7.9安装docker版本的jenkins2.436.1最新版本-前端项目发布(五)
新的centos7.9安装docker版本的jenkins2.436.1最新版本-前端项目发布(五)
13 1
|
2天前
|
jenkins 网络安全 持续交付
新的centos7.9安装docker版本的jenkins2.436.1最新版本-后端项目发布(四)
新的centos7.9安装docker版本的jenkins2.436.1最新版本-后端项目发布(四)
|
13小时前
|
运维 Kubernetes 监控
本地CentOS安装轻量级容器PaaS平台KubeSphere并实现无公网IP远程访问
本地CentOS安装轻量级容器PaaS平台KubeSphere并实现无公网IP远程访问
3 0
|
2天前
|
Kubernetes Docker 容器
Docker 安装 Portainer
Portainer Community Edition是一个针对容器化应用程序的轻量级服务交付平台,可用于管理 Docker、Swarm、Kubernetes 和 ACI 环境。它的设计理念是部署和使用都简单,该应用程序允许您通过“智能”GUI 和/或广泛的 API 管理所有编排器资源。
29 3
|
2天前
|
Java 开发工具 git
新的centos7.9安装docker版本的jenkins2.436.1最新版本-项目发布(三)
新的centos7.9安装docker版本的jenkins2.436.1最新版本-项目发布(三)
10 4
|
16天前
|
NoSQL Java 关系型数据库
【Redis系列笔记】分布式锁
分布式锁:满足分布式系统或集群模式下多进程可见并且互斥的锁。 分布式锁的核心思想就是让大家都使用同一把锁,只要大家使用的是同一把锁,那么我们就能锁住线程,不让线程进行,让程序串行执行,这就是分布式锁的核心思路
116 2
|
1月前
|
NoSQL Java Redis
redis分布式锁
redis分布式锁
|
11天前
|
监控 NoSQL 算法
探秘Redis分布式锁:实战与注意事项
本文介绍了Redis分区容错中的分布式锁概念,包括利用Watch实现乐观锁和使用setnx防止库存超卖。乐观锁通过Watch命令监控键值变化,在事务中执行修改,若键值被改变则事务失败。Java代码示例展示了具体实现。setnx命令用于库存操作,确保无超卖,通过设置锁并检查库存来更新。文章还讨论了分布式锁存在的问题,如客户端阻塞、时钟漂移和单点故障,并提出了RedLock算法来提高可靠性。Redisson作为生产环境的分布式锁实现,提供了可重入锁、读写锁等高级功能。最后,文章对比了Redis、Zookeeper和etcd的分布式锁特性。
118 16
探秘Redis分布式锁:实战与注意事项
|
13天前
|
NoSQL Java 大数据
介绍redis分布式锁
分布式锁是解决多进程在分布式环境中争夺资源的问题,与本地锁相似但适用于不同进程。以Redis为例,通过`setIfAbsent`实现占锁,加锁同时设置过期时间避免死锁。然而,获取锁与设置过期时间非原子性可能导致并发问题,解决方案是使用`setIfAbsent`的超时参数。此外,释放锁前需验证归属,防止误删他人锁,可借助Lua脚本确保原子性。实际应用中还有锁续期、重试机制等复杂问题,现成解决方案如RedisLockRegistry和Redisson。
|
13天前
|
缓存 NoSQL Java
【亮剑】分布式锁是保证多服务实例同步的关键机制,常用于互斥访问共享资源、控制访问顺序和系统保护,如何使用注解来实现 Redis 分布式锁的功能?
【4月更文挑战第30天】分布式锁是保证多服务实例同步的关键机制,常用于互斥访问共享资源、控制访问顺序和系统保护。基于 Redis 的分布式锁利用 SETNX 或 SET 命令实现,并考虑自动过期、可重入及原子性以确保可靠性。在 Java Spring Boot 中,可通过 `@EnableCaching`、`@Cacheable` 和 `@CacheEvict` 注解轻松实现 Redis 分布式锁功能。