2024年全国职业院校技能大赛中职组大数据应用与服务赛项题库参考答案陆续更新中,敬请期待…
武汉唯众智创科技有限公司
2024 年 3 月
联系人:辜渝傧13037102709
题号:试题04
ZZ052-大数据应用与服务赛选赛题04
模块一:平台搭建与运维
任务一:大数据平台搭建
1.子任务一: Hadoop 完全分布式安装配置
本任务需要使用root用户完成相关配置,安装Hadoop需要配置前置环境。命令中要求使用绝对路径,具体要求如下:
(1)从Master中的/opt/software目录下将文件hadoop3.1.3.tar.gz、jdk-8u191-linux-x64.tar.gz安装包解压到/opt/module路径中(若路径不存在,则需新建),将JDK解压命令复制并粘贴至客户端桌面【Release\提交结果.docx】中对应的任务序号下;
答:
tar zxvf jdk-8u202-linux-x64.tar.gz -C /root/software
(2)修改Master中/etc/profile文件,设置JDK环境变量并使其生效,配置完毕后在Master节点分别执行“iava-version”和“javac”命令,将命令行执行结果分别截图并粘贴至客户端桌面【Release\提交结果.docx】中对应的任务序号下;
答:
vi /etc/profile
在文件最底部添加如下内容
export JAVA_HOME=/root/software/jdk1.8.0
export PATH=$PATH:$JAVA_HOME/bin
export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
添加完成后保存。执行source /etc/profile命令。
(3)请完成host相关配置,将三个节点分别命名为 master、slave1、slave2,并做免密登录,用scp命令并使用 绝对路径从Master复制JDK解压后的安装文件到slave1、slave2节点(若路径不存在,则需新建),并配置slave1、 slave2相关环境变量,将全部scp复制JDK的命令复制并粘贴至客户端桌面【Release\提交结果.docx】中对应的任务序号下;
答:
host相关配置:
hostnamectl set-hostname master
hostnamectl set-hostname slave1
hostnamectl set-hostname slave2
(1)在master上生成SSH密钥对
执行ssh-keygen -t rsa,一直回车即可
(2)将master上的公钥拷贝到slave1和slave2上;
ssh-copy-id slave1
根据提示输入yes以及目标主机密码即可,slave2同理。
在 master 上通过 SSH 连接 slave1 和 slave2 来验证。
ssh slave1
执行上述命令后无需输入密码即可直接连接到slave1表示成功,slave2同理。
vi /etc/profile
在文件最底部添加如下内容
export JAVA_HOME=/root/software/jdk1.8.0
export PATH=$PATH:$JAVA_HOME/bin
export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
添加完成后保存。执行source /etc/profile命令。
(4)在Master将Hadoop解压到/opt/module(若路径不存 在,则需新建)目录下,并将解压包分发至slave1、slave2中 ,其中master、slave1、slave2节点均作为datanode,配置好相关环境,初始化Hadoop环境namenode,将初始化命令及初始化结果截图(截取初始化结果日志最后20行即可)粘 贴至客户端桌面【Release\提交结果.docx】中对应的任务序号下。
答:
(1)在 主 节 点 将 Hadoop 安 装 包 解 压 到/root/software目录下
tar zxvf hadoop-3.2.1.tar.gz -C /root/software/
(2)依次配置hadoop-env.sh、core-site.xml、hdfs-site.xml、mapred-site.xml、yarn-site.xml和workers配置文件
hadoop-env.sh:
export JAVA_HOME=/root/software/jdk1.8.0
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
core-site.xml:
<!-- 在configuration标签内添加以下内容 -->
<property>
<name>fs.defaultFS</name>
<value>hdfs://master:9000</value>
</property>
<!-- 临时文件存放位置 -->
<property>
<name>hadoop.tmp.dir</name>
<value>/root/software/hadoop-3.2.1/hadoopDatas/tempDatas</value>
</property>
hdfs-site.xml:
<!-- 在configuration标签内添加以下内容 -->
<!-- 设置副本数量 -->
<property>
<name>dfs.replication</name>
<value>2</value>
</property>
<!-- namenode存放的位置,老版本是用dfs.name.dir -->
<property>
<name>dfs.namenode.name.dir</name>
<value>/root/software/hadoop-3.2.1/hadoopDatas/namenodeDatas</value>
</property>
<!-- datanode存放的位置,老版本是dfs.data.dir -->
<property>
<name>dfs.datanode.data.dir</name>
<value>/root/software/hadoop-3.2.1/hadoopDatas/datanodeDatas/</value>
</property>
<!-- 关闭文件上传权限检查 -->
<property>
<name>dfs.permissions.enalbed</name>
<value>false</value>
</property>
<!-- namenode运行在哪儿节点,默认是0.0.0.0:9870,在hadoop3.x中端口从原先的50070改为了9870 -->
<property>
<name>dfs.namenode.http-address</name>
<value>master:9870</value>
</property>
<!-- secondarynamenode运行在哪个节点,默认0.0.0.0:9868 -->
<property>
<name>dfs.namenode.secondary.http-address</name>
<value>master:9868</value>
</property>
mapred-site.xml:
<!-- 在configuration标签内添加以下内容 -->
<!-- 设置mapreduce在yarn平台上运行 -->
<property>
<name>mapreduce.framework.name</name>
<value>yarn</value>
</property>
<!-- 配了上面这个下面这个也得配, 不然跑mapreduce会找不到主类。MR应用程序的CLASSPATH-->
<property>
<name>mapreduce.application.classpath</name>
<value>/root/software/hadoop-3.2.1/share/hadoop/mapreduce/*:/root/software/hadoop-3.2.1/share/hadoop/mapreduce/lib/*</value>
</property>
<!-- 历史服务器端地址 -->
<property>
<name>mapreduce.jobhistory.address</name>
<value>master:10020</value>
</property>
<!-- 历史服务器web端地址 -->
<property>
<name>mapreduce.jobhistory.webapp.address</name>
<value>master:19888</value>
</property>
yarn-site.xml:
<!-- 在configuration标签内添加以下内容 -->
<!-- resourcemanager运行在哪个节点 -->
<property>
<name>yarn.resourcemanager.hostname</name>
<value>master</value>
</property>
<!-- nodemanager获取数据的方式 -->
<property>
<name>yarn.nodemanager.aux-services</name>
<value>mapreduce_shuffle</value>
</property>
<!-- 关闭虚拟内存检查 -->
<property>
<name>yarn.nodemanager.vmem-check-enabled</name>
<value>false</value>
</property>
workers:
# 删掉里面的localhost,添加以下内容
master
slave1
slave2
(3)在master节点的Hadoop安装目录下依次创建hadoopDatas/tempDatas 、 hadoopDatas/namenodeDatas 、hadoopDatas/datanodeDatas、hadoopDatas/dfs/nn/edits、hadoopDatas/dfs/snn/name 和hadoopDatas/dfs/nn/snn/edits目录
进入hadoop安装目录下执行下面命令:
mkdir -p hadoopDatas/tempDatas
mkdir -p hadoopDatas/namenodeDatas
mkdir -p hadoopDatas/datanodeDatas
mkdir -p hadoopDatas/dfs/nn/edit
mkdir -p hadoopDatas/dfs/snn/name
mkdir -p hadoopDatas/dfs/nn/snn/edits
(4)在master节点上使用scp命令将配置完的Hadoop安装目录直接拷贝至slave1和slave2
scp -r /root/software/hadoop-3.2.1 root@slave1:/root/software/
scp -r /root/software/hadoop-3.2.1 root@slave2:/root/software/
(5)三台节点的“/etc/profile”文件中配置Hadoop环境变量HADOOP_HOME和PATH的值,并让配置文件立即生效;
vi /etc/profile
export HADOOP_HOME=/root/software/hadoop-3.2.1
export PATH=$PATH:$HADOOP_HOME/bin:$HADOOP_HOME/sbin
source /etc/profile
(6)在主节点格式化集群
hdfs namenode -format
(5)启动Hadoop集群(包括hdfs和yarn),使用jps命 令查看Master节点与slave1节点的Java进程,将jps命令与结 果截图粘贴至客户端桌面【Release\提交结果.docx】中对应 的任务序号下。
答:
start-all.sh
2.子任务二: Flume安装配置
本任务需要使用root用户完成相关配置,已安装Hadoop及需要配置前置环境,具体要求如下:
(1)从Master中的/opt/software目录下将文件apache-flume-1.9.0-bin.tar.gz解压到/opt/module目录下,将解压命令复制并粘贴至客户端桌面【Release\提交结果.docx】中对应的任务序号下;
答:
tar zxvf apache-flume-1.11.0-bin.tar.gz -C /root/software/
(2)完善相关配置设置,配置Flume环境变量,并使环境变量生效,执行命令flume-ng version并将命令与结果截图粘贴至客户端桌面【Release\提交结果.docx】中对应的任 务序号下;
答:
(1)环境变量
vim /etc/profile
export FLUME_HOME=/root/software/apache-flume-1.11.0-bin
export PATH=$PATH:$FLUME_HOME/bin
source /etc/profile
(2)文件复制与配置
cd /root/software/apache-flume-1.11.0-bin/conf
cp flume-env.sh.template flume-env.sh
vim flume-env.sh
export JAVA_HOME=/usr/local/jdk1.8.0
(4)查看Flume版本
flume-ng version
(3)启动Flume传输Hadoop日志(namenode或datanode 日志),查看HDFS中/tmp/flume目录下生成的内容,将查 看命令及结果(至少5条结果)截图粘贴至客户端桌面【 Release\提交结果.docx】中对应的任务序号下。
答:
Flume传输Hadoop日志:
vim conf/flume-conf-hdfs.properties,内容如下:
# Define agent name
a1.sources = r1
a1.sinks = k1
a1.channels = c1
# Describe/configure the source
a1.sources.r1.type = exec
a1.sources.r1.command = tail -F /root/software/hadoop-3.2.1/logs/hadoop-root-datanode-master.log
# Describe the sink
a1.sinks.k1.hdfs.useLocalTimeStamp=true
a1.sinks.k1.type = hdfs
a1.sinks.k1.hdfs.path = hdfs://60.0.0.5:9000/tmp/flume/%Y%m%d%H%M%S.log
a1.sinks.k1.hdfs.use_header = true
a1.sinks.k1.hdfs.header_key = host
# Define the memory channel
a1.channels.c1.type = memory
a1.channels.c1.capacity = 10000
# Bind the source and sink to the channel
a1.sources.r1.channels = c1
a1.sinks.k1.channel = c1
启动:./flume-ng agent -c conf -n a1 -f ../conf/flume-conf-hdfs.properties -Dflume.root.logger=INFO,console
3.子任务三: Flink on Yarn安装配置
本任务需要使用root用户完成相关配置,已安装Hadoop 及需要配置前置环境,具体要求如下:
(1)从Master中的/opt/software目录下将文件flink- 1.14.0-bin-scala_2.12.tgz解压到路径/opt/module中(若路径不存在,则需新建),将完整解压命令复制粘贴至客户端桌面 【Release\提交结果.docx】中对应的任务序号下;
答:
tar zxf flink-1.14.0-bin-scala_2.12.tgz -C /root/software/
(2)修改容器中/etc/profile文件,设置Flink环境变量并使环境变量生效。在容器中/opt目录下运行命令flink – version,将命令与结果截图粘贴至客户端桌面【Release\提 交结果.docx】中对应的任务序号下;
答:
export HADOOP_CONF_DIR=${HADOOP_HOME}/etc/hadoop
export HADOOP_CLASSPATH=`hadoop classpath`
export FLINK_HOME=/root/software/flink-1.14.0
export PATH=$PATH:$FLINK_HOME/bin
(3)开启Hadoop集群,在yarn上以per job模式(即Job分离模式,不采用Session模式)运行 $FLINK_HOME/examples/batch/WordCount.jar,将运行结果最后10行截图粘贴至客户端桌面【Release\提交结果.docx】中对应的任务序号下。
示例 :
答:
flink run -m yarn-cluster -p 2 -yjm 2G -ytm 2G
$FLINK_HOME/examples/batch/WordCount.jar
任务二:数据库配置维护
1.子任务一:数据库配置
(1)配置服务端MySQL数据库的远程连接。
在mysql命令行执行下面命令即可远程登录
答:
use mysql
update user set host = '%' where user = 'root';
(2)初始化MySQL数据库系统,将完整命令及初始化 成功的截图复制粘贴至客户端桌面【Release\提交结果.docx 】中对应的任务序号下。
答:
mysqld --initialize
(3)配置root用户允许任意ip连接,将完整命令截图复 制粘贴至客户端桌面【Release\提交结果.docx】中对应的任务序号下
答:
GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY '123456' WITH GRANT OPTION;
flush privileges;
(4)通过root用户登录MySQL数据库系统,查看mysql 库下的所有表,将完整命令及执行命令后的结果的截图复 制粘贴至客户端桌面【Release\提交结果.docx】中对应的任 务序号下。
答:
use mysql;
show tables;
(5)输入命令以创建新的用户。完整命令及执行命令 后的结果的截图复制粘贴至客户端桌面【Release\提交结果 .docx】中对应的任务序号下。
答:
CREATE USER 'newuser'@'%' IDENTIFIED BY 'Aa123456!@#
';
6)授予新用户访问数据的权限。完整命令及执行命 令后的结果的截图复制粘贴至客户端桌面【Release\提交结 果.docx】中对应的任务序号下。
答:
GRANT ALL PRIVILEGES ON *.* TO 'newuser'@'%';
(7)刷新权限。完整命令及执行命令后的结果的截图 复制粘贴至客户端桌面【Release\提交结果.docx】中对应的 任务序号下。
答:
FLUSH PRIVILEGES;
2.子任务二:创建相关表
(1)根据以下数据字段在MySQL数据库中创建酒店表
(hotel)。酒店表字段如下:
答:
CREATE TABLE `hotel_all` (
`id` int(10) NOT NULL AUTO_INCREMENT COMMENT '酒店编号',
`hotel_name` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '酒店名称',
`city` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '城市',
`province` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '省份',
`level` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '星级',
`room_num` int(10) NULL DEFAULT NULL COMMENT '房间数',
`score` double NOT NULL COMMENT '评分',
`shopping` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '商圈',
PRIMARY KEY (`id`) USING BTREE
) ENGINE = InnoDB AUTO_INCREMENT = 39 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci ROW_FORMAT = Dynamic;
(2)根据以下数据字段在MySQL数据库中创建评论表
(comment)。评论表字段如下:
将这两个SQL建表语句分别截图复制粘贴至客户端桌面【Release\提交结果.docx】中对应的任务序号下。
答:
CREATE TABLE `comment_all` (
`id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '编号',
`hotel_name` varchar(20) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '酒店名称',
`content` text CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL COMMENT '评论信息',
`commentator` varchar(20) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '评论人',
`comment_time` datetime NULL DEFAULT NULL COMMENT '评论日期',
`score` double NULL DEFAULT NULL COMMENT '评分',
PRIMARY KEY (`id`) USING BTREE
) ENGINE = InnoDB AUTO_INCREMENT = 994 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci ROW_FORMAT = Dynamic;
3.子任务三:维护数据表
根据已给到的sql文件将这两份数据导入任意自己创建的数据库中,并对其中的数据进行如下操作:
(1)在hotel_all表中删除id为25的酒店数据;
(2)在comment_all表中将id为30的评分改为5。
将这两个SQL语句分别截图复制粘贴至客户端桌面【Release\提交结果.docx】中对应的任务序号下。
答:
UPDATE comment_all SET score = 5 WHERE id = 30;
DELETE FROM hotel_all WHERE id = 25;
更多内容请联系
武汉唯众智创科技有限公司
欲了解更多信息,欢迎登录www.whwzzc.com,咨询电话13037102709
*本资料产品图片及技术数据仅供参考,如有更新恕不另行通知,具体内容解释权归唯众所有。