栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 前沿技术 > 大数据 > 大数据系统

搭建spark集群

搭建spark集群

目录

一、搭建集群

(一)私有云上创建三台虚拟机

(二)利用SecureCRT登录三台虚拟机

1.登录master

2.登录slave1

 3.登录slave2

4.修改master、slave1、slave2

(三)查看三台虚拟机主机名

(四)配置三台虚拟机IP-主机名映射

1、配置master虚拟机IP-主机名映射

2、配置slave1虚拟机IP-主机名映射 

 3、配置slave2虚拟机IP-主机名映射

(五)关闭与禁用防火墙

1、关闭与禁用master虚拟机的防火墙

2、关闭与禁用slave1虚拟机的防火墙

3、关闭与禁用slave2虚拟机的防火墙

(六)关闭SeLinux安全机制

1、在master虚拟机上关闭SeLinux安全机制

2、在slave1虚拟机上关闭SeLinux安全机制

3、在slave2虚拟机上关闭SeLinux安全机制

(七)设置三台虚拟机相互免密登录

1、master虚拟机免密登录master、slave1与slave2

2、slave1虚拟机免密登录master、slave1与slave2

3、slave2虚拟机免密登录master、slave1与slave2

(八)在三台虚拟机上安装lrzsr

1、在master虚拟机上安装lrzsz

2、在slave1虚拟机上安装lrzsz

3、在slave2虚拟机上安装lrzsz 

(九)在三台虚拟机上安装配置JDK

1、在master虚拟机上安装配置JDK

2、将master虚拟机上安装的JDK以及环境配置文件分发到slave1虚拟机

3、将master虚拟机上安装的JDK以及环境配置文件分发到slave2虚拟机

二、配置完全分布式Hadoop

(一)在master虚拟机上安装配置hadoop

1、上传hadoop安装包到/opt目录

2、将hadoop安装包解压到指定位置

3、配置hadoop环境变量

4、编辑hadoop环境配置文件 - hadoop-env.sh

5、编辑核心配置文件 - core-site.xml

6、编写HDFS配置文件 - hdfs-site.xml

7、编辑MapReduce配置文件 - mapred-site.xml

8、编辑yarn配置文件 - yarn-site.xml

9、编辑slaves文件(定名分)

(二)在slave1虚拟机上安装配置hadoop

 1、将master虚拟机上的hadoop分发到slave1虚拟机

 2、将master虚拟机上环境配置文件分发到slave1虚拟机

 3、在slave1虚拟机上让环境配置生效

 (三)在slave2虚拟机上安装配置hadoop

1、将master虚拟机上的hadoop分发到slave2虚拟机

2、将master虚拟机上环境配置文件分发到slave2虚拟机

3、在slave2虚拟机上让环境配置生效

 (四)在master虚拟机上格式化名称节点

(五)启动与关闭Hadoop集群

1、在master虚拟机上启动hadoop服务

2、查看hadoop集群的WebUI界面

三、配置Spark Standalone模式的集群

(一)在master主节点上安装配置Spark

1、上传spark安装包到master虚拟机

2、将spark安装包解压到master虚拟机指定目录

3、配置spark环境变量

4、编辑spark环境配置文件 - spark-env.sh

5、创建slaves文件,添加从节点

(二)在slave1从节点上安装配置Spark

1、把master虚拟机上的spark安装目录分发给slave1虚拟机

2、将master虚拟机上环境变量配置文件分发到slave1虚拟机

3、在slave1虚拟机上让spark环境配置文件生效

 (三)在slave2从节点上安装配置Spark

1、把master虚拟机上的spark安装目录分发给slave2虚拟机

2、将master虚拟机上环境变量配置文件分发到slave2虚拟机

3、在slave2虚拟机上让spark环境配置文件生效

 四、启动并使用Spark Standalone模式的集群

(一)启动hadoop的dfs服务

(二)启动Spark集群

