搭建Spark需要先配置好scala环境。三种Spark环境搭建互不关联,都是从零开始搭建。

如果将文章中的配置文件修改内容复制粘贴的话,所有配置文件添加的内容后面的注释记得删除,可能会报错。保险一点删除最好。

Scala环境搭建

上传安装包解压并重命名

rz上传

如果没有安装rz可以使用命令安装:

yum install -y lrzsz

这里我将scala解压到/opt/module目录下:

tar -zxvf /opt/tars/scala-2.12.0.tgz -C /opt/module

重命名:

mv scala-2.12.0 scala

2、vi /etc/profile

在最后添加:

export SCALA_HOME=/opt/module/scala

export PATH=$PATH:$SCALA_HOME/bin

刷新使文件生效:

source /etc/profile

搭建单机伪分布式环境(单机)

spark单机伪分布是在一台机器上既有Master,又有Worker进程。spark单机伪分布式环境可以在hadoop伪分布式的基础上进行搭建

上传安装包解压并重命名

rz上传

解压:

tar -zxvf /opt/tars/spark-3.1.1-bin-hadoop3.2.tgz -C /opt/module

重命名:

mv spark-3.1.1-bin-hadoop3.2 spark

进入spark/conf,将spark-env.sh.template 重命名为spark-env.sh

cd /opt/module/spark/conf

mv spark-env.sh.template spark-env.sh

打开spark-env.sh:

vi spark-env.sh

在末尾添加:

export JAVA_HOME=/opt/module/jdk # java的安装路径

export HADOOP_CONF_DIR=/opt/module/hadoop/etc/hadoop # hadoop的安装路径

export HADOOP_HOME=/opt/module/hadoop # hadoop配置文件的路径

export SPARK_MASTER_IP=master # spark主节点的ip或机器名

export SPARK_LOCAL_IP=master # spark本地的ip或机器名

4、vi /etc/profile

export SPARK_HOME=/opt/module/spark

export PATH=$PATH:$SPARK_HOME/bin:$SPARK_HOME/sbin

刷新:

source /etc/profile

5、切换到/sbin目录下,启动集群:

cd /opt/module/spark/sbin

./start-all.sh

6、通过jps查看进程,既有Master进程又有Worker进程

搭建完全分布式环境

搭建Spark完全分布式环境的前提是已经搭建好了hadoop完全分布式,如果没有搭建hadoop完全分布式且不会搭建,可以前往博主主页寻找hadoop完全分布式搭建的文章进行搭建。

博主的三台机器名:主节点:master,从节点:slave1,slave2

1、上传安装包解压并重命名(前面已经讲解过,就不多说了)

2、进入spark/conf,将spark-env.sh.template 重命名 spark-env.sh

cd /opt/module/spark/conf

mv spark-env.sh.template spark-env.sh

3、vi spark-env.sh,在末尾添加:

export JAVA_HOME=/opt/module/jdk # java的安装路径

export HADOOP_CONF_DIR=/opt/module/hadoop/etc/hadoop # hadoop配置文件的路径

export SPARK_MASTER_IP=master # spark主节点的ip或机器名

export SPARK_MASTER_PORT=7077 # spark主节点的端口号

export SPARK_WORKER_MEMORY=512m # Worker节点能给予Executors的内存数

export SPARK_WORKER_CORES=1 # 每台节点机器使用核数

export SPARK_EXECUTOR_MEMORY=512m # 每个Executors的内存

export SPARK_EXCUTOR_CORES=1 # Executors的核数

export SPARK_WORKER_INSTANCES=1 # 每个节点的Worker进程数

4、spark2.x是配置slaves文件,将slaves.template重命名为slaves

mv slaves.template slaves

添加三个节点的机器名(如果只要两个work的话可以不写master):

vi slaves

master

slave1

slave2

spark3.x是配置works文件:

mv works.template works

vi works

master

slave1

slave2

5、配置spark-default.conf文件,将spark-defaults.conf.template重命名为spark-default.conf:

mv spark-defaults.conf.template spark-default.conf

修改配置文件:

vi /opt/module/spark/conf/spark-default.conf

spark.master spark://master:7077

spark.eventLog.enabled true

spark.eventLog.dir hdfs://master:8020/spark-logs

spark.history.fs.logDirectory hdfs://master:8020/spark-logs

注意:8020是HDFS的连接端口,需要填自己的,可以去hadoop的webui查看,hadoop2.x端口是50070,hadoop3.x端口是9870

6、分发:

scp -r /opt/module/spark slave1:/opt/module

scp -r /opt/module/spark slave2:/opt/module

7、创建spark-logs目录

hdfs dfs -mkdir /spark-logs

8、vi /etc/profile

export SPARK_HOME=/opt/module/spark

export PATH=$PATH:$SPARK_HOME/bin:$SPARK_HOME/sbin

刷新:

source /etc/profile

9、分发:

scp -r /etc/profile slave1:/etc

scp -r /etc/profile slave2:/etc

刷新使文件生效:

source /etc/profile

进入Spark的/sbin目录下,启动Spark独立集群

cd /opt/module/spark/sbin

sbin/start-all.sh

启动历史服务器(可以不启动,不启动则没有HistoryServer进程)

sbin/start-history-server.sh

通过jps查看进程:

master节点:

slave1/slave2节点:

完成以上步骤,Spark环境则搭建完成。

可以通过http://master:8080访问主节点,可以看到webui的监控画面

http://master:18080可以看到历史任务

启动Spark交互页面:

bin/spark-shell

启动YARN客户端模式:bin/spark-shell --master yarn-client

启动YARN集群模式:bin/spark-shell --master yarn-cluster

Spark on Yarn模式

1、解压并重命名:

tar -zxvf spark-3.0.0-bin-hadoop3.2.tgz -C /opt/module

cd /opt/module

mv spark-3.0.0-bin-hadoop3.2 spark-yarn

2、修改hadoop配置文件yarn-site.xml并分发

vi /opt/module/hadoop/etc/hadoop/yarn-site.xml

yarn.nodemanager.pmem-check-enabled

false

yarn.nodemanager.vmem-check-enabled

false

分发:

scp -r /opt/module/hadoop/etc/hadoop/yarn-site.xml slave1:/opt/module/hadoop/etc/hadoop/

scp -r /opt/module/hadoop/etc/hadoop/yarn-site.xml slave2:/opt/module/hadoop/etc/hadoop/

3、修改spark-yarn/conf/spark-env.sh配置文件:

vi /opt/module/spark-yarn/conf/spark-env.sh

export JAVA_HOME=/opt/module/jdk

YARN_CONF_DIR=/opt/module/hadoop/etc/hadoop

4、vi /etc/profile

export SPARK_HOME=/opt/module/spark-yarn

export PATH=$PATH:$SPARK_HOME/bin:$SPARK_HOME/sbin

刷新:

source /etc/profile

5、分发:

scp -r /etc/profile slave1:/etc

scp -r /etc/profile slave2:/etc

刷新使文件生效:

source /etc/profile

完成以上步骤,Spark-on-yarn便搭建完成了

时间同步

在跑任务时可能会报错:

Note: System times on machines may be out of sync. Check system time and time zones.

这个是因为三台机子时间不同步的原因

安装NTP服务(三个机子都要):

yum install ntp

手动同步时间(三个机子都要):

ntpdate -u ntp1.aliyun.com

精彩文章

评论可见,请评论后查看内容,谢谢!!!
 您阅读本篇文章共花了: