怎样做自己的加密网站,网站建设大作业感想,网站制作难度,登录需要技能竞赛软件测试资料的同学们可s聊我#xff0c;详细了解
目录
任务A#xff1a;大数据平台搭建#xff08;容器环境#xff09;#xff08;15分#xff09;
任务B#xff1a;离线数据处理#xff08;25分
任务C#xff1a;数据挖掘#xff08;10分#xf…需要技能竞赛软件测试资料的同学们可s聊我详细了解
目录
任务A大数据平台搭建容器环境15分
任务B离线数据处理25分
任务C数据挖掘10分
任务D数据采集与实时计算20分
任务E数据可视化15分
任务F综合分析10分 任务A大数据平台搭建容器环境15分
环境说明 服务端登录地址详见各任务服务端说明。 补充说明宿主机及各容器节点可通过Asbru工具或SSH客户端进行SSH访问。
子任务一Hadoop 完全分布式安装配置 本任务需要使用root用户完成相关配置安装Hadoop需要配置前置环境。命令中要求使用绝对路径具体要求如下:
从宿主机/opt目录下将文件hadoop-3.1.3.tar.gz、jdk-8u212-linux-x64.tar.gz复制到容器Master中的/opt/software路径中若路径不存在则需新建将Master节点JDK安装包解压到/opt/module路径中(若路径不存在则需新建)将JDK解压命令复制并粘贴至客户端桌面【Release\任务A提交结果.docx】中对应的任务序号下修改容器中/etc/profile文件设置JDK环境变量并使其生效配置完毕后在Master节点分别执行“java -version”和“javac”命令将命令行执行结果分别截图并粘贴至客户端桌面【Release\任务A提交结果.docx】中对应的任务序号下请完成host相关配置将三个节点分别命名为master、slave1、slave2并做免密登录用scp命令并使用绝对路径从Master复制JDK解压后的安装文件到slave1、slave2节点若路径不存在则需新建并配置slave1、slave2相关环境变量将全部scp复制JDK的命令复制并粘贴至客户端桌面【Release\任务A提交结果.docx】中对应的任务序号下在Master将Hadoop解压到/opt/module(若路径不存在则需新建)目录下并将解压包分发至slave1、slave2中其中master、slave1、slave2节点均作为datanode配置好相关环境初始化Hadoop环境namenode将初始化命令及初始化结果截图截取初始化结果日志最后20行即可粘贴至客户端桌面【Release\任务A提交结果.docx】中对应的任务序号下启动Hadoop集群包括hdfs和yarn使用jps命令查看Master节点与slave1节点的Java进程将jps命令与结果截图粘贴至客户端桌面【Release\任务A提交结果.docx】中对应的任务序号下。 子任务二Flume安装配置 本任务需要使用root用户完成相关配置已安装Hadoop及需要配置前置环境具体要求如下
从宿主机/opt目录下将文件apache-flume-1.9.0-bin.tar.gz复制到容器Master中的/opt/software路径中若路径不存在则需新建将Master节点Flume安装包解压到/opt/module目录下将解压命令复制并粘贴至客户端桌面【Release\任务A提交结果.docx】中对应的任务序号下完善相关配置设置Flume环境变量并使环境变量生效执行命令flume-ng version并将命令与结果截图粘贴至客户端桌面【Release\任务A提交结果.docx】中对应的任务序号下启动Flume传输Hadoop日志namenode或datanode日志查看HDFS中/tmp/flume目录下生成的内容将查看命令及结果至少5条结果截图粘贴至客户端桌面【Release\任务A提交结果.docx】中对应的任务序号下。 子任务三Flink on Yarn安装配置 本任务需要使用root用户完成相关配置已安装Hadoop及需要配置前置环境具体要求如下
从宿主机/opt目录下将文件flink-1.14.0-bin-scala_2.12.tgz复制到容器Master中的/opt/software若路径不存在则需新建中,将Flink包解压到路径/opt/module中(若路径不存在则需新建)将完整解压命令复制粘贴至客户端桌面【Release\任务A提交结果.docx】中对应的任务序号下修改容器中/etc/profile文件设置Flink环境变量并使环境变量生效。在容器中/opt目录下运行命令flink --version将命令与结果截图粘贴至客户端桌面【Release\任务A提交结果.docx】中对应的任务序号下开启Hadoop集群在yarn上以per job模式即Job分离模式不采用Session模式运行 $FLINK_HOME/examples/batch/WordCount.jar将运行结果最后10行截图粘贴至客户端桌面【Release\任务A提交结果.docx】中对应的任务序号下。 示例
flink run -m yarn-cluster -p 2 -yjm 2G -ytm 2G $FLINK_HOME/examples/batch/WordCount.jar 任务B离线数据处理25分
环境说明 服务端登录地址详见各任务服务端说明。 补充说明各节点可通过Asbru工具或SSH客户端进行SSH访问 主节点MySQL数据库用户名/密码root/123456已配置远程连接 Spark任务在Yarn上用Client运行方便观察日志。
子任务一数据抽取 编写Scala代码使用Spark将MySQL的shtd_store库中表user_info、sku_info、base_province、base_region、order_info、order_detail的数据增量抽取到Hudi的ods_ds_hudi库路径为/user/hive/warehouse/ods_ds_hudi.db的user_info、sku_info、base_province、base_region、order_info、order_detail中。(若ods_ds_hudi库中部分表没有数据正常抽取即可)
抽取shtd_store库中user_info的增量数据进入Hudi的ods_ds_hudi库中表user_info。根据ods_ds_hudi.user_info表中operate_time或create_time作为增量字段(即MySQL中每条数据取这两个时间中较大的那个时间作为增量字段去和ods里的这两个字段中较大的时间进行比较)只将新增的数据抽入字段名称、类型不变同时添加分区若operate_time为空则用create_time填充分区字段为etl_date类型为String且值为当前比赛日的前一天日期分区字段格式为yyyyMMdd。id作为primaryKeyoperate_time作为preCombineField。使用spark-shell执行show partitions ods_ds_hudi.user_info命令将结果截图粘贴至客户端桌面【Release\任务B提交结果.docx】中对应的任务序号下抽取shtd_store库中sku_info的增量数据进入Hudi的ods_ds_hudi库中表sku_info。根据ods_ds_hudi.sku_info表中create_time作为增量字段只将新增的数据抽入字段名称、类型不变同时添加分区分区字段为etl_date类型为String且值为当前比赛日的前一天日期分区字段格式为yyyyMMdd。id作为primaryKeyoperate_time作为preCombineField。使用spark-shell执行show partitions ods_ds_hudi.sku_info命令将结果截图粘贴至客户端桌面【Release\任务B提交结果.docx】中对应的任务序号下抽取shtd_store库中base_province的增量数据进入Hudi的ods_ds_hudi库中表base_province。根据ods_ds_hudi.base_province表中id作为增量字段只将新增的数据抽入字段名称、类型不变并添加字段create_time取当前时间同时添加分区分区字段为etl_date类型为String且值为当前比赛日的前一天日期分区字段格式为yyyyMMdd。id作为primaryKeycreate_time作为preCombineField。使用spark-shell执行show partitions ods_ds_hudi.base_province命令将结果截图粘贴至客户端桌面【Release\任务B提交结果.docx】中对应的任务序号下抽取shtd_store库中base_region的增量数据进入Hudi的ods_ds_hudi库中表base_region。根据ods_ds_hudi.base_region表中id作为增量字段只将新增的数据抽入字段名称、类型不变并添加字段create_time取当前时间同时添加分区分区字段为etl_date类型为String且值为当前比赛日的前一天日期分区字段格式为yyyyMMdd。id作为primaryKeycreate_time作为preCombineField。使用spark-shell执行show partitions ods_ds_hudi.base_region命令将结果截图粘贴至客户端桌面【Release\任务B提交结果.docx】中对应的任务序号下抽取shtd_store库中order_info的增量数据进入Hudi的ods_ds_hudi库中表order_info根据ods_ds_hudi.order_info表中operate_time或create_time作为增量字段(即MySQL中每条数据取这两个时间中较大的那个时间作为增量字段去和ods里的这两个字段中较大的时间进行比较)只将新增的数据抽入字段名称、类型不变同时添加分区分区字段为etl_date类型为String且值为当前比赛日的前一天日期分区字段格式为yyyyMMdd。id作为primaryKeyoperate_time作为preCombineField。使用spark-shell执行show partitions ods_ds_hudi.order_info命令将结果截图粘贴至客户端桌面【Release\任务B提交结果.docx】中对应的任务序号下抽取shtd_store库中order_detail的增量数据进入Hudi的ods_ds_hudi库中表order_detail根据ods_ds_hudi.order_detail表中create_time作为增量字段只将新增的数据抽入字段名称、类型不变同时添加分区分区字段为etl_date类型为String且值为当前比赛日的前一天日期分区字段格式为yyyyMMdd。id作为primaryKeycreate_time作为preCombineField。使用spark-shell执行show partitions ods_ds_hudi.order_detail命令将结果截图粘贴至客户端桌面【Release\任务B提交结果.docx】中对应的任务序号下。 子任务二数据清洗 编写Scala代码使用Spark将ods库中相应表数据全量抽取到Hudi的dwd_ds_hudi库路径为路径为/user/hive/warehouse/dwd_ds_hudi.db中对应表中。表中有涉及到timestamp类型的均要求按照yyyy-MM-dd HH:mm:ss不记录毫秒数若原数据中只有年月日则在时分秒的位置添加00:00:00添加之后使其符合yyyy-MM-dd HH:mm:ss。(若dwd_ds_hudi库中部分表没有数据正常抽取即可)
抽取ods_ds_hudi库中user_info表中昨天的分区子任务一生成的分区数据并结合dim_user_info最新分区现有的数据根据id合并数据到dwd_ds_hudi库中dim_user_info的分区表合并是指对dwd层数据进行插入或修改需修改的数据以id为合并字段根据operate_time排序取最新的一条分区字段为etl_date且值与ods_ds_hudi库的相对应表该值相等并添加dwd_insert_user、dwd_insert_time、dwd_modify_user、dwd_modify_time四列,其中dwd_insert_user、dwd_modify_user均填写“user1”。若该条记录第一次进入数仓dwd层则dwd_insert_time、dwd_modify_time均存当前操作时间并进行数据类型转换。若该数据在进入dwd层时发生了合并修改则dwd_insert_time时间不变dwd_modify_time存当前操作时间其余列存最新的值。id作为primaryKeyoperate_time作为preCombineField。使用spark-shell执行show partitions dwd_ds_hudi.dim_user_info命令将结果截图粘贴至客户端桌面【Release\任务B提交结果.docx】中对应的任务序号下抽取ods_ds_hudi库sku_info表中昨天的分区子任务一生成的分区数据并结合dim_sku_info最新分区现有的数据根据id合并数据到dwd_ds_hudi库中dim_sku_info的分区表合并是指对dwd层数据进行插入或修改需修改的数据以id为合并字段根据create_time排序取最新的一条分区字段为etl_date且值与ods_ds_hudi库的相对应表该值相等并添加dwd_insert_user、dwd_insert_time、dwd_modify_user、dwd_modify_time四列,其中dwd_insert_user、dwd_modify_user均填写“user1”。若该条数据第一次进入数仓dwd层则dwd_insert_time、dwd_modify_time均填写当前操作时间并进行数据类型转换。若该数据在进入dwd层时发生了合并修改则dwd_insert_time时间不变dwd_modify_time存当前操作时间其余列存最新的值。id作为primaryKeydwd_modify_time作为preCombineField。使用spark-shell查询表dim_sku_info的字段id、sku_desc、dwd_insert_user、dwd_modify_time、etl_date条件为最新分区的数据id大于等于15且小于等于20并且按照id升序排序将结果截图粘贴至客户端桌面【Release\任务B提交结果.docx】中对应的任务序号下抽取ods_ds_hudi库base_province表中昨天的分区子任务一生成的分区数据并结合dim_province最新分区现有的数据根据id合并数据到dwd_ds_hudi库中dim_province的分区表合并是指对dwd层数据进行插入或修改需修改的数据以id为合并字段根据create_time排序取最新的一条分区字段为etl_date且值与ods_ds_hudi库的相对应表该值相等并添加dwd_insert_user、dwd_insert_time、dwd_modify_user、dwd_modify_time四列,其中dwd_insert_user、dwd_modify_user均填写“user1”。若该条数据第一次进入数仓dwd层则dwd_insert_time、dwd_modify_time均填写当前操作时间并进行数据类型转换。若该数据在进入dwd层时发生了合并修改则dwd_insert_time时间不变dwd_modify_time存当前操作时间其余列存最新的值。id作为primaryKeydwd_modify_time作为preCombineField。使用spark-shell在表dwd.dim_province最新分区中查询该分区中数据的条数将结果截图粘贴至客户端桌面【Release\任务B提交结果.docx】中对应的任务序号下抽取ods_ds_hudi库base_region表中昨天的分区子任务一生成的分区数据并结合dim_region最新分区现有的数据根据id合并数据到dwd_ds_hudi库中dim_region的分区表合并是指对dwd层数据进行插入或修改需修改的数据以id为合并字段根据create_time排序取最新的一条分区字段为etl_date且值与ods_ds_hudi库的相对应表该值相等并添加dwd_insert_user、dwd_insert_time、dwd_modify_user、dwd_modify_time四列,其中dwd_insert_user、dwd_modify_user均填写“user1”。若该条数据第一次进入数仓dwd层则dwd_insert_time、dwd_modify_time均填写当前操作时间并进行数据类型转换。若该数据在进入dwd层时发生了合并修改则dwd_insert_time时间不变dwd_modify_time存当前操作时间其余列存最新的值。id作为primaryKeydwd_modify_time作为preCombineField。使用spark-shell在表dwd.dim_region最新分区中查询该分区中数据的条数将结果截图粘贴至客户端桌面【Release\任务B提交结果.docx】中对应的任务序号下将ods_ds_hudi库中order_info表昨天的分区子任务一生成的分区数据抽取到dwd_ds_hudi库中fact_order_info的动态分区表分区字段为etl_date类型为String取create_time值并将格式转换为yyyyMMdd同时若operate_time为空则用create_time填充并添加dwd_insert_user、dwd_insert_time、dwd_modify_user、dwd_modify_time四列其中dwd_insert_user、dwd_modify_user均填写“user1”dwd_insert_time、dwd_modify_time均填写当前操作时间并进行数据类型转换。id作为primaryKeyoperate_time作为preCombineField。使用spark-shell执行show partitions dwd.fact_order_info命令将结果截图粘贴至客户端桌面【Release\任务B提交结果.docx】中对应的任务序号下将ods_ds_hudi库中order_detail表昨天的分区子任务一中生成的分区数据抽取到dwd_ds_hudi库中fact_order_detail的动态分区表分区字段为etl_date类型为String取create_time值并将格式转换为yyyyMMdd并添加dwd_insert_user、dwd_insert_time、dwd_modify_user、dwd_modify_time四列其中dwd_insert_user、dwd_modify_user均填写“user1”dwd_insert_time、dwd_modify_time均填写当前操作时间并进行数据类型转换。id作为primaryKeydwd_modify_time作为preCombineField。使用spark-shell执行show partitions dwd_ds_hudi.fact_order_detail命令将结果截图粘贴至客户端桌面【Release\任务B提交结果.docx】中对应的任务序号下。 子任务三指标计算 编写Scala代码使用Spark计算相关指标。 注在指标计算中不考虑订单信息表中order_status字段的值将所有订单视为有效订单。计算订单金额或订单总金额时只使用final_total_amount字段。需注意dwd_ds_hudi所有的维表取最新的分区。
本任务基于以下2、3、4小题完成使用Azkaban完成第2、3、4题任务代码的调度。工作流要求使用shell输出“开始”作为工作流的第一个jobjob12、3、4题任务为串行任务且它们依赖job1的完成命名为job2、job3、job4job2、job3、job4完成之后使用shell输出“结束”作为工作流的最后一个jobendjobendjob依赖job2、job3、job4并将最终任务调度完成后的工作流截图将截图粘贴至客户端桌面【Release\任务B提交结果.docx】中对应的任务序号下根据dwd_ds_hudi层表统计每人每天下单的数量和下单的总金额存入Hudi的dws_ds_hudi层的user_consumption_day_aggr表中表结构如下然后使用spark -shell按照客户主键、订单总金额均为降序排序查询出前5条将SQL语句复制粘贴至客户端桌面【Release\任务B提交结果.docx】中对应的任务序号下将执行结果截图粘贴至客户端桌面【Release\任务B提交结果.docx】中对应的任务序号下 字段 类型 中文含义 备注 uuid string 随机字符 随机字符保证不同即可作为primaryKey user_id int 客户主键 user_name string 客户名称 total_amount double 订单总金额 当天订单总金额。 total_count int 订单总数 当天订单总数。同时可作为preCombineField作为合并字段时无意义因为主键为随机生成 year int 年 订单产生的年,为动态分区字段 month int 月 订单产生的月,为动态分区字段 day int 日 订单产生的日,为动态分区字段 根据dwd_ds_hudi库中的表统计每个省每月下单的数量和下单的总金额并按照yearmonthregion_id进行分组,按照total_amount逆序排序形成sequence值将计算结果存入Hudi的dws_ds_hudi数据库province_consumption_day_aggr表中表结构如下然后使用spark-shell根据订单总数、订单总金额、省份表主键均为降序排序查询出前5条在查询时对于订单总金额字段将其转为bigint类型避免用科学计数法展示将SQL语句复制粘贴至客户端桌面【Release\任务B提交结果.docx】中对应的任务序号下将执行结果截图粘贴至客户端桌面【Release\任务B提交结果.docx】中对应的任务序号下 字段 类型 中文含义 备注 uuid string 随机字符 随机字符保证不同即可作为primaryKey province_id int 省份表主键 province_name string 省份名称 region_id int 地区主键 region_name string 地区名称 total_amount double 订单总金额 当月订单总金额 total_count int 订单总数 当月订单总数。同时可作为preCombineField作为合并字段时无意义因为主键为随机生成 sequence int 次序 year int 年 订单产生的年,为动态分区字段 month int 月 订单产生的月,为动态分区字段 请根据dws_ds_hudi库中的表计算出每个省份2020年4月的平均订单金额和该省所在地区平均订单金额相比较结果“高/低/相同”,存入ClickHouse数据库shtd_result的provinceavgcmpregion表中表结构如下然后在Linux的ClickHouse命令行中根据省份表主键、省平均订单金额、地区平均订单金额均为降序排序查询出前5条将SQL语句复制粘贴至客户端桌面【Release\任务B提交结果.docx】中对应的任务序号下将执行结果截图粘贴至客户端桌面【Release\任务B提交结果.docx】中对应的任务序号下 字段 类型 中文含义 备注 provinceid int 省份表主键 provincename text 省份名称 provinceavgconsumption double 该省平均订单金额 region_id int 地区表主键 region_name text 地区名称 regionavgconsumption double 地区平均订单金额 该省所在地区平均订单金额 comparison text 比较结果 省平均订单金额和该省所在地区平均订单金额比较结果值为高/低/相同 任务C数据挖掘10分
环境说明 服务端登录地址详见各任务服务端说明。 补充说明各节点可通过Asbru工具或SSH客户端进行SSH访问 主节点MySQL数据库用户名/密码root/123456已配置远程连接 Spark任务在Yarn上用Client运行方便观察日志。 该任务均使用Scala编写利用Spark相关库完成。
子任务一特征工程 剔除订单信息表与订单详细信息表中用户id与商品id不存在现有的维表中的记录同时建议多利用缓存并充分考虑并行度来优化代码达到更快的计算效果。
根据Hudi的dwd库中相关表或MySQL中shtd_store中相关表order_detail、sku_info计算出与用户id为6708的用户所购买相同商品种类最多的前10位用户只考虑他俩购买过多少种相同的商品不考虑相同的商品买了多少次将10位用户id进行输出若与多个用户购买的商品种类相同则输出结果按照用户id升序排序输出格式如下将结果截图粘贴至客户端桌面【Release\任务C提交结果.docx】中对应的任务序号下 结果格式如下 -------------------相同种类前10的id结果展示为-------------------- 1,2,901,4,5,21,32,91,14,52 根据Hudi的dwd库中相关表或MySQL中shtd_store中相关商品表sku_info获取id、spu_id、price、weight、tm_id、category3_id 这六个字段并进行数据预处理对price、weight进行规范化(StandardScaler)处理对spu_id、tm_id、category3_id进行one-hot编码处理若该商品属于该品牌则置为1否则置为0,并按照id进行升序排序在集群中输出第一条数据前10列无需展示字段名将结果截图粘贴至客户端桌面【Release\任务C提交结果.docx】中对应的任务序号下。 字段 类型 中文含义 备注 id double 主键 price double 价格 weight double 重量 spu_id#1 double spu_id 1 若属于该spu_id则内容为1否则为0 spu_id#2 double spu_id 2 若属于该spu_id则内容为1否则为0 ..... double tm_id#1 double 品牌1 若属于该品牌则内容为1否则为0 tm_id#2 double 品牌2 若属于该品牌则内容为1否则为0 …… double category3_id#1 double 分类级别3 1 若属于该分类级别3则内容为1否则为0 category3_id#2 double 分类级别3 2 若属于该分类级别3则内容为1否则为0 …… 结果格式如下 --------------------第一条数据前10列结果展示为--------------------- 1.0,0.892346,1.72568,0.0,0.0,0.0,0.0,1.0,0.0,0.0 子任务二推荐系统
根据子任务一的结果计算出与用户id为6708的用户所购买相同商品种类最多的前10位用户id只考虑他俩购买过多少种相同的商品不考虑相同的商品买了多少次并根据Hudi的dwd库中相关表或MySQL数据库shtd_store中相关表获取到这10位用户已购买过的商品并剔除用户6708已购买的商品通过计算这10位用户已购买的商品剔除用户6708已购买的商品与用户6708已购买的商品数据集中商品的余弦相似度累加再求均值输出均值前5商品id作为推荐使用将执行结果截图粘贴至客户端桌面【Release\任务C提交结果.docx】中对应的任务序号下。 结果格式如下
------------------------推荐Top5结果如下------------------------
相似度top1(商品id1平均相似度0.983456)
相似度top2(商品id71平均相似度0.782672)
相似度top3(商品id22平均相似度0.7635246)
相似度top4(商品id351平均相似度0.7335748)
相似度top5(商品id14平均相似度0.522356) 任务D数据采集与实时计算20分
环境说明 服务端登录地址详见各任务服务端说明。 补充说明各节点可通过Asbru工具或SSH客户端进行SSH访问 Flink任务在Yarn上用per job模式即Job分离模式不采用Session模式方便Yarn回收资源。
子任务一实时数据采集
在主节点使用Flume采集实时数据生成器10050端口的socket数据将数据存入到Kafka的Topic中Topic名称为order分区数为4使用Kafka自带的消费者消费orderTopic中的数据将前2条数据的结果截图粘贴至客户端桌面【Release\任务D提交结果.docx】中对应的任务序号下采用多路复用模式Flume接收数据注入kafka 的同时将数据备份到HDFS目录/user/test/flumebackup下将查看备份目录下的第一个文件的前2条数据的命令与结果截图粘贴至客户端桌面【Release\任务D提交结果.docx】中对应的任务序号下。 子任务二使用Flink处理Kafka中的数据 编写Scala代码使用Flink消费Kafka中Topic为order的数据并进行相应的数据统计计算订单信息对应表结构order_info,订单详细信息对应表结构order_detail来源类型和来源编号这两个字段不考虑所以在实时数据中不会出现同时计算中使用order_info或order_detail表中create_time或operate_time取两者中值较大者作为EventTime若operate_time为空值或无此列则使用create_time填充允许数据延迟5s订单状态order_status分别为1001:创建订单、1002:支付订单、1003:取消订单、1004:完成订单、1005:申请退回、1006:退回完成。另外对于数据结果展示时不要采用例如1.9786518E7的科学计数法。
使用Flink消费Kafka中的数据统计商城实时订单数量需要考虑订单状态若有取消订单、申请退回、退回完成则不计入订单数量其他状态则累加将key设置成totalcount存入Redis中。使用redis cli以get key方式获取totalcount值将结果截图粘贴至客户端桌面【Release\任务D提交结果.docx】中对应的任务序号下需两次截图第一次截图和第二次截图间隔1分钟以上第一次截图放前面第二次截图放后面在任务1进行的同时使用侧边流统计每分钟申请退回订单的数量将key设置成refundcountminute存入Redis中。使用redis cli以get key方式获取refundcountminute值将结果截图粘贴至客户端桌面【Release\任务D提交结果.docx】中对应的任务序号下需两次截图第一次截图和第二次截图间隔1分钟以上第一次截图放前面第二次截图放后面在任务1进行的同时使用侧边流计算每分钟内状态为取消订单占所有订单的占比将key设置成cancelrate存入Redis中value存放取消订单的占比为百分比保留百分比后的一位小数四舍五入例如12.1%。使用redis cli以get key方式获取cancelrate值将结果截图粘贴至客户端桌面【Release\任务D提交结果.docx】中对应的任务序号下需两次截图第一次截图和第二次截图间隔1分钟以上第一次截图放前面第二次截图放后面。 任务E数据可视化15分
环境说明 数据接口地址及接口描述详见各任务服务端说明。
子任务一用柱状图展示各省份消费额的中位数 编写Vue工程代码根据接口用柱状图展示2020年部分省份所有订单消费额的中位数前10省份降序排列若有小数则四舍五入保留两位同时将用于图表展示的数据结构在浏览器的console中进行打印输出将图表可视化结果和浏览器console打印结果分别截图并粘贴至客户端桌面【Release\任务E提交结果.docx】中对应的任务序号下。 子任务二用玫瑰图展示各地区消费能力 编写Vue工程代码根据接口用基础南丁格尔玫瑰图展示2020年各地区的消费总额占比同时将用于图表展示的数据结构在浏览器的console中进行打印输出将图表可视化结果和浏览器console打印结果分别截图并粘贴至客户端桌面【Release\任务E提交结果.docx】中对应的任务序号下。 子任务三用折线图展示每年上架商品数量的变化 编写Vue工程代码根据接口用折线图展示每年上架商品数量的变化情况同时将用于图表展示的数据结构在浏览器的console中进行打印输出将图表可视化结果和浏览器console打印结果分别截图并粘贴至客户端桌面【Release\任务E提交结果.docx】中对应的任务序号下。 子任务四用条形图展示消费总额最高的省份 编写Vue工程代码根据接口用条形图展示2020年消费总额最高的10个省份同时将用于图表展示的数据结构在浏览器的console中进行打印输出将图表可视化结果和浏览器console打印结果分别截图并粘贴至客户端桌面【Release\任务E提交结果.docx】中对应的任务序号下。 子任务五用折柱混合图展示省份平均消费额和地区平均消费额 编写Vue工程代码根据接口用折柱混合图展示2020年各省份平均消费额四舍五入保留两位小数和地区平均消费额四舍五入保留两位小数的对比情况柱状图展示平均消费额最高的5个省份折线图展示这5个省所在的地区的平均消费额变化同时将用于图表展示的数据结构在浏览器的console中进行打印输出将图表可视化结果和浏览器console打印结果分别截图并粘贴至客户端桌面【Release\任务E提交结果.docx】中对应的任务序号下。 任务F综合分析10分
子任务一Kafka中的数据如何保证不丢失 在任务D中使用到了Kafka将内容编写至客户端桌面【Release\任务F提交结果.docx】中对应的任务序号下。 子任务二请描述HBase的rowkey设计原则。 请简要概述HBase的rowkey的重要性并说明在设计rowkey时应遵循哪些原则将内容编写至客户端桌面【Release\任务F提交结果.docx】中对应的任务序号下。 子任务三Spark的数据本地性有哪几种分别表示什么 在任务B与任务C中使用到了Spark其中有些JOB运行较慢有些较快一部分原因与数据位置和计算位置相关其数据本地性可以在SparkUI中查看到。请问Spark的数据本地性有哪几种英文分别表示的含义是什么中文将内容编写至客户端桌面【Release\任务F提交结果.docx】中对应的任务序号下。