(三)访问Spark的WebUI

(四)启动Scala版Spark Shell

(六)关闭Spark服务


一、搭建集群

(一)私有云上创建三台虚拟机

    创建配置过程,参看本博《 在私有云上创建与配置虚拟机》

(二)利用SecureCRT登录三台虚拟机

        打开连接对话框

1.登录master

        在master虚拟机上安装vim编辑器

        执行命令:vi /etc/resolv.conf,修改/etc/resolv.conf文件

 

添加两个域名服务器

存盘退出

执行命令:yum -y install vim

现在我们通过/etc/resolv.conf文件添加了域名解析服务器,因此可以ping通域名了

2.登录slave1

        同理在slave1虚拟机上安装vim编辑器

        执行命令:vi /etc/resolv.conf,修改/etc/resolv.conf文件

 存盘退出后,执行命令:yum - install vim,安装vim编辑器

 然后修改/etc/resolv.conf文件添加了域名解析服务器,使其能够ping通域名了

 

 3.登录slave2

        同理在slave2虚拟机上安装vim编辑器

        执行命令:vi /etc/resolv.conf,修改/etc/resolv.conf文件

存盘退出后,执行命令:yum - install vim,安装vim编辑器

 

  然后修改/etc/resolv.conf文件添加了域名解析服务器,使其能够ping通域名了

4.修改master、slave1、slave2

        点开对话框

修改选项

单击【OK】按钮

(三)查看三台虚拟机主机名

        查看master虚拟机主机名

        查看slave1虚拟机主机名

        查看slave2虚拟机主机名

(四)配置三台虚拟机IP-主机名映射

192.168.1.103 master
192.168.1.104 slave1
192.168.1.105 slave2

 1、配置master虚拟机IP-主机名映射

        执行命令:vim /etc/hosts

        存盘退出

2、配置slave1虚拟机IP-主机名映射 

        执行命令:vim /etc/hosts

        存盘退出

 3、配置slave2虚拟机IP-主机名映射

        执行命令:vim /etc/hosts

         存盘退出

 (五)关闭与禁用防火墙

         关闭与禁用防火墙

systemctl stop firewalld.service # 关闭防火墙
systemctl disable firewalld.service # 禁用防火墙

         查看防火墙状态

systemctl status firewalld.service

1、关闭与禁用master虚拟机的防火墙

 2、关闭与禁用slave1虚拟机的防火墙

 3、关闭与禁用slave2虚拟机的防火墙

(六)关闭SeLinux安全机制

 /etc/sysconfig/selinux文件里SELINUX=enforcing,将enforcing改成disable,就可以关闭SeLinux安全机制

1、在master虚拟机上关闭SeLinux安全机制

        执行命令:vim /etc/sysconfig/selinux

存盘退出

 2、在slave1虚拟机上关闭SeLinux安全机制

        执行命令:vim /etc/sysconfig/selinux

存盘退出

 3、在slave2虚拟机上关闭SeLinux安全机制

         执行命令:vim /etc/sysconfig/selinux

 存盘退出

(七)设置三台虚拟机相互免密登录

1、master虚拟机免密登录master、slave1与slave2

执行命令:ssh-keygen,生成密钥对

 执行命令:ssh-copy-id root@master,将公钥拷贝到master

 执行命令:ssh-copy-id root@slave1,将公钥拷贝到slave1

 执行命令:ssh-copy-id root@slave2,将公钥拷贝到slave2

验证master是否可以免密登录master、slave1与slave2

 2、slave1虚拟机免密登录master、slave1与slave2

    执行命令:ssh-keygen,生成密钥对

执行命令:ssh-copy-id root@master,将公钥拷贝到master

 

执行命令:ssh-copy-id root@slave1,将公钥拷贝到slave1

 执行命令:ssh-copy-id root@slave2,将公钥拷贝到slave2

 验证slave1是否可以免密登录master、slave1与slave2

