华为云Hadoop与Spark集群环境搭建

所使用安装包及对应版本:

  • JDK 8
  • Hadoop 2.7.1
  • Spark 3.2.0

Hadoop 2.7.1环境搭建

1、购买华为云服务器

在华为云平台购买3台centos弹性云服务器,一台作为master,另外两台作为slave。它们在同一内网中,相互之间是能ping通的。
在这里插入图片描述

2、修改服务器相关配置

1. CloudShell远程登录master主机,使用如下命令修改主机名为master:

# hostname master

再进入/etc/hostname文件,修改文件内容为master,重新建立会话连接,就能看到主机名已经被修改为master。
在这里插入图片描述
同理,修改另外两台服务器主机名分别为slave01slave02

2. 分别进入三台主机的/etc/hosts文件,修改配置为

127.0.0.1 localhost
192.168.0.90 master
192.168.0.137 slave01
192.168.0.48 slave02

这样,不需要输入IP地址,只需输入相应主机名就能ping通对应主机。
在这里插入图片描述

3、配置ssh免密登录

在master主机上输入如下命令并输入对应密码即可登录slave01主机:

# ssh slave01

但在Hadoop集群环境中不可能每次都要master输入slave的密码,所以需要配置ssh免密登录。华为云弹性云服务器默认配置了ssh服务,可通过如下命令查看ssh服务状态,出现sshd进程则表示服务已经启动。

# ps -e | grep ssh

在master主机上输入如下命令,遇到选项全部回车或者yes即可。注:这里需要输入一次slave01和slave02的密码。

# cd /root/.ssh
# ssh-keygen -t rsa
# ssh-copy-id -i /root/.ssh/id_rsa.pub master
# ssh-copy-id -i /root/.ssh/id_rsa.pub slave01
# ssh-copy-id -i /root/.ssh/id_rsa.pub slave01

配置完成后,若通过命令ssh slave01ssh slave02能直接登录slave01和slave02主机,则免密登录配置完成。

4、JDK安装

在Hadoop官网上看到不同版本的Hadoop支持的jdk版本: Hadoop对应jdk版本
在这里插入图片描述
可以看到Hadoop 2.0支持Java 7和Java 8(更高的版本会报错),这里提供本文使用的JDK8网盘链接。
链接:https://pan.baidu.com/s/1vZzs0E_3aSxRuUqoPW8C6g
提取码:vwk5

在master主机的/usr/local目录下新建java文件夹,将下载好的JDK8安装包上传到java文件夹中。并使用如下命令进行压缩包的解压:

# cd /usr/local/java
# tar -zxvf jdk-8u202-linux-x64.tar.gz

效果如图:
在这里插入图片描述
使用如下命令打开/etc/profile配置文件:

# vim /etc/profile

在文件末行添加如下java环境变量:

export JAVA_HOME=/usr/local/java/jdk1.8.0_202
export CLASSPATH=:$JAVA_HOME/lib:$JAVA_HOME/jre/lib:$CLASSPATH
export PATH=$JAVA_HOME/bin:$JAVA_HOME/jre/bin:$PATH

输入如下命令使配置文件生效:

# source /etc/profile

可输入命令javajavac来查看JDK是否安装成功。
在主机slave01和slave02上使用同样的方法进行JDK的安装,或者使用如下文件拷贝命令将master整个java目录拷贝给slave01和slave02:

# scp -r /usr/local/java/ root@slave01:/usr/local/java/
# scp -r /usr/local/java/ root@slave02:/usr/local/java/

注:slave01与slave02的java环境变量也要记得配。

5、Hadoop集群搭建

1、环境配置
本文搭建的Hadoop平台版本为2.7.1,这里附上百度网盘链接。
链接:https://pan.baidu.com/s/1HwmgNu502HmYBcZRhbUjgg
提取码:9t4d

在master主机的/usr/local目录下新建hadoop文件夹,将下载好的hadoop压缩包上传到该文件夹中,使用如下命令进行解压:

# cd /usr/local/hadoop
# tar -zxvf hadoop-2.7.1.tar.gz

