Spark基础学习笔记04:搭建Spark伪分布式环境
Posted howard2005
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Spark基础学习笔记04:搭建Spark伪分布式环境相关的知识,希望对你有一定的参考价值。
文章目录
- 零、本讲学习目标
- 一、搭建伪分布式Hadoop
- 二、搭建伪分布式Spark
- 三、启动伪分布式Spark
- 四、交互式Spark Shell
- 五、访问Spark WebUI
零、本讲学习目标
- 学会搭建Spark伪分布式环境
- 学会启动Spark Shell进行交互式操作
- 学会使用Spark WebUI查看运行状态
Spark单机伪分布式是在一台机器上既有Master,又有Worker进程。搭建Spark单机伪分布式环境可在Hadoop伪分布式的基础上进行搭建。
一、搭建伪分布式Hadoop
(一)登录ied虚拟机
- 利用hw_win7虚拟机上的SecureCRT登录ied虚拟机
- 本机远程桌面连接hw_win7虚拟机【对外IP地址:192.168.177.180,私有IP地址:192.168.102】
- 虚拟机
ied
上已经安装了Spark单机版环境,并不需要Hadoop,但是Spark伪分布式环境就需要建立在Hadoop伪分布式环境基础之上。
(二)配置免密登录
1、生成密钥对
- 执行
ssh-keygen
命令后,一直敲回车,生成节点的公钥和私钥,生成的文件id_rsa
会自动放在/root/.ssh
目录下,然后我们可以把公钥发往远程机器或本机。
2、将生成的公钥发送到本机(虚拟机ied)
- 执行命令:
ssh-copy-id root@ied
3、验证虚拟机是否能免密登录本机
- 执行命令:
ssh ied
,再执行命令:exit
(三)下载与Spark版本匹配的Hadoop安装包
- 下载链接:https://pan.baidu.com/s/1w9E9MHAah4OAM4UnR-w8vA 提取码:d3hs
(四)将Hadoop安装包上传到虚拟机ied的/opt目录
- 进入/opt目录,然后利用rz命令上传文件
(五)将Hadoop安装包解压到指定目录
- 执行命令:
tar -zxvf hadoop-2.7.1.tar.gz -C /usr/local
(六)查看Hadoop的安装目录
1、进入Hadoop安装目录查看
- 执行命令:
cd /usr/local/hadoop-2.7.1
与ll
bin
目录:命令脚本etc/hadoop
目录:存放hadoop的配置文件lib
目录:hadoop运行的依赖jar包sbin
目录:存放启动和关闭hadoop等命令libexec
目录:存放的也是hadoop命令,但一般不常用- 最常用的就是bin和etc目录
2、查看etc/hadoop子目录
- 勾出了Hadoop比较重要的配置文件
3、查看sbin子目录
- 勾出了启动与停止dfs和yarn服务的脚本文件
(七)配置Hadoop实现伪分布式
1、修改环境配置文件 - hadoop-env.sh
- 进入hadoop配置目录,执行命令:
vim hadoop-env.sh
- 需要添加或修改以下内容
export JAVA_HOME=/usr/local/jdk1.8.0_231
export HADOOP_HOME=/usr/local/hadoop-2.7.1
export HADOOP_CONF_DIR=$HADOOP_HOME/etc/hadoop
export HADOOP_OPTS="-Djava.library.path=$HADOOP_HOME/lib/native"
- 存盘退出,然后执行
source hadoop-env.sh
,让配置立即生效
2、修改核心配置文件 - core-site.xml
- 执行命令:
vim core-site.xml
<configuration>
<!--用来指定hdfs的老大,namenode的地址-->
<property>
<name>fs.defaultFS</name>
<value>hdfs://ied:9000</value>
</property>
<!--用来指定hadoop运行时产生文件的存放目录-->
<property>
<name>hadoop.tmp.dir</name>
<value>/usr/local/hadoop-2.7.1/tmp</value>
</property>
</configuration>
3、修改分布式文件系统配置文件 - hdfs-site .xml
- 执行命令:
vim hdfs-site.xml
<configuration>
<!--指定hdfs保存数据副本数量,默认值是3-->
<!--如果是伪分布模式,此值是1-->
<property>
<name>dfs.replication</name>
<value>1</value>
</property>
<!--设置hdfs的操作权限,false表示任何用户都可以在hdfs上操作文件-->
<property>
<name>dfs.permissions</name>
<value>false</value>
</property>
</configuration>
4、修改MapReduce配置文件 - mapred-site.xml
- 执行命令:
cp mapred-site.xml.template mapred-site.xml
,基于模板文件生成配置文件
- 执行命令:
vim mapred-site.xml
<configuration>
<!--指定mapreduce运行在yarn上-->
<property>
<name>mapreduce.framework.name</name>
<value>yarn</value>
</property>
</configuration>
- 说明:yarn是资源协调工具,将MapReduce交给它来管理,效率更高。
5、修改yarn配置文件 - yarn-site.xml
- 执行命令:
vim yarn-site.xml
<configuration>
<!--指定yarn的老大resoucemanager的地址-->
<property>
<name>yarn.resourcemanager.hostname</name>
<value>ied</value>
</property>
<!--NodeManager获取数据的方式-->
<property>
<name>yarn.nodemanager.aux-services</name>
<value>mapreduce_shuffle</value>
</property>
</configuration>
6、配置hadoop的环境变量
- 执行命令:
vim /etc/profile
JAVA_HOME=/usr/local/jdk1.8.0_231
HADOOP_HOME=/usr/local/hadoop-2.7.1
CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
SPARK_HOME=/usr/local/spark-2.4.4-bin-hadoop2.7
PATH=$JAVA_HOME/bin:$HADOOP_HOME/bin:$HADOOP_HOME/sbin:$SPARK_HOME/bin:$PATH
export JAVA_HOME HADOOP_HOME SPARK_HOME PATH CLASSPATH
- 在配置Spark单机版时,就配置了SPARK_HOME
- 存盘退出,执行命令
source /etc/profile
,让配置生效
(八)创建存放生成文件的临时目录
- 返回到hadoop安装目录,创建tmp子目录
(九)格式化名称节点
- 执行命令:
hdfs namenode -format
,格式化名称节点,形成可用的分布式文件系统HDFS
- 名称节点格式化成功信息
- 看到
22/02/22 21:09:34 INFO common.Storage: Storage directory /usr/local/hadoop-2.7.1/tmp/dfs/name has been successfully formatted.
,表明名称节点格式化节点成功
(十)启动与关闭hadoop服务
1、启动Hadoop服务
- 执行命令:
start-dfs.sh
,启动dfs服务 - 分布式存储
- 执行命令:
start-yarn.sh
,启动yarn服务 - 分布式计算
- 执行命令:
jps
,查看hadoop进程
2、停止hadoop服务
- 执行命令:
stop-dfs.sh
,停止dfs服务
- 执行命令:
stop-yarn.sh
,停止yarn服务
- 执行命令:
jps
,查看进程
二、搭建伪分布式Spark
- 我们已经在单机版Spark基础上搭建了伪分布式Hadoop,下面通过Spark环境配置文件实现伪分布式Spark
(一)进入spark配置目录
- 执行命令:
cd $SPARK_HOME/conf
(二)生成环境配置文件 - spark-env.sh
- 基于环境配置文件模板生成环境配置文件
- 执行命令:
cp spark-env.sh.template spark-env.sh
(三)修改环境配置文件 - spark-env.sh
- 执行命令:
vim spark-env.sh
(四)配置spark环境变量
-
由于启动spark服务的命令是在spark安装目录下的sbin里,因此要添加到环境变量配置文件里
-
执行命令:
vim /etc/profile
JAVA_HOME=/usr/local/jdk1.8.0_231
HADOOP_HOME=/usr/local/hadoop-2.7.1
CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
SPARK_HOME=/usr/local/spark-2.4.4-bin-hadoop2.7
PATH=$JAVA_HOME/bin:$HADOOP_HOME/bin:$HADOOP_HOME/sbin:$SPARK_HOME/bin:$SPARK_HOME/sbin:$PATH
export JAVA_HOME HADOOP_HOME SPARK_HOME PATH CLASSPATH
- 存盘退出,执行命令:
source /etc/profile
,让环境变量配置生效
三、启动伪分布式Spark
(一)启动hadoop服务
- 执行命令:
start-dfs.sh
- 执行命令:
start-yarn.sh
(二)启动spark服务
- 执行命令:
start-master.sh
,启动spark老大 - Master
- 执行命令:
start-slaves.sh
,启动spark小弟 - Worker
- 查看进程
- 执行命令:
vim $SPARK_HOME/sbin/spark-config.sh
,添加JAVA_HOME环境变量
- 存盘退出,执行命令:
source $SPARK_HOME/sbin/spark-config.sh
,让配置生效
- 此时,再执行命令:
start-slaves.sh
,启动spark小弟 - Worker
四、交互式Spark Shell
(一)scala版spark shell
- 执行命令:
spark-shell --master=local
- 在
scala>
提示符后面执行:quit
,退出scala版spark shell
(二)python版spark shell
- 执行命令:
pyspark --master=local
- 在
>>>
提示符后执行exit()
函数退出python版spark shell
五、访问Spark WebUI
-
启动scala版spark shell
-
访问
http://192.168.1.110:4040
- 注意端口号是4040
-
关闭与禁用虚拟机ied的防火墙
-
执行命令:
systemctl stop firewalld.service
-
执行命令:
systemctl disable firewalld.service
-
执行命令:
systemctl status firewalld
,查看防火墙状态
-
关闭hw_win7防火墙
-
访问
http://192.168.1.110:4040
以上是关于Spark基础学习笔记04:搭建Spark伪分布式环境的主要内容,如果未能解决你的问题,请参考以下文章
Hadoop(伪分布式)+Spark(local模式)搭建Hadoop和Spark组合环境