3、slave2虚拟机免密登录master、slave1与slave2

        执行命令:ssh-keygen,生成密钥对

执行命令:ssh-copy-id root@master,将公钥拷贝到master

 执行命令:ssh-copy-id root@slave1,将公钥拷贝到slave1

执行命令:ssh-copy-id root@slave2,将公钥拷贝到slave2

 验证slave2是否可以免密登录master、slave1与slave2

(八)在三台虚拟机上安装lrzsr

1、在master虚拟机上安装lrzsz

        执行命令:yum -y install lrzsz

 2、在slave1虚拟机上安装lrzsz

        执行命令:yum -y install lrzsz

3、在slave2虚拟机上安装lrzsz 

        执行命令:yum -y install lrzsz

(九)在三台虚拟机上安装配置JDK

1、在master虚拟机上安装配置JDK

        上传Java安装包到/opt目录

执行tar -zxvf jdk-8u231-linux-x64.tar.gz -C /usr/local,将Java安装包解压到/usr/local

执行命令:ls /usr/local,查看解压之后的jdk

执行命令:vim /etc/profile,配置环境变量

JAVA_HOME=/usr/local/jdk1.8.0_231
CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
PATH=$JAVA_HOME/bin:$PATH
export JAVA_HOME PATH CLASSPATH

存盘退出,执行命令:source /etc/profile,让配置生效

查看JDK版本- java -version

2、将master虚拟机上安装的JDK以及环境配置文件分发到slave1虚拟机

        执行命令:scp -r $JAVA_HOME root@slave1:$JAVA_HOME (-r recursive - 递归)

在slave1虚拟机上查看Java是否拷贝成功  ll /usr/local

在master虚拟机上,执行命令:scp /etc/profile root@slave1:/etc/profile,将环境配置文件分发到slave1虚拟机

在slave1虚拟机上,查看从master虚拟机拷贝过来的配置文件profile

 

存盘退出,执行命令:source /etc/profile,让配置生效

 

执行命令:java -version,查看JDK版本

 

3、将master虚拟机上安装的JDK以及环境配置文件分发到slave2虚拟机

        执行命令:scp -r $JAVA_HOME root@slave2:$JAVA_HOME

 

 在slave2虚拟机上查看Java是否拷贝成功

 

在master虚拟机上,执行命令:scp /etc/profile root@slave2:/etc/profile

 在slave2虚拟机上,查看从master虚拟机拷贝过来的配置文件profile

存盘退出,执行命令:source /etc/profile,让配置生效

执行命令:java -version,查看JDK版本

二、配置完全分布式Hadoop

(一)在master虚拟机上安装配置hadoop

1、上传hadoop安装包到/opt目录

        利用rz命令上传hadoop-2.7.1.tar.gz

2、将hadoop安装包解压到指定位置

执行命令:tar -zxvf hadoop-2.7.1.tar.gz -C /usr/local

查看解压之后的hadoop目录(bin: 可执行文件;etc/hadoop: 配置目录;sbin: 启动关闭系统的命令)

 

 3、配置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
PATH=$JAVA_HOME/bin:$HADOOP_HOME/bin:$HADOOP_HOME/sbin:$PATH
export JAVA_HOME HADOOP_HOME PATH CLASSPATH

存盘退出,执行命令:source /etc/profile,让配置生效

4、编辑hadoop环境配置文件 - hadoop-env.sh

env: environment —— 环境

执行命令:cd $HADOOP_HOME/etc/hadoop,进入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

存盘退出后,执行命令source hadoop-env.sh,让配置生效

 查看三个配置的三个环境变量

5、编辑核心配置文件 - core-site.xml

        执行命令:vim core-site.xml


   
   
        fs.defaultFS
        hdfs://master:9000
   

   
   
        hadoop.tmp.dir
        /usr/local/hadoop-2.7.1/tmp
   
    