修改配置文件/etc/profile,添加如下配置:

export HADOOP_HOME=/usr/local/hadoop/hadoop-2.7.1
export PATH=$PATH:$HADOOP_HOME/bin:$HADOOP_HOME/sbin

输入命令使配置文件生效:

# source /etc/profile

2、修改相关文件
修改master主机中Hadoop的如下配置文件,这些配置文件都位于/usr/local/hadoop/hadoop-2.7.1/etc/hadoop目录下。

  • 修改slaves文件,这里让master节点主机仅作为NameNode节点使用。
slave01
slave02
  • 修改hadoop-env.sh export JAVA_HOME项:
export JAVA_HOME=/usr/local/java/jdk1.8.0_202

注:这里需要显示申明JAVA_HOME,不然会在运行的时候出现找不到java路径的错误。

  • 修改core-site.xml:
<configuration>
      <property>
          <name>hadoop.tmp.dir</name>
          <value>file:/usr/local/hadoop/hadoop-2.7.1/tmp</value>
          <description>Abase for other temporary directories.</description>
      </property>
      <property>
          <name>fs.defaultFS</name>
          <value>hdfs://master:9000</value>
      </property>
</configuration>
  • 修改hdfs-site.xml:
<configuration>
    <property>
        <name>dfs.replication</name>
        <value>3</value>
    </property>
    <property>
        <name>dfs.namenode.http-address</name>
        <value>master:50070</value>
    </property>
    <property>
        <name>dfs.namenode.secondary.http-address</name>
        <value>master:50090</value>
    </property>
    <property>
        <name>dfs.namenode.name.dir</name>
        <value>file:/usr/local/hadoop/hadoop-2.7.1/hdfs/name</value>
    </property>
    <property>
        <name>dfs.datanode.data.dir</name>
        <value>file:/usr/local/hadoop/hadoop-2.7.1/hdfs/data</value>
    </property> 
</configuration>
  • 修改mapred-site.xml:
    将mapred-site.xml.template文件内容复制到mapred-site.xml,再修改mapred-site.xml文件。相关命令和修改内容如下:
# cd /usr/local/hadoop/hadoop-2.7.1/etc/hadoop
# cp mapred-site.xml.template mapred-site.xml
<configuration>
    <property>
        <name>mapreduce.framework.name</name>
        <value>yarn</value>
    </property>
</configuration>
  • 修改yarn-site.xml:
<configuration>
    <!-- Site specific YARN configuration properties -->
    <property>
        <name>yarn.nodemanager.aux-services</name>
        <value>mapreduce_shuffle</value>
    </property>
    <property>
        <name>yarn.resourcemanager.hostname</name>
        <value>master</value>
    </property>
</configuration>

3、slave节点配置Hadoop
通过如下命令将master主机的hadoop目录拷贝给slave01和slave02。

# scp -r /usr/local/hadoop/ root@slave01:/usr/local/hadoop/
# scp -r /usr/local/hadoop/ root@slave02:/usr/local/hadoop/

再配置/etc/profile文件中Hadoop相关环境变量即可。
4、启动Hadoop集群
在master主机中输入如下命令即可启动Hadoop集群:

# cd /usr/local/hadoop/hadoop-2.7.1
# bin/hdfs namenode -format
# sbin/start-all.sh

在master主机中输入命令jps即可看到如下进程信息。
在这里插入图片描述
在slave01中输入命令jps即可看到如下进程信息。
在这里插入图片描述
注:关闭Hadoop集群命令如下,尽量保证服务有开就有停,可以避免很多问题出现。

# sbin/stop-all.sh

5、查看Hadoop管理页面
浏览器输入http://master公网IP:50070即可访问到如下Hadoop管理页面。

在这里插入图片描述
注:若打不开Hadoop管理页面,可能是HDFS中NameNode的默认端口50070没有开放。在华为云服务器安全组中添加如下规则即可。

在这里插入图片描述

Spark 3.2.0集群环境搭建

1、Spark安装

