职业院校技能大赛 大数据应用与服务交流群:q743959419
目录
职业院校技能大赛 大数据应用与服务交流群:q743959419
-
模块一:平台搭建与运维
(一)任务一:大数据平台搭建
-
子任务一:Hadoop 完全分布式安装配置
本任务需要使用 root 用户完成相关配置。打开竞赛平台的赛题资源的容器资源,利用智联助手的SSH集成窗口打开容器,基于竞赛平台进行完全分布式模式Hadoop的搭建和管理。相关安装文件在容器“/opt”目录下,请选择对应的安装包进行安装,用不到的可忽略。主机名为master、slave1、slave2的三台节点都需要安装JDK和Hadoop。
- 在master节点执行命令,创建jdk安装目录“/data/jdk”和Hadoop安装目录“/data/hadoop”,执行ls命令查看创建的目录。提交创建目录的命令和查看的结果截图;
创建目录的命令:
mkdir /data/jdk –p
mkdir /data/hadoop –p
查看的结果截图:
- 在master节点执行tar命令(请确保在解压缩文件时,不要保留原始文件路径中的第一个目录层级),将节点中“/opt”目录下jdk安装文件解压到节点中的“/data/jdk”目录,将Hadoop安装文件解压到节点中的“/data/hadoop”目录,执行ls命令分别查看解压后的文件。提交解压命令和查看的结果截图;
解压命令:
tar -zxf /opt/jdk-8u181-linux-x64.tar.gz --strip-components 1 -C /data/jdk/
tar -zxf /opt/hadoop-3.1.3.tar.gz --strip-components 1 -C /data/hadoop/
查看的结果截图:
- 在三台节点分别修改“/etc/hosts”配置,添加三台节点ip和主机名映射;配置 ssh 免密,实现master、slave1、slave2三台节点间相互免密登录,在master节点执行“ssh slave1”命令和在slave2节点执行“ssh master”命令验证。提交“/etc/hosts”配置截图、在master执行的免密命令和执行结果截图、验证命令的结果截图;
“/etc/hosts”配置截图:
master执行的免密命令:
ssh-keygen -t rsa
ssh-copy-id master
ssh-copy-id slave1
ssh-copy-id slave2
免密命令执行结果截图:
验证命令的结果截图:
- 在master节点使用scp命令并使用绝对路径将jdk目录拷贝到slave1和slave2(若路径不存在,则需新建),并在三台节点的“/etc/profile”文件中配置jdk环境变量并使其生效,配置完毕后,在节点中执行“java -version”命令,检测jdk是否安装成功。提交scp命令、环境变量截图和使环境变量生效命令、检测命令结果截图;
scp命令:
scp -r /data/jdk/ slave1:/data/jdk/ &
scp -r /data/jdk/ slave2:/data/jdk/ &
环境变量截图:
环境变量生效命令:
source /etc/profile
检测命令结果截图:
- 依次配置hadoop-env.sh、core-site.xml、workers配置文件,其中NameNode的地址为master节点,端口为9000,master、slave1、slave2节点均作为DataNode,配置好相关环境。在master节点使用scp命令将配置完的Hadoop安装目录直接拷贝至slave1和slave2(若路径不存在,则需新建),在三台节点的“/etc/profile”文件中配置Hadoop环境变量,配置完毕后,在容器中执行“hadoop version”命令,检测Hadoop是否安装成功。提交修改的配置内容截图、scp命令、环境变量截图、检测命令结果截图;
修改的配置内容截图:
scp命令:
scp -r /data/hadoop/ slave1:/data/hadoop/ &
scp -r /data/hadoop/ slave2:/data/hadoop/ &
环境变量截图:
检测命令结果截图:
- 在master节点初始化Hadoop环境namenode。提交初始化命令和结果截图;
初始化命令:
hdfs namenode –format
结果截图:
- 在master节点依次启动HDFS、YARN集群,在三个节点分别执行jps命令,查看节点中的进程。提交jps查看结果截图;
jps查看结果截图:
将上述任务的命令和结果截图提交到竞赛平台的赛题结果上传中对应的任务序号下。
-
子任务二:Flume安装配置
本任务需要使用root用户完成相关配置,已安装Hadoop
及需要配置前置环境,具体要求如下:
- 在?节点中执行命令,创建Flume安装目录“/data/flume”,执行ls命令查看创建的目录。提交创建目录命令、查看命令和结果截图;
创建目录命令:
mkdir /data/flume -p
查看命令:
ls /data/
结果截图;
- 在节点中执行tar命令(请确保在解压缩文件时,不要保留原始文件路径中的第一个目录层级),将“/opt”目录下Flume安装文件解压到节点中的“/data/flume”目录,在“/etc/profile”文件中配置Flume环境变量FLUME_HOME和PATH的值并使其生效,执行命令“flume-ng version”检测Flume是否安装成功。提交解压命令、环境变量截图、检测命令结果截图;
解压命令:
tar -zxf /opt/apache-flume-1.9.0-bin.tar.gz --strip-components 1 -C /data/flume/
环境变量截图:
检测命令结果截图
- 进入$FLUME_HOME/conf目录下,使用cp命令将flume-env.sh.template文件复制一份,并重命名为flume-env.sh;在$FLUME_HOME目录下新建一份test.txt文件,在文件中输入内容“这是一份flume的测试文档”,在$FLUME_HOME/conf目录下新建file-flume-hdfs.conf,配置flume将test.txt传输到HDFS的“/tmp/flume”目录下,运行Flume并查看HDFS中“/tmp/flume”目录下生成的内容。提交cp命令、file-flume-hdfs.conf配置内容截图、运行Flume的命令、查看HDFS目录中文件的内容的命令和结果截图;
cp命令:
cp flume-env.sh.template flume-env.sh
file-flume-hdfs.conf配置内容截图:
运行Flume的命令:
flume-ng agent -n a1 -c conf/ -f conf/file-flume-hdfs.conf
查看HDFS目录中文件的内容的命令:
hdfs dfs -cat /tmp/flume/FlumeData.1709549831479
查看HDFS目录中文件的内容的命令的结果截图:
将上述任务的命令和结果截图提交到竞赛平台的赛题结果上传中对应的任务序号下。
(二)任务二:数据库配置维护
-
子任务一:数据库配置
打开竞赛平台的赛题资源的数据库资源,利用智联助手的SSH集成窗口打开master节点,基于竞赛平台进行MySQL的搭建和管理。具体要求如下:
- 在赛题资源的数据库资源对应的ip的节点中执行命令,创建MySQL安装目录“/data/mysql”;执行tar命令,将容器中“/opt”目录下Mysql安装文件解压到“/data/mysql”目录,执行ls命令查看解压后的文件。提交tar命令和ls结果截图;
tar命令:
tar -zxf /opt/mysql-5.7.37-el7-x86_64.tar.gz --strip-components 1 -C /data/mysql/
ls结果截图:
- 安装好MySQL后,对数据库进行初始化,将$MYSQL/bin目录下的mysql脚本创建软链到/usr/bin目录,在/etc/systemd/system目录中配置mysql.service,配置开机自启动并启动数据库。提交初始化命令、创建软链命令、mysql.service配置内容截图、配置自启动命令、启动数据库结果截图;
初始化命令:
/data/mysql/bin/mysqld --initialize-insecure --basedir=/data/mysql --datadir=/data/mysql/data --user=mysql
创建软链命令:
ln -s /data/mysql/bin/mysql /usr/bin/
mysql.service配置内容截图:
配置自启动命令:
systemctl enable mysql
启动数据库结果截图:
(3)使用root用户和密码登录MySQL,然后将root用户的密码修改为赛题资源的数据库资源的密码,配置授予root用户在任何主机('%')上连接时对所有数据库(*.*)的全部权限,并允许该用户授予权限给其他用户,配置完刷新权限。提交修改密码sql语句和结果截图、配置授予权限sql语句和结果截图;
alter user 'root'@'localhost' identified by '3dF8vS2l';
grant all privileges on *.* to 'root'@'%' with grant option;
(4)连接数据库,先用sql创建一个“exam”数据库(字符集设置utf8mb4),再创建一个“test”新用户,密码与root密码一致,将“exam”数据库权限授予“test”用户,刷新权限后用“test”账号登录数据库,执行“show databases;”命令查看数据库。提交创库sql语句、建用户语句、授权语句、“show databases;”的结果截图;
create database exam DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci
create user 'test'@'%' identified by '3dF8vS2l';
grant all privileges on exam.* to 'test'@'%';
(5)将“test”用户删除。提交删除语句;
将上述任务的命令和结果截图提交到竞赛平台的赛题结果上传中对应的任务序号下。
-
子任务二:数据库表维护
打开竞赛平台的赛题资源的数据库资源,利用智联助手的数据库工具打开“exam”数据库,基于竞赛平台进行MySQL的数据库表维护。
(1)在MySQL数据库的“exam”数据库中创建“athlete_events”数据表。数据表的表字段格式如下:
表1“athlete_events”的表字段结构
字段 | 类型 | 注释 |
Name | varchar | 名称 |
Sex | varchar | 性别 |
Age | int | 年龄 |
Height | int | 身高 |
Weight | int | 体重 |
Games | varchar | 赛事 |
City | varchar | 城市 |
Event | varchar | 比赛项目 |
Medal | varchar | 奖牌 |
提交建表sql语句和结果截图;
CREATE TABLE athlete_events (
Name VARCHAR(255) COMMENT '名称',
Sex VARCHAR(10) COMMENT '性别',
Age INT COMMENT '年龄',
Height INT COMMENT '身高',
Weight INT COMMENT '体重',
Games VARCHAR(255) COMMENT '赛事',
City VARCHAR(255) COMMENT '城市',
Event VARCHAR(255) COMMENT '比赛项目',
Medal VARCHAR(50) COMMENT '奖牌'
);
(2)为“athlete_events”表添加数据记录。记录如下:
Name | Sex | Age | Height | Weight | Games | City | Event | Medal |
Cao Yuan | M | 21 | 160 | 42 | 2016 Summer | Rio de Janeiro | Diving Men's Springboard | Gold |
Chen Aisen | M | 20 | 168 | 60 | 2016 Summer | Rio de Janeiro | Diving Men's Platform | Gold |
Chen Long | M | 27 | 188 | 81 | 2016 Summer | Rio de Janeiro | Badminton Men's Singles | Gold |
Chen Peina | F | 27 | 172 | 63 | 2016 Summer | Rio de Janeiro | Sailing Women's Windsurfer | Silver |
Chen Dequan | M | 18 | 176 | 66 | 2014 Winter | Sochi | Short Track Speed Skating Men's 5,000 metres Relay | Bronze |
Jia Zongyang | M | 22 | 175 | 70 | 2014 Winter | Sochi | Freestyle Skiing Men's Aerials | Bronze |
Cai Yun | M | 32 | 181 | 68 | 2012 Summer | London | Badminton Men's Doubles | Gold |
Zou Kai | M | 24 | 158 | 55 | 2012 Summer | London | Gymnastics Men's Team All-Around | Gold |
Zhou Lulu | F | 24 | 175 | 133 | 2012 Summer | London | Weightlifting Women's Super-Heavyweight | Gold |
Zhang Jike | M | 24 | 178 | 70 | 2012 Summer | London | Table Tennis Men's Singles | Gold |
Guo Xinxin | F | 26 | 157 | 60 | 2010 Winter | Vancouver | Freestyle Skiing Women's Aerials | Bronze |
Li Nina | F | 27 | 160 | 52 | 2010 Winter | Vancouver | Freestyle Skiing Women's Aerials | Silver |
Bao Yingying | F | 24 | 172 | 67 | 2008 Summer | Beijing | Fencing Women's Sabre, Team | Silver |
Feng Kun | F | 29 | 183 | 75 | 2008 Summer | Beijing | Volleyball Women's Volleyball | Bronze |
Han Xiaopeng | M | 22 | 173 | 75 | 2006 Winter | Torino | Freestyle Skiing Men's Aerials | Gold |
Chen Jing | F | 28 | 182 | 75 | 2004 Summer | Athina | Volleyball Women's Volleyball | Gold |
Chen Zhong | F | 21 | 183 | 73 | 2004 Summer | Athina | Taekwondo Women's Heavyweight | Gold |
Zhao Hongbo | M | 28 | 177 | 75 | 2002 Winter | Salt Lake City | Figure Skating Mixed Pairs | Bronze |
Cai Yalin | M | 23 | 174 | 60 | 2000 Summer | Sydney | Shooting Men's Air Rifle, 10 metres | Gold |
Chen Xiaomin | F | 23 | 158 | 63 | 2000 Summer | Sydney | Weightlifting Women's Middleweight | Gold |
Chen Lu | F | 21 | 162 | 52 | 1998 Winter | Nagano | Figure Skating Women's Singles | Bronze |
He Qi | F | 22 | 178 | 68 | 1996 Summer | Atlanta | Volleyball Women's Volleyball | Silver |
Lu Lin | M | 27 | 174 | 60 | 1996 Summer | Atlanta | Table Tennis Men's Doubles | Silver |
Li Xiaoshuang | M | 22 | 157 | 52 | 1996 Summer | Atlanta | Gymnastics Men's Individual All-Around | Gold |
Ye Qiaobo | F | 29 | 168 | 70 | 1994 Winter | Lillehammer | Speed Skating Women's 1,000 metres | Bronze |
提交第一条数据的插入sql语句及所有数据添加结果截图;
insert into athlete_events values
('Cao Yuan','M',21,160,42,'2016 Summer','Rio de Janeiro',"Diving Men's Springboard",'Gold')
- 新增“Year”字段(int),注释为“年份”,将“Games”字段中的年份数字提取到“Year”字段,并查询“Year”在2001年到2009年之间的数据。提交新增字段sql和结果截图、提取年份sql、查询的sql和结果截图;
alter table athlete_events
add Year int;
UPDATE athlete_events
SET Year = CAST(REGEXP_SUBSTR(Games, '[0-9]+') AS UNSIGNED)
WHERE Year IS NULL OR Year <> CAST(REGEXP_SUBSTR(Games, '[0-9]+') AS UNSIGNED);
将上述任务的命令和结果截图提交到竞赛平台的赛题结果上传中对应的任务序号下。
子任务三:数据表查询
(1)筛选出比赛项目为“Volleyball Women's Volleyball”且身高大于“180”的数据,并按照年份“Year”进行升序排序。提交sql和结果截图;
select * from athlete_events ae
where Event = "Volleyball Women's Volleyball"
and Height > 180
order by `Year` asc;
- 查询2016年参赛人员年龄、身高和体重各自的最大值、最小值和平均值。提交sql和结果截图;
select
max(Age),
min(Age),
avg(Age),
max(Height),
min(Height),
avg(Height),
max(Weight),
min(Weight),
avg(Weight)
from athlete_events ae where 2016;
- 按年份分组查询每年参赛人员的男女人数各多少。提交sql和结果截图;
SELECT
Year,
Sex,
COUNT(*) AS renshu
FROM
athlete_events
GROUP BY
Year,
Sex
将上述任务的命令和结果截图提交到竞赛平台的赛题结果上传中对应的任务序号下。