部署

Linux Debian 及其衍生系统环境

分布式部署架构图

_images/clusters.png

重要

此架构最低要求4台物理机,且Hadoop与应用平台部署在一台服务器,模拟一个小规模的集群。

部署准备

相关组件压缩包

  1. Spark3.0 (spark-3.0.2-bin-hadoop2.7.tgz)

  2. Hadoop2.7 (hadoop-2.7.4.tar.gz)

  3. JDK 1.8+ (OpenJDK8U-jdk_x64_linux_hotspot_8u292b10.tar.gz)

Jdbc 连接驱动及其它Jar包

节省繁琐的命令行操作,下载部署脚手架 ,解压后把组件包放入 bigdata 目录下,驱动与其它Jar放到 JdbcDriver 目录下,最后拷贝到所有部署机器的用户主目录。目录文件结构如下:

_images/user-home-bigdata-struct.png

执行安装

  1. 把 bigdata 目录下的 *.sh 文件修改为可执行

chmod +x *.sh
  1. 解压缩包至当前目录

./install.sh
  1. 在Hadoop部署的机器上执行

执行前先修改 conf 目录下两个XML文件:

core-site.xml 修改为Hadoop部署机器的 IP 地址

<?xml version="1.0"?>
<configuration>
    <property>
        <name>fs.defaultFS</name>
        <value>hdfs://IP:9000/</value>
    </property>
</configuration>

hdfs-site.xml 修改 Hadoop namenode 与 datanode 目录路径,按照以下所示替换成你登录的用户名

<?xml version="1.0"?>
<configuration>
    <property>
        <name>dfs.namenode.name.dir</name>
        <value>file:///home/你登录的用户名/hdfs/namenode</value>
        <description>NameNode directory for namespace and transaction logs storage.</description>
    </property>
    <property>
        <name>dfs.datanode.data.dir</name>
        <value>file:///home/你登录的用户名/hdfs/datanode</value>
        <description>DataNode directory</description>
    </property>
    ...
</configuration>

警告

一定要绝对路径,使用相对路径将无法启动服务。

./hadoop-master.sh
./hadoop-worker.sh
  1. 在Spark主节点机器上执行

./spark-master.sh
  1. 在Spark从节点机器上执行

./spark-worker.sh

警告

3、4、5 不是依次执行的关系,机器部署的服务不同就执行不同的脚本,而其它操作是一样的。

检查是否部署成功

是否可以在浏览器中打开Hadoop、Spark WebUI界面。

  1. Hadoop

访问:http://Hadoop部署的机器IP:50070 ,看到下面的画面即为成功,已注册了一个数据节点。

_images/hadoop-ui.png
  1. Spark

访问:http://Spark主节点部署的机器IP:8080 ,看到下面的画面即为成功,已注册一个或多个Worker。

_images/spark-ui.png

应用平台配置

  1. application-pro.yml

distributed:
    # 单机使用本机IP 127.0.0.1 或者 不填写,分布式部署使用能远程访问本机的IP地址
    host:
    # 默认 auto;分布式 spark://torchdb-master:7077
    master: auto
    # 主要是在HDFS中存放用户上传的数据文件
    fsDir:
  1. core-site.xml Hadoop文件系统配置

<?xml version="1.0"?>
<configuration>
    <property>
        <name>fs.defaultFS</name>
        <!--  Default is file:/// or hdfs://torchdb-master:9000-->
        <value>file:///</value>
    </property>
    ...
</configuration>