Spark分布式集群的安装环境,需要事先配置好Hadoop的分布式集群环境。可以去Apache官网下载与Hadoop匹配的Spark版本。
在这里插入图片描述

这里附上本文使用的Spark 3.2.0网盘链接。
链接:https://pan.baidu.com/s/1R40ZXixzRyPT04uGhBgKfw
提取码:35fl

这里同样先搭建master主机的Spark环境,再通过文件拷贝搭建slave01与slave02环境。在master主机的/usr/local目录下新建spark文件夹,将下载好的Spark压缩包上传到该文件夹中,使用如下命令进行解压,并修改文件夹名称为spark-3.2.0:

# cd /usr/local/spark
# tar -zxvf spark-3.2.0-bin-hadoop2.7.tgz
# mv spark-3.2.0-bin-hadoop2.7 spark-3.2.0

打开/etc/profile文件,添加如下配置:

export SPARK_HOME=/usr/local/spark/spark-3.2.0
export PATH=$PATH:$SPARK_HOME/bin:$SPARK_HOME/sbin

并使用如下命令使配置生效:

# source /etc/profile

2、Spark文件配置

在master主机上进行如下操作:

  • 配置workers文件:
    将workers.template 拷贝到workers
# cd /usr/local/spark/spark-3.2.0/conf
# cp workers.template workers

workers文件设置Worker节点,把默认内容localhost替换成如下内容:

slave01
slave02
  • 配置spark-env.sh文件:
    将 spark-env.sh.template 拷贝到 spark-env.sh
#cp spark-env.sh.template spark-env.sh

编辑spark-env.sh,添加如下内容:

export SPARK_DIST_CLASSPATH=$(/usr/local/hadoop/hadoop-2.7.1/bin/hadoop classpath)
export HADOOP_CONF_DIR=/usr/local/hadoop/hadoop-2.7.1/etc/hadoop
export SPARK_MASTER_IP=192.168.0.90
export JAVA_HOME=/usr/local/java/jdk1.8.0_202

注:
① SPARK_MASTER_IP 指定 Spark 集群 Master 节点的 IP 地址。
② 最后一行的JAVA_HOME一定要申明,不然会出现slave节点找不到JAVA_HOME的错误。

配置好后,将Master主机上的/usr/local/spark文件夹复制到各个节点上。在Master主机上执行如下命令:

# scp -r /usr/local/spark/ root@slave01:/usr/local/spark/
# scp -r /usr/local/spark/ root@slave02:/usr/local/spark/

注:别忘了配置slave01与slave02的/etc/profile文件。

3、启动Spark集群

1、启动Hadoop集群
启动Spark集群前,要先启动Hadoop集群。在Master节点主机上运行如下命令:

# cd /usr/local/hadoop/hadoop-2.7.1
# sbin/start-all.sh

2、启动Spark集群

  • 启动Master节点
    在Master节点主机上运行如下命令:
# cd /usr/local/spark/spark-3.2.0
# sbin/start-master.sh

在Master节点上运行jps命令,可以看到多了个Master进程:
在这里插入图片描述

  • 启动所有Slave节点
    在Master节点主机上运行如下命令:
# sbin/start-slaves.sh

分别在slave01、slave02节点上运行jps命令,可以看到多了个Worker进程
在这里插入图片描述
3、在浏览器上查看Spark独立集群管理器的集群信息
打开浏览器,访问http://master公网IP:8080,如下图:
在这里插入图片描述
注:若无法访问,可能是安全组8080端口未开放,安全组中开放8080端口即可。

4、关闭Spark集群

1、关闭master节点

# sbin/stop-master.sh

2、关闭Worker节点

# sbin/stop-slaves.sh

3、关闭Hadoop集群

# cd /usr/local/hadoop/hadoop-2.7.1
# sbin/stop-all.sh

参考文档:
http://dblab.xmu.edu.cn/blog/1177-2/
http://dblab.xmu.edu.cn/blog/1187-2/

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
THE END
分享
二维码

)">
< <上一篇

)">
下一篇>>