存盘退出

6、编写HDFS配置文件 - hdfs-site.xml

        执行命令:vim hdfs-site.xml


   
       
        dfs.namenode.name.dir
        /usr/local/hadoop-2.7.1/tmp/namenode
   

   
       
        dfs.datanode.data.dir
        /usr/local/hadoop-2.7.1/tmp/disk1, /usr/local/hadoo
p-2.7.1/tmp/disk2

   

存盘退出

7、编辑MapReduce配置文件 - mapred-site.xml

         基于模板生成配置文件,执行命令:cp mapred-site.xml.template mapred-site.xml

 执行命令:vim mapred-site.xml


   
       
        mapreduce.framework.name
        yarn
   

存盘退出

8、编辑yarn配置文件 - yarn-site.xml

        执行命令:vim yarn-site.xml

 


   
       
        yarn.resourcemanager.hostname
        master
   

   
       
        yarn.nodemanager.aux-services
        mapreduce_shuffle
   

存盘退出

说明:在hadoop-3.0.0的配置中,yarn.nodemanager.aux-services项的默认值是“mapreduce.shuffle”,但如果在hadoop-2.7 中继续使用这个值,NodeManager 会启动失败。

9、编辑slaves文件(定名分)

通过slaves文件定义从节点,有两个:slave1与slave2

执行命令:vim slaves

存盘退出

(二)在slave1虚拟机上安装配置hadoop

 1、将master虚拟机上的hadoop分发到slave1虚拟机

        执行命令:scp -r $HADOOP_HOME root@slave1:$HADOOP_HOME

 2、将master虚拟机上环境配置文件分发到slave1虚拟机

        执行命令:scp /etc/profile root@slave1:/etc/profile

 3、在slave1虚拟机上让环境配置生效

        切换到slave1虚拟机,执行命令:source /etc/profile

 (三)在slave2虚拟机上安装配置hadoop

 1、将master虚拟机上的hadoop分发到slave2虚拟机

         执行命令:scp -r $HADOOP_HOME root@slave2:$HADOOP_HOME

 2、将master虚拟机上环境配置文件分发到slave2虚拟机

        执行命令:scp /etc/profile root@slave2:/etc/profile

3、在slave2虚拟机上让环境配置生效

         切换到slave2虚拟机,执行命令:source /etc/profile

 (四)在master虚拟机上格式化名称节点

在master虚拟机上,执行命令:hdfs namenode -format

(五)启动与关闭Hadoop集群

1、在master虚拟机上启动hadoop服务

 执行命令:start-dfs.sh,启动hdfs服务

 

 一个名称节点(namenode)——老大,在master虚拟机上;两个数据节点(datanode)——小弟,在slave1与slave2虚拟机上。

辅助名称节点(secondarynamenode)的地址是0.0.0.0,这是默认的,当然可以修改,可以在hdfs-site.xml文件里配置辅助名称节点


    
     dfs.namenode.secondary.http-address
     master:50090

存盘退出

再次启动hdfs服务

关闭之后,再执行命令:start-dfs.sh

 这样就是在master虚拟机(192.168.1.103)上启动辅助名称节点(secondarynamenode)

此时查看三个虚拟机的进程

执行命令:start-yarn.sh,启动YARN服务 

 启动了YARN守护进程;一个资源管理器(resourcemanager)在master虚拟机上,两个节点管理器(nodemanager)在slave1与slave2虚拟机上

执行命令jps查看master虚拟机的进程,只有NameNode、SecondaryNameNode和ResourceManager

 查看slave1和slave2上的进程,只有NodeManager和DataNode

 2、查看hadoop集群的WebUI界面

         在HTY_win7虚拟机浏览器访问http://master:50070

 不能通过主机名master加端口50070的方式,原因在于没有在hosts文件里IP与主机名的映射,现在可以访问http://192.168.1.103:50070

 修改hw_win7虚拟机上的C:WindowsSystem32driversetchosts文件

 重启hadoop集群,访问http://master:50070

 查看数据节点信息

 3、停止hadoop服务

