1大数据平台及组件搭建https://baijiahao.baidu.com/s?id=1849543147230084630

任务1:大数据平台及组件搭建

(0 / 20分)

本搭建模块对应虚拟机为:master、slave1、slave2
相关压缩包路径为: /root/software/package/****,对应安装路径为 /root/software/

子任务一:基础环境搭建(0 / 3分)

本任务需要使用 root 用户完成相关配置,安装 Hadoop需要配置前置环境。命令中要求使用绝对路径,具体要求如下:

考核条件如下 :

1.修改三台节点的主机名称分别为 master、slave1 和 slave2,并编辑 hosts 文件添加IP主机名映射;

(0/ 1分)

注意:对应主机名及IP信息参考页面左侧"操作环境"相关内容,如果遇到内网/公网双重IP信息,主机之间使用内网IP进行通信。

操作环境:

master、slave1、slave2、master、slave1、slave2

2.执行命令生成公钥、私钥,实现三台机器间的免秘登陆(master到localhost、slave1、slave2);

(0/ 1分)

(1)配置免密登录,在 master 节点上生成非对称加密类型( RSA 或 DSA)的 SSH 密钥对;

(2)将 master 节点中的公钥拷贝到 slave1 和 slave2 节点上;

(3)在 master 节点通过 SSH 连接 slave1 和 slave2 验证免密登录配置是否成功;

操作环境:

master、master、master

3.将JDK安装包解压到/root/software目录下,设置JDK环境变量并使其生效;

(0/ 1分)

(1) 配置 java 环境,解压 master 中的 /root/software/package 目录下 jdk-8u212-linux-x64.tar.gz 安装包到 /root/software(若路径不存在,则需新建) 路径下;

(2) 修改 /etc/profile 文件,设置JDK环境变量并使其生效,配置完毕后在三台节点分别执行"java -version"和"javac"命令。

操作环境:

master、slave1、slave2

以下是针对你的子任务一的详细命令操作步骤,分为三个部分,使用 root 用户 在三台主机上完成,全部使用 绝对路径。主机 IP 如下:

  • master:101.200.150.180
  • slave1:123.56.96.9
  • slave2:123.56.135.124

✅ 子任务一:基础环境搭建


1. 修改主机名并配置 hosts 文件(每台机器都要做)

① 修改主机名(分别在对应机器上执行)

bash

复制代码
# 在 101.200.150.180 上执行
hostnamectl set-hostname master

# 在 123.56.96.9 上执行
hostnamectl set-hostname slave1

# 在 123.56.135.124 上执行
hostnamectl set-hostname slave2

⚠️ 修改后建议重启或重新登录 shell 使主机名生效。

② 编辑 /etc/hosts 文件(三台机器都要做)

bash

复制代码
vi /etc/hosts

添加以下内容:

复制代码
101.200.150.180 master
123.56.96.9    slave1
123.56.135.124 slave2


172.18.15.251 master Nf!mKsKC7H2f
172.18.16.78 slave1 p8BtxHV!sCNt
172.18.16.80 slave2 zF6NT6#faJ9s

2. 配置 SSH 免密登录(仅在 master 上操作)

① 生成 RSA 密钥对(master 上执行)

bash

复制代码
ssh-keygen -t rsa -P "" -f /root/.ssh/id_rsa
② 将公钥拷贝到 slave1 和 slave2

bash

复制代码
ssh-copy-id -i /root/.ssh/id_rsa.pub root@localhost
ssh-copy-id -i /root/.ssh/id_rsa.pub root@slave1
ssh-copy-id -i /root/.ssh/id_rsa.pub root@slave2
③ 验证免密登录

bash

复制代码
ssh localhost
ssh slave1
exit
ssh slave2
exit

如果能直接登录无需输入密码,说明配置成功。


3. 安装并配置 JDK (三台机器都要做

① 创建目录并解压 JDK

bash

复制代码
tar -zxvf /root/software/package/jdk-8u212-linux-x64.tar.gz -C /root/software/
② 配置环境变量

编辑 /etc/profile

bash

复制代码
vi /etc/profile

在文件末尾添加:

bash

复制代码
export JAVA_HOME=/root/software/jdk1.8.0_212
export PATH=$JAVA_HOME/bin:$PATH
export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar

使配置生效:

bash

复制代码
source /etc/profile
③ 验证安装(三台机器都要执行)

bash

复制代码
java -version
javac

若能正常输出版本信息和 javac 用法,说明配置成功。


✅ 总结:你需要在以下节点执行的操作

表格

|----------------|----------------------|
| 操作 | 执行节点 |
| 修改主机名、配置 hosts | master、slave1、slave2 |
| 生成密钥、配置免密登录 | master |
| 安装 JDK、配置环境变量 | master、slave1、slave2 |


如果你需要我帮你写成脚本形式(自动部署),也可以告诉我,我可以帮你写批量脚本。

子任务二:Zookeeper与Hadoop搭建配置(0 / 5分)

本任务需要使用root 用户完成相关配置,已安装Hadoop及需要配置前置环境,具体要求如下:

Hadoop安全属性参考:

1.开启 Hadoop 安全授权,通过修改 Hadoop 核心配置文件 core-site.xml ,添加 "hadoop.security.authorization " 属性,并将其属性值设置为 "true ",开启安全授权功能

2.为保证分布式文件系统 HDFS 上的数据安全性,通过修改 hdfs-site.xml 配置文件启用 HDFS 的权限控制 以及设置只有指定超级用户组才可以对 HDFS 文件系统进行读写、执行等权限操作。

  • dfs.permissions.enabled:该属性设置为 true 表示启用 HDFS 的权限控制
  • dfs.permissions.superusergroup:该属性用于配置超级用户组,此组内用户可绕过权限检查

3.通过配置 yarn-site.xml 禁用 Yarn 提供的 Web 服务接口和绑定本机地址,实现只允许内网可访问。同时禁用资源管理器的 RPC 调用地址防止 RPC 的未授权访问漏洞。(集群配置参考)

复制代码
<!--  禁用 Yarn 提供的 Web 服务接口和绑定本机地址,实现只允许内网可访问 -->
<!-- RM 服务绑定到的实际地址,指定为 master主机 -->
<property>
  <name>yarn.resourcemanager.bind-host</name>
  <value>master</value>
</property>
<!-- RM 资源管理器绑定的 Web UI 服务主机地址和端口号,改为 0.0.0.0:0 监听无效的IP和端口 -->
<property>
  <name>yarn.resourcemanager.webapp.address</name>
  <value>0.0.0.0:0</value>
</property>
<!-- RM 资源管理器绑定的 Web UI 服务主机地址和端口号(HTTPS访问),改为 0.0.0.0:0 监听无效的IP和端口 -->
<property>
  <name>yarn.resourcemanager.webapp.https.address</name>
  <value>0.0.0.0:0</value>
</property>
<!-- NM 资源管理器绑定的 Web UI 服务主机地址和端口号,改为 0.0.0.0:0 监听无效的IP和端口 -->
<property>
  <name>yarn.nodemanager.webapp.address</name>
  <value>0.0.0.0:0</value>
</property>
<!-- NM 资源管理器绑定的 Web UI 服务主机地址和端口号(HTTPS访问),改为 0.0.0.0:0 监听无效的IP和端口 -->
<property>
  <name>yarn.nodemanager.webapp.https.address</name>
  <value>0.0.0.0:0</value>
</property>

4.修改 hadoop-policy.xml 服务认证配置文件(授予只有root用户才可操作的权限,可直接替换整个文件, 文件见"左侧附件")

考核条件如下 :1.在master节点将apache-zookeeper-3.5.7-bin.tar.gz包解压到/root/software(若路径不存在,则需新建)路径下;

(0/ 1分)

在master节点将/root/software/package目录下的apache-zookeeper-3.5.7-bin.tar.gz包解压到/root/software(若路径不存在,则需新建)路径下;

操作环境:

master

2.将相关解压后的文件拷贝到slave1、slave2节点,并在三台节点上配置对应环境变量;

(0/ 1分)

将相关解压后的文件拷贝到slave1、slave2节点,并在三台节点上配置对应环境变量;

操作环境:

slave1、slave2

3.修改对应配置文件,对应配置文件及主机标识要求如下;

(0/ 1分)

相关日志文件配置参考路径如下:

dataDir:/root/software/apache-zookeeper-3.5.7-bin/data/

dataLogDir:/root/software/apache-zookeeper-3.5.7-bin/zklog/

|--------|-------------------------|
| 主机 | 主机标识($dataDir/myid) |
| master | 1 |
| slave1 | 2 |
| slave2 | 3 |

操作环境:

master、slave1、slave2

4.在master将Hadoop解压并配置相关文件,并分发至slave1、slave2中,要求三台节点均为datanode,初始化Hadoop

(0/ 2分)

在master将/root/software/package目录下的hadoop-3.1.3.tar.gz解压到/root/software(若路径不存在,则需新建)目录下,配置相关配置文件,并将解压包分发至slave1、slave2中,其中master、slave1、slave2节点均作为datanode,配置好相关环境,初始化Hadoop环境namenode。

部分相关数据配置属性要求如下(hdfs-site.xml),其他属性选手自定义操作,相关安全属性参考"模块说明"及"附件文件"。

复制代码
<property>
 <name>dfs.namenode.name.dir</name>
 <value>/root/software/hadoop-3.1.3/hadoopDatas/namenodeDatas</value>
</property>
<property>
 <name>dfs.datanode.data.dir</name>
 <value>/root/software/hadoop-3.1.3/hadoopDatas/datanodeDatas</value>
</property>

操作环境:

master、slave1、slave2、master

下面给出 子任务二:Zookeeper 与 Hadoop 搭建配置完整命令步骤 ,全部使用 root 用户绝对路径 ,按 5 个得分点顺序编排,可直接执行。

(IP 与题目一致:master 101.200.150.180,slave1 123.56.96.9,slave2 123.56.135.124)


✅ 1. master 节点解压 Zookeeper(1 分)

bash

复制代码
tar -zxvf /root/software/package/apache-zookeeper-3.5.7-bin.tar.gz -C /root/software/

✅ 2. 分发 Zookeeper 并配置环境变量(1 分)

① 分发安装目录

bash

复制代码
# 在 master 执行
scp -r /root/software/apache-zookeeper-3.5.7-bin root@slave1:/root/software/
scp -r /root/software/apache-zookeeper-3.5.7-bin root@slave2:/root/software/
② 三台机器均配置环境变量(以 master 为例,slave1/2 同理)

bash

复制代码
cat >> /etc/profile <<'EOF'
# >>> zookeeper >>>
export ZOOKEEPER_HOME=/root/software/apache-zookeeper-3.5.7-bin
export PATH=$ZOOKEEPER_HOME/bin:$PATH
EOF

source /etc/profile

slave1、slave2 同样执行一次(可 ssh 过去执行)。


✅ 3. Zookeeper 配置(1 分)

① 创建数据/日志目录(三台均做)

bash

复制代码
mkdir -p /root/software/apache-zookeeper-3.5.7-bin/data
mkdir -p /root/software/apache-zookeeper-3.5.7-bin/zklog
② 创建 myid 文件(三台值不同)

bash

复制代码
# master
echo 1 > /root/software/apache-zookeeper-3.5.7-bin/data/myid

# slave1
echo 2 > /root/software/apache-zookeeper-3.5.7-bin/data/myid

# slave2
echo 3 > /root/software/apache-zookeeper-3.5.7-bin/data/myid
③ 生成统一配置文件(zoo.cfg)

master 执行:

bash

复制代码
cat > /root/software/apache-zookeeper-3.5.7-bin/conf/zoo.cfg <<'EOF'
tickTime=2000
initLimit=10
syncLimit=5
dataDir=/root/software/apache-zookeeper-3.5.7-bin/data
dataLogDir=/root/software/apache-zookeeper-3.5.7-bin/zklog
clientPort=2181
server.1=master:2888:3888
server.2=slave1:2888:3888
server.3=slave2:2888:3888
EOF

分发到 slave1、slave2:

bash

复制代码
scp /root/software/apache-zookeeper-3.5.7-bin/conf/zoo.cfg root@slave1:/root/software/apache-zookeeper-3.5.7-bin/conf/
scp /root/software/apache-zookeeper-3.5.7-bin/conf/zoo.cfg root@slave2:/root/software/apache-zookeeper-3.5.7-bin/conf/

✅ 4. master 解压 Hadoop 并配置安全参数(2 分)

① 解压

✅ 3. Hadoop 解压 + 安全参数配置(master 完成 → 分发)

① 解压

bash

复制

复制代码
tar -zxvf /root/software/package/hadoop-3.1.3.tar.gz -C /root/software/

② 创建数据目录(三台均做,可先 master 再分发)

bash

复制

复制代码
mkdir -p /root/software/hadoop-3.1.3/hadoopDatas/{namenodeDatas,datanodeDatas}

③ 追加 JAVA_HOME 到 hadoop-env.sh(master 做 → 分发)

bash

复制代码
echo "export JAVA_HOME=/root/software/jdk1.8.0_212" >> /root/software/hadoop-3.1.3/etc/hadoop/hadoop-env.sh

④ 配置安全版 core-site.xml

bash

复制代码
cat > /root/software/hadoop-3.1.3/etc/hadoop/core-site.xml <<'EOF'
<?xml version="1.0"?>
<configuration>
  <property>
    <name>hadoop.security.authorization</name>
    <value>true</value>
  </property>
  <property>
    <name>fs.defaultFS</name>
    <value>hdfs://master:9000</value>
  </property>
</configuration>
EOF

⑤ 安全版 hdfs-site.xml(含数据路径 + 权限 + 超级组)

bash

复制代码
cat > /root/software/hadoop-3.1.3/etc/hadoop/hdfs-site.xml <<'EOF'
<?xml version="1.0"?>
<configuration>
  <!-- 数据目录 -->
  <property>
    <name>dfs.namenode.name.dir</name>
    <value>/root/software/hadoop-3.1.3/hadoopDatas/namenodeDatas</value>
  </property>
  <property>
    <name>dfs.datanode.data.dir</name>
    <value>/root/software/hadoop-3.1.3/hadoopDatas/datanodeDatas</value>
  </property>

  <!-- 权限开关 -->
  <property>
    <name>dfs.permissions.enabled</name>
    <value>true</value>
  </property>
  <property>
    <name>dfs.permissions.superusergroup</name>
    <value>root</value>
  </property>
</configuration>
EOF

⑥ 安全版 yarn-site.xml(仅内网)

bash

复制代码
cat > /root/software/hadoop-3.1.3/etc/hadoop/yarn-site.xml <<'EOF'
<?xml version="1.0"?>
<configuration>
  <property>
    <name>yarn.resourcemanager.bind-host</name>
    <value>master</value>
  </property>
  <property>
    <name>yarn.resourcemanager.webapp.address</name>
    <value>0.0.0.0:0</value>
  </property>
  <property>
    <name>yarn.resourcemanager.webapp.https.address</name>
    <value>0.0.0.0:0</value>
  </property>
  <property>
    <name>yarn.nodemanager.webapp.address</name>
    <value>0.0.0.0:0</value>
  </property>
  <property>
    <name>yarn.nodemanager.webapp.https.address</name>
    <value>0.0.0.0:0</value>
  </property>
</configuration>
EOF

⑦ 替换 hadoop-policy.xml(题目附件)

bash

复制代码
cp /root/hadoop-policy.xml /root/software/hadoop-3.1.3/etc/hadoop/hadoop-policy.xml

⑧ workers 文件(3 台都是 datanode)

bash

复制代码
echo -e "master\nslave1\nslave2" > /root/software/hadoop-3.1.3/etc/hadoop/workers

⑨ 整个 hadoop 目录同步到 slave1、slave2

bash

复制代码
scp -r /root/software/hadoop-3.1.3 root@slave1:/root/software/
scp -r /root/software/hadoop-3.1.3 root@slave2:/root/software/

vim /etc/profile 只来 master

文件底部追加以下内容:

复制代码
export HADOOP_HOME=/root/software/hadoop-3.1.3
export HADOOP_CLASSPATH='hadoop classpath'
export PATH=$PATH:$HADOOP_HOME/bin:$HADOOP_HOME/sbin
export HDFS_NAMENODE_USER=root
export HDFS_DATANODE_USER=root
export HDFS_SECONDARYNAMENODE_USER=root
export YARN_RESOURCEMANAGER_USER=root
export YARN_NODEMANAGER_USER=root
export HDFS_JOURNALNODE_USER=root
export HDFS_ZKFC_USER=root

✅ 4. 初始化 & 启动(一次性)

① 格式化 namenode(仅 master)

bash

复制代码
hdfs namenode -format

② 启动脚本(master 一键)

bash

复制代码
start-dfs.sh
start-yarn.sh

完成以上 4 大步即 子任务二 5 分拿满 ,且三台均以内网 IP 通信、安全参数全部生效。

如需 Zookeeper 启动脚本HistoryServer 配置,再喊我!

子任务三:MySQL数据库安装配置(0 / 2分)

本任务需要使用root 用户完成相关配置,已安装Hadoop及需要配置前置环境,具体要求如下:
本模块对应虚拟机为:master
相关压缩包路径为: /root/software/package/****,对应安装路径为 /root/software/
数据库版本:MySQL 5.7.24 用户名:root ,密码:123456

考核条件如下 :

1.解压并安装MySQL 5.7.24,以mysql用户身份执行命令初始化数据库,启动MySQL服务; (0/ 1分)

(1)将MySQL 5.7.24安装包解压到/root/software目录下;(/root/software/package/mysql-5.7.24-1.el7.x86_64.rpm-bundle.tar)

(2)移除与MySQL冲突的MariaDB库,命令参考:yum remove -y mariadb-libs

使用rpm -ivh依次安装mysql-community-common、mysql-community-libs、mysql-community-libs-compat、mysql-community-client和mysql-community-server;

(3)在成功安装MySQL后,以mysql用户身份执行命令初始化数据库,生成生成空密码(命令参考如下),并启动MySQL服务(systemctl系统管理);

命令参考:/usr/sbin/mysqld --initialize-insecure --console --user=mysql

操作环境:master

2.修改root用户密码为123456,同时允许所有root用户可以从任何远程主机进行访问,刷新配置信息并生效;

(0/ 1分)

(1)使用root用户无密码登录MySQL,然后将root用户的密码修改为123456,修改完成退出MySQL,重新登录验证密码是否修改成功;

(2)为了允许MySQL用户远程登录,需要在"mysql"数据库的"user"表中更改用户的host项,将所有用户的localhost权限修改为允许任意远程主机访问;设置完成刷新配置信息,让其生效。

操作环境:master下面给出 子任务三:MySQL 5.7.24 安装配置完整命令步骤 ,全部在 master(101.200.150.180)root 用户 执行,路径与题目完全一致,可直接。


✅ 1. 解压并安装 MySQL 5.7.24(1 分)

① 进入目录并解压

bash

复制代码
mkdir -p /root/software
cd /root/software
tar -xf /root/software/package/mysql-5.7.24-1.el7.x86_64.rpm-bundle.tar
② 移除冲突包

bash

复制代码
yum remove -y mariadb-libs
③ 按顺序安装(必须严格顺序)

bash

复制代码
rpm -ivh mysql-community-common-5.7.24-1.el7.x86_64.rpm
rpm -ivh mysql-community-libs-5.7.24-1.el7.x86_64.rpm
rpm -ivh mysql-community-libs-compat-5.7.24-1.el7.x86_64.rpm
rpm -ivh mysql-community-client-5.7.24-1.el7.x86_64.rpm
rpm -ivh mysql-community-server-5.7.24-1.el7.x86_64.rpm
④ 初始化数据库(生成空密码,mysql 用户执行)

bash

复制代码
/usr/sbin/mysqld --initialize-insecure --console --user=mysql
⑤ 启动并设为开机自启

bash

复制代码
systemctl start mysqld
systemctl enable mysqld

✅ 2. 设置 root 密码 123456 并允许远程登录(1 分)

① 无密码登录并修改密码

bash

复制代码
mysql -uroot

在 MySQL 提示符下执行:

sql

复制代码
ALTER USER 'root'@'localhost' IDENTIFIED BY '123456';

退出验证:

sql

复制代码
exit

重新登录测试:

bash

复制代码
mysql -uroot -p123456
② 允许任意远程主机用 root 连接

再次进入 MySQL:

bash

复制代码
mysql -uroot -p123456

依次执行:

sql

复制代码
-- 切换库
USE mysql;

-- 查看当前 host 列表
SELECT User, Host FROM user;

-- 将所有 root 行的 host 改为 %
UPDATE user SET Host='%' WHERE User='root';

-- 刷新授权
FLUSH PRIVILEGES;

-- 退出
EXIT;
③ 关闭防火墙或放行 3306(一次性)

bash

复制代码
# 关闭防火墙(最简)
systemctl stop firewalld
systemctl disable firewalld

✅ 验证

  • 本机登录:mysql -uroot -p123456
  • 远程登录:在另一台机器(slave1/slave2 或本地 Navicat)执行
    mysql -h 101.200.150.180 -uroot -p123456
    能连即成功。

完成以上两步即满足子任务三全部得分点。

如需 一键脚本二进制包地址缺失 的解决办法,再喊我!

子任务四:Hive安装配置(0 / 5分)

本任务需要使用root 用户完成相关配置,已安装Hadoop及需要配置前置环境,具体要求如下:

考核条件如下 :

1.将 master 节点的/root/software/package目录下 apache-hive-3.1.2-bin.tar.gz 安装包解压到/root/software目录下

(0/ 1分)

将 master 节点的/root/software/package目录下 apache-hive-3.1.2-bin.tar.gz 安装包解压到/root/software目录下

操作环境:master

2.设置Hive环境变量,并使环境变量生效,执行命令hive --version查看版本号;

(0/ 2分)

设置Hive环境变量,并使环境变量生效,执行命令hive --version查看版本号;

操作环境:master

3.完成相关配置并添加所依赖包,将MySQL数据库作为Hive元数据库。初始化Hive元数据,并通过schematool相关命令执行初始化。 (0/ 2分)

对应依赖包:/root/software/mysql-connector-java-5.1.47-bin.jar

对应Hive依赖路径:/root/software/apache-hive-3.1.2-bin/lib

hive-site.xml配置中对应JDBC要求如下:

复制代码
<property>
<name>javax.jdo.option.ConnectionURL</name>
<value>jdbc:mysql://master:3306/hivedb?createDatabaseIfNotExist=true&amp;useSSL=false&amp;useUnicode=true&amp;characterEncoding=UTF-8</value>
</property>

格式化成功后,可在数据库中查看对应生成的hivedb数据库。

操作环境:master、master

子任务四:Hive 安装配置(5 分)

全部在 master(101.200.150.180)root 完成,路径与题目 100% 一致,可即执行。


✅ 1. 解压 Hive(1 分)

bash

复制代码
tar -zxvf /root/software/package/apache-hive-3.1.2-bin.tar.gz -C /root/software/

✅ 2. 环境变量 + 验证版本(2 分)

bash

复制代码
cat >> /etc/profile <<'EOF'
# >>> hive >>>
export HIVE_HOME=/root/software/apache-hive-3.1.2-bin
export PATH=$HIVE_HOME/bin:$PATH
EOF

source /etc/profile

验证:bash

复制代码
hive --version        # 应打印 3.1.2 信息

✅ 3. 配置 MySQL 作为元数据库(2 分)

① 拷贝驱动到依赖目录

bash

复制代码
cp /root/software/package/mysql-connector-java-5.1.47-bin.jar \
   /root/software/apache-hive-3.1.2-bin/lib/
② 生成 hive-site.xml(直接覆盖)

bash

复制代码
cat > /root/software/apache-hive-3.1.2-bin/conf/hive-site.xml <<'EOF'
<?xml version="1.0"?>
<configuration>
  <!-- JDBC 连接 -->
  <property>
    <name>javax.jdo.option.ConnectionURL</name>
    <value>jdbc:mysql://master:3306/hivedb?createDatabaseIfNotExist=true&amp;useSSL=false&amp;useUnicode=true&amp;characterEncoding=UTF-8</value>
  </property>

  <!-- JDBC 驱动 -->
  <property>
    <name>javax.jdo.option.ConnectionDriverName</name>
    <value>com.mysql.jdbc.Driver</value>
  </property>

  <!-- 连接账号密码 -->
  <property>
    <name>javax.jdo.option.ConnectionUserName</name>
    <value>root</value>
  </property>
  <property>
    <name>javax.jdo.option.ConnectionPassword</name>
    <value>123456</value>
  </property>

  <!-- 元数据存储前缀 -->
  <property>
    <name>hive.metastore.warehouse.dir</name>
    <value>/user/hive/warehouse</value>
  </property>
</configuration>
EOF
③ 初始化元数据库(自动创建 hivedb)

bash

复制代码
hdfs dfs -mkdir -p       /user/hive/warehouse
hdfs dfs -chmod 777      /user/hive/warehouse
hdfs dfs -mkdir -p       /tmp
hdfs dfs -chmod 777      /tmp

schematool -dbType mysql -initSchema --verbose
④ 验证

bash

复制代码
mysql -uroot -p123456 -e "SHOW DATABASES LIKE 'hivedb';"
# 应看到 hivedb

子任务五:Spark安装部署0 / 5分)

本任务需要使用root 用户完成相关配置,已安装Hadoop及需要配置前置环境,具体要求如下:

考核条件如下 :

1.将master中的/root/software/package目录下 spark-3.1.1-bin-hadoop3.2.tgz 安装包解压到/root/software路径中;

(0/ 2分)

将master中的/root/software/package目录下 spark-3.1.1-bin-hadoop3.2.tgz 安装包解压到/root/software路径中;

操作环境:master

2.修改/etc/profile文件,设置Spark环境变量并使环境变量生效,运行命令`spark-submit --version`查看版本号。

(0/ 3分)

配置文件角色参考如下:

|--------|--------|
| 主机 | 角色 |
| master | Master |
| slave1 | Worker |
| slave2 | Worker |

操作环境:master

下面给出 子任务五:Spark 安装部署 的完整命令步骤,全部在 master(101.200.150.180)root 用户执行,可直接。


✅ 1. 解压 Spark(2 分)

bash

复制代码
tar -zxvf /root/software/package/spark-3.1.1-bin-hadoop3.2.tgz -C /root/software/

✅ 2. 配置环境变量并验证版本(3 分)

① 追加到 /etc/profile(三台机器都要,先 master 再分发)

bash

复制代码
cat >> /etc/profile <<'EOF'
# >>> spark >>>
export SPARK_HOME=/root/software/spark-3.1.1-bin-hadoop3.2
export PATH=$SPARK_HOME/bin:$SPARK_HOME/sbin:$PATH
EOF

立即生效:

bash

复制代码
source /etc/profile

验证版本:

bash

复制代码
spark-submit --version
# 应出现 Spark 3.1.1 built for Hadoop 3.2 字样
② 将相同目录同步到 slave1、slave2(含环境变量)

bash

复制代码
# 分发安装目录
scp -r /root/software/spark-3.1.1-bin-hadoop3.2 root@slave1:/root/software/
scp -r /root/software/spark-3.1.1-bin-hadoop3.2 root@slave2:/root/software/

# 分发 profile(如已统一配置可跳过)
scp /etc/profile root@slave1:/etc/
scp /etc/profile root@slave2:/etc/

在 slave1、slave2 执行:

bash

复制代码
source /etc/profile

✅ 3. 角色配置(Master + 2 Workers)

① 进入配置目录

bash

复制代码
cd /root/software/spark-3.1.1-bin-hadoop3.2/conf
② 指定 Master 主机名

bash

复制代码
echo "master" > slaves        # 该文件列出所有 Worker 节点

echo "slave1" > slaves   
echo "slave2" >> slaves  
③ 极简 spark-env.sh(先拷贝模板)

bash

复制代码
cp spark-env.sh.template spark-env.sh
cat >> spark-env.sh <<'EOF'
export JAVA_HOME=/root/software/jdk1.8.0_212
export HADOOP_CONF_DIR=/root/software/hadoop-3.1.3/etc/hadoop
export SPARK_MASTER_HOST=master
export SPARK_MASTER_PORT=7077
EOF
④ 分发相同配置到 slave1、slave2

bash

复制代码
scp -r /root/software/spark-3.1.1-bin-hadoop3.2/conf root@slave1:/root/software/spark-3.1.1-bin-hadoop3.2/
scp -r /root/software/spark-3.1.1-bin-hadoop3.2/conf root@slave2:/root/software/spark-3.1.1-bin-hadoop3.2/

✅ 4. 启动集群(master 上执行)

bash

复制代码
# 启动 Master 与所有 Workers
start-master.sh
start-slaves.sh

✅ 5. 验证

  • Web UI
    浏览器访问 http://master:8080 应能看到:
    Alive Workers: 2(slave1、slave2)

  • 命令行bash

    spark-submit --version # 三台都能打印 3.1.1
    jps # master 出现 Master;slave1/2 出现 Worker

原因

Hadoop 3.x 的启动脚本默认 禁止 root 用户直接启动 各守护进程,必须显式声明环境变量 HDFS_*_USERYARN_*_USER 才允许继续。

解决思路(二选一)

  1. 新建一个普通用户(推荐生产环境)
  2. 继续用 root,但在启动前 export 对应变量(实验环境最快,下面给出)

✅ 实验环境快速修复(root 继续用)

master 执行一次即可(可写进 /etc/profile.d/hadoop-env.sh 永久生效):

bash

复制

复制代码
export HDFS_NAMENODE_USER=root
export HDFS_DATANODE_USER=root
export HDFS_SECONDARYNAMENODE_USER=root
export YARN_RESOURCEMANAGER_USER=root
export YARN_NODEMANAGER_USER=root

立即生效:

bash

复制

复制代码
source /etc/profile.d/hadoop-env.sh

再启动:

bash

复制

复制代码
start-dfs.sh
start-yarn.sh

如无其他错误,jps 应能看到 NameNode/DataNode/ResourceManager 等进程。


✅ 生产环境建议(可选)

bash

复制

复制代码
# 创建专用用户
useradd -m hadoop
echo hadoop | passwd --stdin hadoop
visudo

添加:

hadoop ALL=(ALL) NOPASSWD:ALL

以后把 $HADOOP_HOME 目录 chown -R hadoop:hadoop /root/software/hadoop-3.1.3, 切换到 hadoop 用户再启动即可,无需再定义上述变量。

复制代码
echo "export JAVA_HOME=/root/software/jdk1.8.0_212" >> /root/software/hadoop-3.1.3/etc/hadoop/hadoop-env.sh
相关推荐
靠沿4 小时前
Java数据结构初阶——LinkedList
java·开发语言·数据结构
qq_12498707534 小时前
基于springboot的建筑业数据管理系统的设计与实现(源码+论文+部署+安装)
java·spring boot·后端·毕业设计
一 乐4 小时前
宠物管理|宠物共享|基于Java+vue的宠物共享管理系统(源码+数据库+文档)
java·数据库·vue.js·spring boot·springboot·宠物
a crazy day4 小时前
Spring相关知识点【详细版】
java·spring·rpc
little_xianzhong4 小时前
把一个本地项目导入gitee创建的仓库中
大数据·elasticsearch·gitee
白露与泡影5 小时前
MySQL中的12个良好SQL编写习惯
java·数据库·面试
foundbug9995 小时前
配置Spring框架以连接SQL Server数据库
java·数据库·spring
凯酱5 小时前
@JsonSerialize
java
悦悦子a啊5 小时前
项目案例作业(选做):使用文件改造已有信息系统
java·开发语言·算法
lkbhua莱克瓦245 小时前
Java项目——斗地主小游戏(控制台版)
java·开发语言·windows·斗地主项目