大数据分析学习第九课 Spark集群环境搭建

    诞生于 2009 年的 Apache Spark,已成为全球范围内最流行、功能最全面、社区最活跃的大数据处理技术之一。从 GitHub 的数据中可以看到,在 Apache 的所有开源项目中,Spark 的关注度排名第 3,在所有大数据处理技术中排名第 1。

    此外,Spark 在资本市场也得到了极高的认可,其背后的商业化公司得到了 62 亿美元的估值。目前,绝大多数公司和组织会基于 Spark 生态搭建自己的大数据平台,构建支持业务的数据管道。Spark 之于大数据工程师,就好像 Java 对于后台工程师的作用一样:学会了并不能保证你一定能够拿到大数据岗位的 Offer,但是不会spark,拿到 Offer 的概率绝对很小。

    Spark 多语言接口与 SQL 支持让它赢得了很多分析师用户,而且这部分用户中 Spark 使用者的占比也越来越大,已经成为了数据工程与数据科学的通用解决方案。

介绍到这里,你应该也已经跃跃欲试,想要掌握 Spark 了,今天我就介绍一下怎么搭建Spark集群环境 。

首先 准备安装包

由于我们使用的是已经配置好的环境,所以这里省略Hadoop集群配置,如果有需要,可以看我另一篇介绍Hadoop配置的文章,大数据分析学习第二课 Hadoop集群安装与配置

我们需要准备的软件有

Scala https://codeload.github.com/scala/scala/tar.gz/v2.13.6

Spark 我们去官网下载 Downloads | Apache Spark,选择和hadoop对应的版本,这里我选的是spark-3.1.1-bin-hadoop2.7.tgz

下载好后,我们先把scala上传到master105节点

接下来解压文件,tar -zxvf scala-2.13.6.tar.gz 解压后,我们先不配置环境变量,等后面和spark一起配置

我们接着上传spark

和上面一样解压 ,解压后进入cd spark-3.1.1-bin-hadoop2.7/conf/

其次 开始配置

1、配置 log4j.properties

复制配置文件模版 mv log4j.properties.template log4j.properties,不用修改 用默认的就好

2、配置 slaves

vi slaves

输入2个节点名称

slave106

slave107

3、配置spark-env.sh

我们复制模版

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

然后vi spark-env.sh 添加如下内容(以下为本机示例,配置路径根据实际情况调整

export JAVA_HOME=/software/jdk1.8.0_181
export SCALA_HOME=/software/scala-2.13.6
export HADOOP_HOME=/software/hadoop-2.7.3
export HADOOP_CONF_DIR=/software/hadoop-2.7.3/etc/hadoop
export SPARK_MASTER_IP=master105
export SPARK_MASTER_HOST=master105
export SPARK_WORKER_MEMORY=1g
export SPARK_WORKER_CORES=2
export SPARK_HOME=/software/spark-3.1.1-bin-hadoop2.7
export SPARK_DIST_CLASSPATH=$(/software/hadoop-2.7.3/bin/hadoop classpath)

4、远程复制scala到其他2台从节点(也可以参照上面介绍的上传解压)

scp -r /software/scala-2.13.6 root@slave106:/software/
scp -r /software/scala-2.13.6 root@slave107:/software/

5、远程复制Spark 安装目录到其它两台主机106、107

scp -r /software/spark-3.1.1-bin-hadoop2.7 root@slave106:/software/
scp -r /software/spark-2.4.3-bin-hadoop2.7 root@slave107:/software/

6、配置三台主机环境变量

vi .bash_profile

内容如下

JAVA_HOME=/software/jdk1.8.0_181
HADOOP_HOME=/software/hadoop-2.7.3
HIVE_HOME=/software/apache-hive-3.1.1-bin
export SCALA_HOME=/software/scala-2.13.6
export SPARK_HOME=/software/spark-3.1.1-bin-hadoop2.7
PATH=$PATH:$HOME/bin:$JAVA_HOME/bin:$HADOOP_HOME/bin:$HADOOP_HOME/sbin:$HIVE_HOME/bin:$SCALA_HOME/bin:$SPARK_HOME/bin

export JAVA_HOME
export HADOOP_HOME
export HIVE_HOME
export SCALA_HOME
export SPARK_HOME
export PATH

我们保存后 执行  source .bash_profile 使配置生效

7、启动环境

a)启动hadoop集群

 start-all.sh

b)启动Spark

cd /software/spark-3.1.1-bin-hadoop2.7/

./sbin/start-master.sh

./sbin/start-slaves.sh 

8、查看状态

在三台主机上分别输入jps命令查看状态,结果如下:

105

106

107

9、验证环境

我们在master105 打开浏览器 输入 http://master105:8080/,可以看到如下结果,说明集群运行正常

可以看到我们的集群运行一切正常

10、测试

我们拿以前测试的wordcount的文件测试一下

首先进入spark shell,我们进到spark安装目录spark-3.1.1-bin-hadoop2.7

执行 bin/spark-shell --master spark://master105:7077

我们输入一个简单的wordcount示例 scala语法的,这个示例是多列的

sc.textFile("hdfs://master105:9000/test0326.txt").flatMap(_.split(" ")).map((_,1)).reduceByKey(_ + _).collect
会输出以下内容

再输入一个单词的示例

sc.textFile("hdfs://master105:9000/0409001.txt").flatMap(_.split(" ")).map((_,1)).reduceByKey(_ + _).collect

程序完美运行了MR!

11、关闭集群

spark安装目录:

./sbin/stop-slaves.sh
./sbin/stop-master.sh

总结
        感谢能看到这里的朋友😉

        本次的分享就到这里,猫头鹰数据致力于为大家分享技术干货😎

        如果以上过程中出现了任何的纰漏错误,烦请大佬们指正😅

        受益的朋友或对技术感兴趣的伙伴记得点赞关注支持一波🙏

        也可以搜索关注我的微信公众号【猫头鹰数据分析】,留言交流🙏

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

猫头鹰数据分析

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值