在master虚拟机上执行命令:stop-all.sh(相当于同时执行了stop-dfs.sh与stop-yarn.sh)

提示:This script is Deprecated. Instead use stop-dfs.sh and stop-yarn.sh,说明stop-all.sh脚本已经被废弃掉了,让我们最好使用stop-dfs.sh与stop-yarn.sh。

三、配置Spark Standalone模式的集群

(一)在master主节点上安装配置Spark

1、上传spark安装包到master虚拟机

        利用rz将hw_win7虚拟机上的spark安装包上传到master虚拟机/opt目录

2、将spark安装包解压到master虚拟机指定目录

 执行命令:tar -zxvf spark-2.4.4-bin-hadoop2.7.tgz -C /usr/local

3、配置spark环境变量

执行命令:vim /etc/profile

JAVA_HOME=/usr/local/jdk1.8.0_231
HADOOP_HOME=/usr/local/hadoop-2.7.1
SPARK_HOME=/usr/local/spark-2.4.4-bin-hadoop2.7
CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
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安装目录(bin、sbin和conf三个目录很重要)

4、编辑spark环境配置文件 - spark-env.sh

进入spark配置目录后,执行命令:cp spark-env.sh.template spark-env.sh与vim spark-env.sh

export JAVA_HOME=/usr/local/jdk1.8.0_231
export SPARK_MASTER_HOST=master
export SPARK_MASTER_PORT=7077

存盘退出,执行命令:source spark-env.sh,让配置生效

5、创建slaves文件,添加从节点

        执行命令:vim slaves

添加两个从节点的主机名

存盘退出

(二)在slave1从节点上安装配置Spark

1、把master虚拟机上的spark安装目录分发给slave1虚拟机

执行命令:scp -r $SPARK_HOME root@slave1:$SPARK_HOME

 2、将master虚拟机上环境变量配置文件分发到slave1虚拟机

 在master虚拟机上,执行命令:scp /etc/profile root@slave1:/etc/profile

在slave1虚拟机上,执行命令:source /etc/profile

3、在slave1虚拟机上让spark环境配置文件生效

 执行命令:source spark-env.sh

 (三)在slave2从节点上安装配置Spark

 1、把master虚拟机上的spark安装目录分发给slave2虚拟机

 执行命令:scp -r $SPARK_HOME root@slave2:$SPARK_HOME

 2、将master虚拟机上环境变量配置文件分发到slave2虚拟机

 在master虚拟机上,执行命令:scp /etc/profile root@slave2:/etc/profile

在slave2虚拟机上,执行命令:source /etc/profile

3、在slave2虚拟机上让spark环境配置文件生效

 执行命令:source spark-env.sh

 四、启动并使用Spark Standalone模式的集群

Spark standalone模式下使用的是Spark自带的资源调度框架,但是一般我们把数据保存在HDFS上,也就是用HDFS做数据的持久化,所以hadoop还是需要配置,但是可以只配置HDFS相关的,而Hadoop YARN不需要配置。启动Spark Standalone模式的集群,不需要启动YARN服务,因为Spark会使用自带的资源调度框架。

(一)启动hadoop的dfs服务

在master虚拟机上执行命令:start-dfs.sh

(二)启动Spark集群

在master虚拟机上进入spark安装目录下的sbin子目录,执行命令:./start-all.sh

查看master节点进程

 查看slave1节点进程

 查看slave2节点进程

 (三)访问Spark的WebUI

 在hw_win7虚拟机上,访问http://master:8080

 

 (四)启动Scala版Spark Shell

 执行命令:spark-shell --master spark://master:7077

(六)关闭Spark服务

 在master节点执行命令:stop-master.sh与stop-slaves.sh

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/775666.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号