Liunx下搭建spark开发环境 (完全分布式集群下)

Liunx下搭建spark开发环境 (完全分布式集群下)

【有问题或错误,请私信我将及时改正;借鉴文章标明出处,谢谢】

借鉴文章:
在linux上安装spark详细步骤

Linux下安装Spark

Linux中安装配置spark集群

Spark2.4.0 分布式环境搭建

运行环境:
Linux所用版本为CentOS7
Jdk 1.8.0_171
Scala 2.11.12
Hadoop 2.7.3

一:jdk环境的安装与配置

1.下载jdk并解压
官网进行下载
这里我把jdk下载并解压到了soft目录下

在这里插入图片描述

2.配置环境变量

在这里插入图片描述

3.测试
java -version #在任意目录下执行,进行测试jdk环境

在这里插入图片描述

二:scala的安装与配置

1.下载scala并解压
官网进行下载
这里我把scala下载并解压到了soft目录下

tar -xzvf scala-2.11.12.tgz    #解压

在这里插入图片描述

2.配置环境变量并生效
vi /etc/profile 配置如下:

在这里插入图片描述在这里插入图片描述

3.测试

在这里插入图片描述

三:hadoop的安装与配置

1.下载并解压
官网进行下载
这里我把hadoop下载并解压到了soft目录下

在这里插入图片描述

2.配置环境变量

在这里插入图片描述

3.测试
hadoop version

在这里插入图片描述

安装完hadoop,加入完全分布式环境

