《2021年山东省职业院校技能大赛高职组“大数据技术与应用”赛项A卷.docx》由会员分享,可在线阅读,更多相关《2021年山东省职业院校技能大赛高职组“大数据技术与应用”赛项A卷.docx(19页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、2021年山东省职业院校技能大赛高职组“大数据技术与应用”赛项A卷任 务 书参赛队编号:为etldate且值与ods库的相对应表该值相等,并添加dwd_insert_user dwd_insert_time、dwd_modify_user、dwd_modify_tinie 四列,其中 dwd_insert_userdwd_niodify_user 均填写 “userl,dwd_insert_time dwd_modify_time均填写当前操作时间(年月日必须是今天,时分秒只需在 比赛时间范围内即可),并进行数据类型转换。在hive cli中按照nation_key 顺序排序,查询dim_na
2、tion前1条数据,将结果内容复制粘贴至客户端桌 面【Release模块C提交结果.docx中对应的任务序号下;3、将ods库中region表数据抽取到dwd库中dim_region的分区表,分区字段 为etldate且值与ods库的相对应表该值相等,并添加dwd_insert_user dwd_insert_time、dwd_modify_user、dwd_modify_time 四列,其中 dwd_insert_user dwd_modify_user 均填写 “userl” , dwd_insert_time dwd_modify_time均填写当前操作时间(年月日必须是今天,时分秒只需
3、在 比赛时间范围内即可),并进行数据类型转换。在hive cli中按照region_key 顺序排序,查询dim_region表前1条数据,将结果内容复制粘贴至客户端 桌面【Release模块C提交结果.docx】中对应的任务序号下;4、将ods库中orders表数据抽取到dwd库中fact_orders的分区表,分区字 段为etldate且值与ods库的相对应表该值相等,并添加dwd_insert_user dwd insert_time、dwd_modify_user、dwd_modify_time 四列,其中 dwd_insert_user dwd_modify_user 均填写 “us
4、erl” , dwd_insert_time dwd_modify_time均填写当前操作时间(年月日必须是今天,时分秒只需在 比赛时间范围内即可),并进行数据类型转换。在执行hive cli执行select count (distinct (dealdate) from orders命令,将结果内容复制粘贴至客 户端桌面【Release模块C提交结果.docx】中对应的任务序号下;5、待任务4完成以后,需删除s中的分区,仅保留最近的三个分区。并在hive cli执行show partitions s命令,将结果截图粘贴至客户端桌面【Release 模块C提交结果.docx中对应的任务序号下;
5、6、将ods库中lineitem表数据抽取到dwd库中fact_lineitem的分区表,分 区字段为etldate且值与ods库的相对应表该值相等,抽取的条件为根据 orderkey 和 partkey 进行去重,并添加 dwd_insert_userdwd_insert_timedwd_modify_user、dwd_modify_time 四歹U , 其中 dwd_insert_user、 dwd_modify_user 均填写 “userl,dwd_insert_time dwd_modify_time 均 填写当前操作时间(年月日必须是今天,时分秒只需在比赛时间范围内即可), 并进行
6、数据类型转换。在hive cli执行show partitions _lineitem命令, 将结果截图粘贴至客户端桌面【Release模块C提交结果. docx】中对应的 任务序号下。任务二:指标计算1、编写Scala工程代码,根据dwd层表统计每个地区、每个国家、每个月下单 的数量和下单的总金额,存入MySQL数据库shtd_store的nationeverymonth 表中,然后在Linux的MySQL命令行中根据订单总数、消费总额、国家表主 键均为逆序排序,查询出前5条,将SQL语句与执行结果截图粘贴至客户端 桌面【Release模块C提交结果.docx中对应的任务序号下;字段类型中文
7、含义备注nationkeyint国家表主键nationnametext国家名称reg in keyint地区表主键reginnametext地区名称totalconsumptiondouble消费总额当月消费订单总额totalorderint订单总数当月订单总额yearint年订单产生的年monthint月订单产生的月2、编写Scala工程代码,根据dwd层表统计连续两个月下单并且下单金额保持 增长的用户,订单发生时间限制为大于等于1998年之后的数据(若某用户 在9、10、11三个月消费额连续增长,则该用户在表中存在两条记录,分别记录该用户9月到10月与10月到11月,若连续四个月都增长则以
8、此方式 类推),存入MySQL数据库shtd_store的usercontinueorder表中。然后 在Linux的MySQL命令行中根据订单总数、消费总额、客户主键逆序排序, 查询出前5条,将SQL语句与执行结果截图粘贴至客户端桌面【Release模 块C提交结果.docx中对应的任务序号下。字段类型中文含义备注custkeyint客户主键custnametext客户名称monthtext月记录当前月和下月,用下划线相连例如:199801_199802表示98年1月到2月用户连续下单。totalconsumptiondouble消费总额连续两月的订单总额totalorderint订单总数连
9、续两月的订单总数模块D:数据采集与实时计算(20分)环境说明:服务端登录地址详见各模块服务端说明。补充说明:各主机可通过Asbru工具进行SSH访问;请先检查ZooKeeper、Kafka、Redis端口,查看是否已启动,若未启动则各组件启动命令如下:ZK启动(netstat -ntlp查看2181端口是否打开)/usr/zk/zookeeper-3. 4. 6/bin/ startRedis启动(netstat -ntlp查看6379端口是否打开)/usr/redis/bin/redis-server /usr/redis/bin/Kafka启动(netstat -ntlp查看9092端口是
10、否打开)Flink任务在Yarn上用per job模式(即Job分离模式,不采用Session模式),方便Yarn回收资源。任务一:实时数据采集1、在Master节点使用Flume采集实时数据生成器26001端口的socket数据 (实时数据生成器脚本为Master节点/opt目录下的gen_socket_data脚 本),将数据存入到Kafka的Topic中(topic名称为order,分区数为4), 将Flume的配置截图粘贴至客户端桌面【Release模块D提交结果.docx】 中对应的任务序号下。注:考生需先启动已配置好的Flume,再启动脚本, 启动方式为进入/opt目录执行./ge
11、n_socket_data(如果没有权限,请授权 chmod 777 /opt/gen_socket_data)任务二:使用Fl ink处理Kafka中的数据编写Scala工程代码,使用Flink消费Kafka中Topic为order的数据,在 实时数据中使用以0开头的数据,其字段结构为附录说明中ORDERS表的字段。 1、使用Flink消费kafka中的数据,统计实时订单总额,将key设置成 totalprice存入redis中(value为字符串格式,仅存实时订单总金额)。 使用redis cli以get key方式获取totalprice值,将结果截图粘贴至客 户端桌面【Release模
12、块D提交结果.docx】中对应的任务序号下,需两次截 图,第一次截图和第二次截图间隔一分钟以上,第一次截图放前面,第二次 放后面。2、使用Flink消费ka珠a中的数据,统计每分钟下单的数量,将key设置成 totalorder存入redis中(value为字符串格式,仅存下单数量)。使用 redis cli以get key方式获取totalorder值,将结果粘贴至客户端桌面【Release模块D提交结果.docx】中对应的任务序号下,需两次截图,第一 次截图(应该在job启动2分钟数据稳定后再截图)和第二次截图时间间隔 应达一分钟以上,第一次截图放前面,第二次放后面。(注:流数据中,时 间
13、未精确到时分秒,建议StreamTimeCharacteristic设置成 ProcessingTime (默认)或 IngestionTime0 )模块E:数据可视化(20分)环境说明:数据接口地址及接口描述详见各模块服务端说明。任务一:用柱状图展示消费额最高的国家编写Vue工程代码,根据接口,用柱状图展示1997年12月消费额最高的5个国 家,同时将用于图表展示的数据结构在浏览器的console中进行打印输出,将图 表可视化结果和浏览器console打印结果分别截图并粘贴至客户端桌面 【Release模块E提交结果.docx中对应的任务序号下。任务二:用饼状图展示各地区(即大洲)消费能力编
14、写Vue工程代码,根据接口,用饼状图展示1998年第一季度(包含1月,2 月,3月)各大洲的消费总额占比,同时将用于图表展示的数据结构在浏览器的 console中进行打印输出,将图表可视化结果和浏览器console打印结果分别截 图并粘贴至客户端桌面【Release模块E提交结果.docx】中对应的任务序号下。任务三:折线图展示总消费额变化编写Vue工程代码,根据接口,用折线图展示1998年上半年(从1月到6月) 商城总消费额的变化情况,同时将用于图表展示的数据结构在浏览器的console 中进行打印输出,将图表可视化结果和浏览器console打印结果分别截图并粘贴 至客户端桌面【Releas
15、e模块E提交结果.docx】中对应的任务序号下。模块F:综合分析(10分)任务一:如何解决Job运行效率低的问题在模块B、C中出现某些Job运行时间较长,你认为可能是哪些情况造成?有什 么相关的方法吗?将内容编写至客户端桌面【Release模块F提交结果.docx】 中对应的任务序号下。任务二:简要描述任务过程中的问题并进行总结将内容编写至客户端桌面【Release模块F提交结果.docx】中对应的任务序号 下。附录:补充说明表名表名称说明PARTSUPPLIER表示零件的信息表示供货商的信息PARTSUPP表示供货商的零件信息CUSTOMER表示消费者的信息ORDERS表示订单的信息LINE
16、ITEM表示订单明细的信息NATION表示国家的信息REGION表示地区信息表关系表字段注释(1) SUPPLIER 表 suppkeynameaddressnationkey phone acctbal comment(2) REGION 表 REGIONKEY NAME COMMENT(3) CUSTOMER 表CUSTKEYNAMEADDRESSNATIONKEYPHONEACCTBAL MKTSEGMENT COMMENT(4) PART配件表PARTKEYNAMEMFGRBRANDTYPESIZECONTAINER RETAILPRICE COMMENT(5) PARTSUPP配件供
17、应表 PARTKEY SUPPKEY AVAILQTY SUPPLYCOST COMMENT(6) ORDERS零售订单表 ORDERKEY CUSTKEY ORDERSTATUS供应商序号 供应商名称 地址 国家代码 电话余货 备注地区代码 地区名称 备注主键姓名地址外键 电话余额备注号序名 价 件件商牌型小装售注 配配厂品类大包零备配件序号供应商序号供应量批发价备注订单编号顾客序号订单状态(该属性为无效值)背景描述大数据时代背景下,电商经营模式发生很大改变。在传统运营 模式中,缺乏数据积累,人们在做出一些决策行为过程中,更多是 凭借个人经验和直觉,发展路径比较自我封闭。而大数据时代,为 人
18、们提供一种全新的思路,通过大量的数据分析得出的结果将更加 现实和准确。商家可以对客户的消费行为信息数据进行收集和整 理,比如消费者购买产品的花费、选择产品的渠道、偏好产品的类 型、产品回购周期、购买产品的目的、消费者家庭背景、工作和生 活环境、个人消费观和价值观等。通过数据追踪,知道顾客从哪儿 来,是看了某网站投放的广告还是通过朋友推荐链接,是新访客还 是老用户,喜欢浏览什么产品,购物车有无商品,是否清空,还有 每一笔交易记录,精准锁定一定年龄、收入、对产品有兴趣的顾 客,对顾客进行分组、标签化,通过不同标签组合运用,获得不同 目标群体,以此开展精准推送。因数据驱动的零售新时代已经到来,没有大
19、数据,我们无法为消 费者提供这些体验,为完成电商的大数据分析工作,你所在的小组将 应用大数据技术,以Scala作为整个项目的基础开发语言,基于大数 据平台综合利用Spark. Flink、等技术,对数据进行处理、分析及可 视化呈现,你们作为该小组的技术人员,请按照下面任务完成本次工 作。TOTALPRICE ORDERDATE ORDERPRIORITY CLERK SHIPPRIORITY COMMENT(7) LINEITEM订单明细表 orderkey partkey suppkey linenumber quantity extendedprice discount taxreturn
20、flaglinestatusshipdate commitdate receiptdate shipinstruct shipmode comment总价(单位:元)下单日期订单优先级收银员发货优先级备注订单编号配件序号供应商序号流水号数量价格(单位:元)折扣税 _退回标,己(R拒绝退回A接收 退回N默认状态,无退回申请)明细状态(0已发货,F未发货)发货日期预计到达日期实际到达日期运单处理策略运输途径备注模块A:大数据平台及组件的部署管理(10分)环境说明:服务端登录地址详见各模块服务端说明。补充说明:各主机可通过Asbru工具进行SSH访问;Master节点MySQL数据库用户名/密码:r
21、oot/123456;相关软件安装包在主节点的/opt目录下,请选择对应的安装包进行安装,用不到的可忽略;所有模块中应用命令必须采用绝对路径。任务一:Hadoop完全分布式安装部署本环节需要使用root用户完成相关配置,安装Hadoop需要配置前置环境。 命令中要求使用绝对路径,具体部署要求如下:1、将Master节点JDK安装包解压并移动到/usr/java路径(若路径不存在,则 需新建),将命令复制并粘贴至客户端桌面【Release模块A提交结果.docx 中对应的任务序号下;2、修改/root/profile文件,设置JDK环境变量,配置完毕后在master节点分 别执行“java”和“
22、javac”命令,将命令行执行结果分别截图并粘贴至客户 端桌面【Release模块A提交结果.docx】中对应的任务序号下;3、请完成host相关配置,将三个节点分别命名为master、slavel slave2, 并做免密登录,使用绝对路径从master复制JDK解压后的安装文件到slavel、 slave2节点,并配置相关环境变量,将全部复制命令复制并粘贴至客户端桌 面【Release模块A提交结果.docx】中对应的任务序号下;4、在Master将Hadoop解压到/opt目录下,并将解压包分发至2中,配置好相 关环境,初始化Hadoop环境namenode,将初始化命令及初始化结果复制
23、粘 贴至客户端桌面【Release模块A提交结果.docx】中对应的任务序号下;5、启动hadoop集群,查看master节点jps进程,将查看结果复制粘贴至客户端桌面【Release模块A提交结果.docx】中对应的任务序号下。任务二:Hive安装部署本环节需要使用root用户完成相关配置,已安装Hadoop及需要配置前置环 境,具体部署要求如下:1、将Master节点Hive安装包解压到/opt目录下,将命令复制并粘贴至客户端 桌面【Release模块A提交结果.docx】中对应的任务序号下;2、设置Hive环境变量,并使环境变量生效,并将环境变量配置内容复制并粘 贴至客户端桌面【Rele
24、ase模块A提交结果.docx】中对应的任务序号下;3、完成相关配置并添加所依赖包,将MySQL数据库作为Hive元数据库。初始 化Hive元数据,并通过schematool相关命令执行初始化,将初始化结果复 制粘贴至客户端桌面【Release模块A提交结果.docx】中对应的任务序号 下。任务三:Fl ink on Yarn安装部署本环节需要使用root用户完成相关配置,已安装Hadoop及需要配置前置环 境,具体部署要求如下:1、将Flink包解压到路径/opt目录下,将完整命令复制粘贴至客户端桌面 【Release模块A提交结果.docx中对应的任务序号下;2、修改/root/profi
25、le文件,设置Flink环境变量,并使环境变量生效将环境 变量配置内容复制粘贴至客户端桌面【Release模块A提交结果. docx】中 对应的任务序号下;3、开启Hadoop集群,在yarn上以per job模式(即Job分离模式,不采用 Session 模式)运行 $ FL I NK_H0ME/ e x amp les/batch/,将运行结果最后 10 行 复制粘贴至客户端桌面【Release模块A提交结果. docx】中对应的任务序 号下。示例:flink run -m yarn-cluster -p 2 -yjm 2G -ytm 2G $FLINK_HOME/examples/bat
26、ch/模块B:离线数据抽取(15分)环境说明:服务端登录地址详见各模块服务端说明。补充说明:各主机可通过Asbru工具进行SSH访问;Master节点MySQL数据库用户名/密码:root/123456 (已配置远程连接);Hive的元数据启动命令为:nohup hive 一一service metastore &Hive 的配置文件位于/opt/apache-hive-2. 3. 4-bin/conf/Spark任务在Yarn上用Client运行,方便观察日志。任务一:全量数据抽取编写 Scala 工程代码,将 MySQL 的 shtd_store 库中表 CUSTOMER. NATION.
27、 PART、PARTSUPP. REGION. SUPPLIER的数据全量抽取到Hive的ods库中对应表 customer, nation, part, partsupp, region, supplier 中。1、抽取shtd store库中CUSTOMER的全量数据进入Hive的ods库中表customero 字段排序,类型不变,同时添加静态分区,分区字段类型为String,且值为 当前比赛日的前一天日期(分区字段格式为yyyyMMdd)。并在hive cli执 行show partitions mer命令,将结果截图复制粘贴至客户端桌面【Release 模块B提交结果.docx】中对应
28、的任务序号下;2、抽取shtd_store库中NATION的全量数据进入Hive的ods库中表nation。 字段排序,类型不变,同时添加静态分区,分区字段类型为String,且值为 当前比赛日的前一天日期(分区字段格式为yyyyMMdd)。并在hive cli执 行show partitions n命令,将结果截图复制粘贴至客户端桌面【Release 模块B提交结果.docx】中对应的任务序号下;3、抽取shtd_store库中PART的全量数据进入Hive的ods库中表part。字段 排序,类型不变,同时添加静态分区,分区字段类型为String,且值为当前 比赛日的前一天日期(分区字段格式
29、为yyyyMMdd)。并在hive cli执行show partitions命令,将结果截图复制粘贴至客户端桌面【Release模块B提 交结果.docx】中对应的任务序号下;4、抽取shtd_store库中PARTSUPP的全量数据进入Hive的ods库中表partsuppo 字段排序,类型不变,同时添加静态分区,分区字段类型为String,且值为 当前比赛日的前一天日期(分区字段格式为yyyyMMdd)。并在hive cli执 行show partitions upp命令,将结果截图复制粘贴至客户端桌面【Release、 模块B提交结果.docx】中对应的任务序号下;5、抽取shtd_st
30、ore库中REGION的全量数据进入Hive的ods库中表region。 字段排序,类型不变,同时添加静态分区,分区字段类型为String,且值为 当前比赛日的前一天日期(分区字段格式为yyyyMMdd)。并在hive cli执 行show partitions n命令,将结果截图复制粘贴至客户端桌面【Release 模块B提交结果.docx】中对应的任务序号下;6、抽取shtd_store库中SUPPLIER的全量数据进入Hive的ods库中表suppliero 字段排序,类型不变,同时添加静态分区,分区字段类型为String,且值为 当前比赛日的前一天日期(分区字段格式为yyyyMMdd)
31、。并在hive cli执 行show partitions ier命令,将结果截图复制粘贴至客户端桌面【Release 模块B提交结果.docx】中对应的任务序号下。任务二:增量数据抽取编写Scala工程代码,将MySQL的shtd_store库中表ORDERS、LINEITEM增 量抽取到Hive的ods库中对应表ORDERS, LINEITEM中。1、抽取shtd_store库中ORDERS的增量数据进入Hive的ods库中表orders, 要求只取1997年12月1号及之后的数据(包括1997年12月1号),根据 ORDERS表中ORDERKEY作为增量字段(提示:对比MySQL和Hiv
32、e中的表的 ORDERKEY大小),只将新增的数据抽入,字段类型不变,同时添加动态分区, 分区字段类型为String,且值为ORDERDATE字段的内容(ORDERDATE的格式为yyyy_MM-dd,分区字段格式为yyyyMMdd)。并在hive cli执行selectcount (distinct (dealdate) from s命令,将结果截图复制粘贴至客户端 桌面【Release模块B提交结果.docx】中对应的任务序号下;2、抽取shtd_store库中LINEITEM的增量数据进入Hive的ods库中表line item, 根据LINEITEM表中orderkey作为增量字段,只
33、将新增的数据抽入,字段类 型不变,同时添加静态分区,分区字段类型为String,且值为当前比赛日的 前一天日期(分区字段格式为yyyyMMdd)。并在hive cli执行show partitions tem命令,将结果截图复制粘贴至客户端桌面【Release模块B 提交结果.docx中对应的任务序号下。模块C:离线数据统计(20分)环境说明:服务端登录地址详见各模块服务端说明。补充说明:各主机可通过Asbru工具进行SSH访问;Master节点MySQL数据库用户名/密码:root/123456 (已配置远程连接);Hive的元数据启动命令为:nohup hive 一一service met
34、astore &Hive 的配置文件位于/opt/apache-hive-2. 3. 4-bin/conf/Spark任务在Yarn上用Client运行,方便观察日志。任务一:数据清洗编写 Scala 工程代码,将 ods 库中表 customer, nation, region, supplier 全量抽取到Hive的dwd库中对应表中。表中有涉及到timestamp类型的,均要 求按照yyyy-MM-dd HH:mm: ss,不记录毫秒数,若原数据中只有年月曰,则在时 分秒的位置添加00:00:00,添加之后使其符合yyyy-MM-dd HH:mm:sso1、将ods库中customer表
35、数据抽取到dwd库中dim_customer的分区表,分区 字段为etldate且值与0ds库的相对应表该值相等,并添加dwd_insert_user dwd_insert_time、dwd_modify_user、dwd_modify_time 四列,其中 dwd_insert_user dwd modify_user 均填写 “userl” , dwd_insert_time dwd_modify_time均填写当前操作时间(年月曰必须是今天,时分秒只需在 比赛时间范围内即可),并进行数据类型转换。在hive cli中按照cust_key 顺序排序,查询dim_customer前1条数据,将结果内容复制粘贴至客户端 桌面【Release、模块C提交结果.docx中对应的任务序号下;2、将ods库中nation表数据抽取到dwd库中dim_nation的分区表,分区字段