Spark基础学习笔记04:搭建Spark伪分布式环境

Posted howard2005

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Spark基础学习笔记04:搭建Spark伪分布式环境相关的知识,希望对你有一定的参考价值。

文章目录

零、本讲学习目标

  1. 学会搭建Spark伪分布式环境
  2. 学会启动Spark Shell进行交互式操作
  3. 学会使用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安装包

(四)将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.1ll
  • 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组合环境

大数据分析Hadoop + Spark 10分钟搭建Hadoop(伪分布式 )+ Spark(Local模式)环境

搭建spark伪分散式需要先搭建hadoop吗

伪分布式Spark + Hive on Spark搭建

30分钟从零搭建hadoop+spark伪分布式环境

Spark基础学习笔记02:搭建Spark环境