{

完全分布式环境搭建

1、 克隆2台Centos,包括3台Centos,分别为master slave1 slave2

2、 修改3台主机IP地址,
master 192.168.80.11/24
slave1 192.168.80.12/24
slave2 192.168.80.13/24

修改命令参考:(三台都做)

nmcli connection modify ens33 ipv4.address 192.168.80.11/24 ipv4.gateway 192.168.80.2 ipv4.dns 192.168.80.2 ipv4.method manual connection.autoconnect yes
nmcli connection up ens33    #开启ens33

3、 修改主机名(3台虚机都做)

(1)master:

vi  /etc/hostname      # 写入内容如下(大括号内为添加内容)
{master}
hostname master          #临时修改名字并生效

(2)slave1: (方法同上)

vi  /etc/hostname      # 写入内容如下
{slave1}
hostname slave1

(3)slave2: (方法同上)

4.修改hosts文件(master,slave1,slave2上都需要修改)

vi  /etc/hosts    //写入如下内容(配大规模时必须在一个master上写,其他用脚本直接复制)
   192.168.80.11  master
   192.168.80.12  slave1
   192.168.80.13  slave2

测试:(使用主机名可以Ping通)

ping master
ping slave1
ping slave2 

5.关闭防火墙(3台主机上都做)

[root@master ~]# systemctl disable firewalld      #设置开机禁用防火墙
[root@master ~]# systemctl stop firewalld        #关闭防火墙

6.SSH免密配置

(1)删除所有主机上的~/.ssh/(切记删的是/root/.ssh/,如果误删.ssh那就再创一个)

[root@master .ssh]# rm -rf /root/.ssh/*

(2)在master上生成密钥对

[root@master .ssh]# ssh-keygen

(3)将master的公钥文件id_rsa.pub远程复制到其他主机上

[root@master .ssh]# cp id_rsa.pub authorized_keys  //在master上复制公钥到指定位置
[root@master .ssh]# scp id_rsa.pub root@slave1:/root/.ssh/authorized_keys   //在slave上复制公钥文件到指定位置
[root@master .ssh]# scp id_rsa.pub root@slave2:/root/.ssh/authorized_keys   //在slave上复制公钥文件到指定位置

(4)测试
在master上可以无密码登录到master slave1 slave2上

ssh mater
ssh slave1
ssh slave2

7.在master上进行完全分布式配置(配置文件所在目录${hadoop_home}/etc/hadoop) #进入hadoop目录下
(做完全分布式在做操作之前你得进入cd /soft/hadoop/etc 下 复制hadoop

  cp -r hadoop pseudo     #复制为伪分布,做伪分布式只要在完全分布基础上修改就好了
  cp -r hadoop local         #复制为本地,做本地只要在完全分布基础上修改就好了
  cp -r hadoop full          #复制为完全分布

①[core -site.xml]

<configuration>
   <property>
     <name>fs.defaultFS</name>
     <value>hdfs://master/</value>
   </property>
</configuration>

②[hdfs-site.xml]

<configuration>
   <property>
       <name>dfs.replication</name>
       <value>3</value>
   </property>
</configuration>

③cp mapred-site.xml.template mapred-site.xml #先复制一份,再修改

<?xml version="1.0"?>
<!-- mapred-site.xml -->
<configuration>
   <property>
      <name>mapreduce.framework.name</name>
      <value>yarn</value>
   </property>
</configuration>

④[yarn-site.xml]

<configuration>
    <property>
           <name>yarn.resourcemanager.hostname</name>
           <value>master</value>
    </property>
    <property>
           <name>yarn.nodemanager.aux-services</name>
           <value>mapreduce_shuffle</value>
    </property>
</configuration>

⑤[slaves] //在full目录下的slaves文件里写入以下内容,即3台slave服务器的主机名称

slave1
slave2

⑥[hadoop-env.sh] 添加如下内容

export JAVA_HOME=/soft/jdk

在这里插入图片描述

8、分发配置

[root@master ~]cd /soft/hadoop/etc    #进入分发目录下
[root@master etc]# scp -r full/ root@slave1:/soft/hadoop/etc/    
#将full文件夹分发到slave1的/soft/hadoop/etc下
[root@master etc]# scp -r full/ root@slave2:/soft/hadoop/etc/
#将full文件夹分发到slave2的/soft/hadoop/etc下

9.删除符号链接,重新链接
三台虚拟机上的hadoop都得删,才能创符号链接或者改名字

rm -rf /soft/Hadoop/etc/Hadoop

10、创建符号链接(slave1~3)

ln -s full Hadoop

11、删除临时目录文件(slave1、2)

cd /tmp
rm -rf hadoop-root

12、删除hadoop日志(每一次start-all.sh在logs都会生成文件记得删)

cd /soft/Hadoop/logs
rm -rf *

13、格式化文件系统(在master端完成)

hadoop namenode -format

//可能出现的问题:
多次格式化namenode 导致了namenode的clusterID和datanode 的clusterID不一致,导致hadoop2.7.3 datanode无法启动
//解决办法:
删除/tmp目录下的hadoop-用户目录
14、启动服务

[root@master full]# start-dfs.sh      //仅需在master上开启即可
[root@master logs]# start-yarn.sh    //仅需在master上开启即可

15、验证是否启动

[root@master full]# jps   (namenode节点上有以下进程)
1973 ResourceManager
2229 Jps
1671 NameNode
1839 SecondaryNameNode
[root@slave1 full]# jps   (在datanode节点上有以下进程)
27074 NodeManager
27172 Jps
26986 DataNode
slave2上节点数与slave1相同

}

四:spark的安装与配置

1.下载并解压
官网进行下载
这里我把spark下载并解压到了soft目录下并创建软连接

在这里插入图片描述

2.配置环境变量并生效
vi /etc/profile (添加内容如下)

在这里插入图片描述

source /etc/profile #生效profile文件

3.测试
spark-shell #进入shell下

在这里插入图片描述

五:配置spark分布式环境

1.进入spark/conf目录修改spark配置文件

cp spark-env.sh.template spark-env.sh        #复制一份命名为spark-env.sh

2.修改spark-env.sh文件,添加以下内容

export JAVA_HOME=/soft/jdk        #配置JAVA环境变量
export SCALA_HOME=/soft/scala-2.11.12             #配置scala环境变量
export HADOOP_HOME=/soft/hadoop            #配置hadoop环境变量
export SPARK_MASTER_HOST=master            #指定Master的IP
export SPARK_MASTER_PORT=7077           #指定Master的端口
export SPARK_WORKER_MEMORY=2g           #spark里许多用到内存的地方默认1g 2g 这里最好设置大与1g
export HADOOP_CONF_DIR=/soft/hadoop/etc/hadoop     #使得spark读写的是hdfs文件

在这里插入图片描述

3.复制slaves.template并重新命名为slaves

cp slaves.template slaves

4.在slaves中添加内容(这里的slave1,slave2为另外两台节点)

master
slave1
slave2 

在这里插入图片描述

5.分发文件

scp -r /soft/scala-2.11.12 root@slave1:/soft/     #分发scala到slave1上
scp -r /soft/scala-2.11.12 root@slave2:/soft/     #分发scala到slave2上

scp -r /soft/spark root@slave1:/soft/             #分发spark到slave1上
scp -r /soft/spark root@slave2:/soft/             #分发spark到slave2上

scp -r /etc/profile root@slave1:/etc/            #分发配置环境到slave1上
scp -r /exc/profile root@slave2:/etc/             #分发配置环境到slave2上

source /etc/profile  #三台机器全部执行
输入scala和spark-shell测试是否分发成功

在这里插入图片描述

6.启动spark集群

1.启动前确定hadoop集群已经启动

在这里插入图片描述

2.在spark目录下输入sbin/start-all.sh

在这里插入图片描述

3.检查节点
(1)看节点没问题就行了
(2)web界面启动查看集群状态
192.168.80.11:8080 这里再网址处输入的是:你的IP地址:8080

在这里插入图片描述
【有问题或错误,请私信我将及时改正;借鉴文章标明出处,谢谢】

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

fy_1852003327

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

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

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

打赏作者

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

抵扣说明:

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

余额充值