(全國職業(yè)技能比賽:高職)GZ033大數據應用開發(fā)賽題第04套.docx

(全國職業(yè)技能比賽:高職)GZ033大數據應用開發(fā)賽題第04套.docx

ID:83631039

大小:47.07 KB

頁數:21頁

時間:2024-09-03

上傳者:gjxwyhcr
(全國職業(yè)技能比賽:高職)GZ033大數據應用開發(fā)賽題第04套.docx_第1頁
(全國職業(yè)技能比賽:高職)GZ033大數據應用開發(fā)賽題第04套.docx_第2頁
(全國職業(yè)技能比賽:高職)GZ033大數據應用開發(fā)賽題第04套.docx_第3頁
(全國職業(yè)技能比賽:高職)GZ033大數據應用開發(fā)賽題第04套.docx_第4頁
(全國職業(yè)技能比賽:高職)GZ033大數據應用開發(fā)賽題第04套.docx_第5頁
(全國職業(yè)技能比賽:高職)GZ033大數據應用開發(fā)賽題第04套.docx_第6頁
(全國職業(yè)技能比賽:高職)GZ033大數據應用開發(fā)賽題第04套.docx_第7頁
(全國職業(yè)技能比賽:高職)GZ033大數據應用開發(fā)賽題第04套.docx_第8頁
(全國職業(yè)技能比賽:高職)GZ033大數據應用開發(fā)賽題第04套.docx_第9頁
(全國職業(yè)技能比賽:高職)GZ033大數據應用開發(fā)賽題第04套.docx_第10頁
資源描述:

《(全國職業(yè)技能比賽:高職)GZ033大數據應用開發(fā)賽題第04套.docx》由會員上傳分享,免費在線閱讀,更多相關內容在教育資源-天天文庫。

2023年全國職業(yè)院校技能大賽賽題第04套賽項名稱:大數據應用開發(fā)英文名稱:BigDataApplicationDevelopment賽項組別:高等職業(yè)教育組賽項編號:GZ03321 背景描述工業(yè)互聯網是工業(yè)全要素、全產業(yè)鏈、全價值鏈的全面連接,是人、機、物、工廠互聯互通的新型工業(yè)生產制造服務體系,是互聯網從消費領域向生產領域、從虛擬經濟向實體經濟拓展的核心載體,是建設現代化經濟體系、實現高質量發(fā)展和塑造全球產業(yè)競爭力的關鍵支撐,工業(yè)大數據則是工業(yè)互聯網實現工業(yè)要素互聯之后的核心價值創(chuàng)造者?隨著大數據行業(yè)的發(fā)展,工業(yè)數據收集呈現時間維度不斷延長、數據范圍不斷擴大、數據粒度不斷細化的趨勢?以上三個維度的變化使得企業(yè)所積累的數據量以加速度的方式在增加,最終構成了工業(yè)大數據的集合?為完成工業(yè)大數據分析工作,你所在的小組將應用大數據技術,以Scala作為整個項目的基礎開發(fā)語言,基于大數據平臺綜合利用Hudi、Spark、Flink、Vue.js等技術,對數據進行處理、分析及可視化呈現,你們作為該小組的技術人員,請按照下面任務完成本次工作。21 任務A:大數據平臺搭建(容器環(huán)境)(15分)環(huán)境說明:服務端登錄地址詳見各任務服務端說明。補充說明:宿主機及各容器節(jié)點可通過Asbru工具或SSH客戶端進行SSH訪問。子任務一:Hadoop完全分布式安裝配置本任務需要使用root用戶完成相關配置,安裝Hadoop需要配置前置環(huán)境。命令中要求使用絕對路徑,具體要求如下:1、從宿主機/opt目錄下將文件hadoop-3.1.3.tar.gz、jdk-8u212-linux-x64.tar.gz復制到容器Master中的/opt/software路徑中(若路徑不存在,則需新建),將Master節(jié)點JDK安裝包解壓到/opt/module路徑中(若路徑不存在,則需新建),將JDK解壓命令復制并粘貼至客戶端桌面【Release任務A提交結果.docx】中對應的任務序號下;2、修改容器中/etc/profile文件,設置JDK環(huán)境變量并使其生效,配置完畢后在Master節(jié)點分別執(zhí)行“java-version”和“javac”命令,將命令行執(zhí)行結果分別截圖并粘貼至客戶端桌面【Release任務A提交結果.docx】中對應的任務序號下;3、請完成host相關配置,將三個節(jié)點分別命名為master、slave1、slave2,并做免密登錄,用scp命令并使用絕對路徑從Master復制JDK解壓后的安裝文件到slave1、slave2節(jié)點(若路徑不存在,則需新建),并配置slave1、slave2相關環(huán)境變量,將全部scp復制JDK的命令復制并粘貼至客戶端桌面【Release任務A提交結果.docx】中對應的任務序號下;4、在Master將Hadoop解壓到/opt/module(若路徑不存在,則需新建)目錄下,并將解壓包分發(fā)至slave1、slave2中,其中master、slave1、slave221 節(jié)點均作為datanode,配置好相關環(huán)境,初始化Hadoop環(huán)境namenode,將初始化命令及初始化結果截圖(截取初始化結果日志最后20行即可)粘貼至客戶端桌面【Release任務A提交結果.docx】中對應的任務序號下;1、啟動Hadoop集群(包括hdfs和yarn),使用jps命令查看Master節(jié)點與slave1節(jié)點的Java進程,將jps命令與結果截圖粘貼至客戶端桌面【Release任務A提交結果.docx】中對應的任務序號下。子任務二:SparkonYarn安裝配置本任務需要使用root用戶完成相關配置,已安裝Hadoop及需要配置前置環(huán)境,具體要求如下:1、從宿主機/opt目錄下將文件spark-3.1.1-bin-hadoop3.2.tgz復制到容器Master中的/opt/software(若路徑不存在,則需新建)中,將Spark包解壓到/opt/module路徑中(若路徑不存在,則需新建),將完整解壓命令復制粘貼至客戶端桌面【Release任務A提交結果.docx】中對應的任務序號下;2、修改容器中/etc/profile文件,設置Spark環(huán)境變量并使環(huán)境變量生效,在/opt目錄下運行命令spark-submit--version,將命令與結果截圖粘貼至客戶端桌面【Release任務A提交結果.docx】中對應的任務序號下;3、完成onyarn相關配置,使用sparkonyarn的模式提交$SPARK_HOME/examples/jars/spark-examples_2.12-3.1.1.jar運行的主類為org.apache.spark.examples.SparkPi,將運行結果截圖粘貼至客戶端桌面【Release任務A提交結果.docx】中對應的任務序號下(截取Pi結果的前后各5行)。(運行命令為:spark-submit--masteryarn--classorg.apache.spark.examples.SparkPi$SPARK_HOME/examples/jars/spark-examples_2.12-3.1.1.jar)子任務三:Hudi安裝配置本任務需要使用root用戶完成相關配置,具體要求如下:1、從宿主機/opt目錄下將maven相關安裝包復制到容器Master中的21 /opt/software(若路徑不存在,則需新建)中,將maven相關安裝包解壓到/opt/module/目錄下(若路徑不存在,則需新建)并配置maven本地庫為/opt/software/RepMaven/,遠程倉庫使用阿里云鏡像,配置maven的環(huán)境變量,并在/opt/下執(zhí)行mvn-v,將運行結果截圖粘貼至客戶端桌面【Release任務A提交結果.docx】中對應的任務序號下;nexus-aliyuncentralNexusaliyunhttp://maven.aliyun.com/nexus/content/groups/public1、從宿主機/opt目錄下將Hudi相關安裝包復制到容器Master中的/opt/software(若路徑不存在,則需新建)中,將Hudi相關安裝包解壓到/opt/module/目錄下(若路徑不存在,則需新建),將命令復制并粘貼至客戶端桌面【Release任務A提交結果.docx】中對應的任務序號下;2、完成解壓安裝及配置后使用maven對Hudi進行構建(spark3.1,scala-2.12),編譯完成后與Spark集成,集成后使用spark-shell操作Hudi,將spark-shell啟動使用spark-shell運行下面給到的案例,并將最終查詢結果截圖粘貼至客戶端桌面【Release任務A提交結果.docx】中對應的任務序號下。(提示:編譯需要替換以下內容:1.將父模塊pom.xml替換;2.hudi-common/src/main/java/org/apache/hudi/common/table/log/block/HoodieParquetDataBlock.java替換;2.將packaging/hudi-spark-bundle/pom.xml替換;3.將packaging/hudi-utilities-bundle/pom.xml替換)importorg.apache.hudi.QuickstartUtils._importscala.collection.JavaConversions._importorg.apache.spark.sql.SaveMode._importorg.apache.hudi.DataSourceReadOptions._importorg.apache.hudi.DataSourceWriteOptions._importorg.apache.hudi.config.HoodieWriteConfig._importorg.apache.hudi.common.model.HoodieRecord21 valtableName="hudi_trips_cow"valbasePath="file:///tmp/hudi_trips_cow"valdataGen=newDataGeneratorvalinserts=convertToStringList(dataGen.generateInserts(10))valdf=spark.read.json(spark.sparkContext.parallelize(inserts,2))df.write.format("hudi").options(getQuickstartWriteConfigs).option(PRECOMBINE_FIELD_OPT_KEY,"ts").option(RECORDKEY_FIELD_OPT_KEY,"uuid").option(PARTITIONPATH_FIELD_OPT_KEY,"partitionpath").option(TABLE_NAME,tableName).mode(Overwrite).save(basePath)valtripsSnapshotDF=spark.read.format("hudi").load(basePath+"/*/*/*/*")tripsSnapshotDF.createOrReplaceTempView("hudi_trips_snapshot")spark.sql("selectfare,begin_lon,begin_lat,tsfromhudi_trips_snapshotwherefare>20.0").show()21 任務B:離線數據處理(25分)環(huán)境說明:服務端登錄地址詳見各任務服務端說明。補充說明:各節(jié)點可通過Asbru工具或SSH客戶端進行SSH訪問;主節(jié)點MySQL數據庫用戶名/密碼:root/123456(已配置遠程連接);Spark任務在Yarn上用Client運行,方便觀察日志。子任務一:數據抽取編寫Scala代碼,使用Spark將MySQL庫中表ChangeRecord,BaseMachine,MachineData,ProduceRecord全量抽取到Hudi的hudi_gy_ods庫(路徑為/user/hive/warehouse/hudi_gy_ods.db)中對應表changerecord,basemachine,machinedata,producerecord中。1、抽取MySQL的shtd_industry庫中ChangeRecord表的全量數據進入Hudi的hudi_gy_ods庫中表changerecord,字段排序、類型不變,分區(qū)字段為etldate,類型為String,且值為當前比賽日的前一天日期(分區(qū)字段格式為yyyyMMdd)。PRECOMBINE_FIELD使用ChangeEndTime,ChangeID和ChangeMachineID作為聯合主鍵。使用spark-sql的cli執(zhí)行selectcount(*)fromhudi_gy_ods.changerecord命令,將spark-sql的cli執(zhí)行結果分別截圖粘貼至客戶端桌面【Release任務B提交結果.docx】中對應的任務序號下;2、抽取MySQL的shtd_industry庫中BaseMachine表的全量數據進入Hudi的hudi_gy_ods庫中表basemachine,字段排序、類型不變,分區(qū)字段為etldate,類型為String,且值為當前比賽日的前一天日期(分區(qū)字段格式為yyyyMMdd)。PRECOMBINE_FIELD使用MachineAddDate,BaseMachineID為主鍵。使用spark-sql的cli執(zhí)行showpartitionshudi_gy_ods.b21 asemachine命令,將cli的執(zhí)行結果分別截圖粘貼至客戶端桌面【Release任務B提交結果.docx】中對應的任務序號下;1、抽取MySQL的shtd_industry庫中ProduceRecord表的全量數據進入Hudi的hudi_gy_ods庫中表producerecord,剔除ProducePrgCode字段,其余字段排序、類型不變,分區(qū)字段為etldate,類型為String,且值為當前比賽日的前一天日期(分區(qū)字段格式為yyyyMMdd)。PRECOMBINE_FIELD使用ProduceCodeEndTime,ProduceRecordID和ProduceMachineID為聯合主鍵。使用spark-sql的cli執(zhí)行showpartitionshudi_gy_ods.producerecord命令,將spark-sql的cli的執(zhí)行結果分別截圖粘貼至客戶端桌面【Release任務B提交結果.docx】中對應的任務序號下;2、抽取MySQL的shtd_industry庫中MachineData表的全量數據進入Hudi的hudi_gy_ods庫中表machinedata,字段排序、類型不變,分區(qū)字段為etldate,類型為String,且值為當前比賽日的前一天日期(分區(qū)字段格式為yyyyMMdd)。PRECOMBINE_FIELD使用MachineRecordDate,MachineRecordID為主鍵。使用spark-sql的cli執(zhí)行showpartitionshudi_gy_ods.machinedata命令,將cli的執(zhí)行結果分別截圖粘貼至客戶端桌面【Release任務B提交結果.docx】中對應的任務序號下。子任務二:數據清洗編寫Scala代碼,使用Spark將hudi_gy_ods庫中相應表數據全量抽取到Hudi的hudi_gy_dwd庫(路徑為/user/hive/warehouse/hudi_gy_dwd.db)中對應表中。表中有涉及到timestamp類型的,均要求按照yyyy-MM-ddHH:mm:ss,不記錄毫秒數,若原數據中只有年月日,則在時分秒的位置添加00:00:00,添加之后使其符合yyyy-MM-ddHH:mm:ss。1、抽取hudi_gy_ods庫中changerecord的全量數據進入Hudi的hudi_gy_dwd庫中表fact_change_record,分區(qū)字段為etldate且值與hudi_gy_ods庫的相對應表該值相等,并添加21 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均填寫當前操作時間,并進行數據類型轉換。dwd_modify_time作為preCombineField,change_id和change_machine_id作為聯合primaryKey。使用spark-sql的cli按照change_machine_id、change_id均為降序排序,查詢前1條數據,將結果截圖粘貼至客戶端桌面【Release任務B提交結果.docx】中對應的任務序號下;1、抽取hudi_gy_ods庫中basemachine的全量數據進入Hudi的hudi_gy_dwd庫中表dim_machine。分區(qū)字段為etldate且值與hudi_gy_ods庫的相對應表該值相等,并添加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均填寫當前操作時間,并進行數據類型轉換。dwd_modify_time作為preCombineField,Base_machine_id作為primaryKey。使用spark-sql的cli按照Base_machine_id升序排序,查詢dim_machine前2條數據,將結果截圖粘貼至客戶端桌面【Release任務B提交結果.docx】中對應的任務序號下;2、抽取hudi_gy_ods庫中producerecord的全量數據進入Hudi的hudi_gy_dwd庫中表fact_produce_record,分區(qū)字段為etldate且值與hudi_gy_ods庫的相對應表該值相等,并添加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均填寫當前操作時間,并進行數據類型轉換。dwd_modify_time作為preCombineField,produce_record_id和produce_machine_id作為聯合primaryKey。使用spark-sql的cli按照produce_machine_id、produce_record_id均為升序排序,查詢fact_produce_record前1條數據,將結果截圖粘貼至客戶端桌面【Release任務B提交結果.docx】中對應的任務序號下;3、抽取hudi_gy_ods庫中machinedata的全量數據進入Hudi的hudi_gy_dwd庫中表fact_machine_data。分區(qū)字段為etldate且值與hudi_gy_ods庫的相對應表該值相等,并添加21 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均填寫當前操作時間,并進行數據類型轉換。dwd_modify_time作為preCombineField,machine_record_id作為primaryKey。使用spark-sql的cli按照machine_id、machine_record_id均為降序排序,查詢前1條數據,將結果截圖粘貼至客戶端桌面【Release任務B提交結果.docx】中對應的任務序號下。子任務三:指標計算1、本任務基于以下2、3、4小題完成,使用DolphinScheduler完成第2、3、4題任務代碼的調度。工作流要求,使用shell輸出“開始”作為工作流的第一個job(job1),2、3、4題任務為并行任務且它們依賴job1的完成(命名為job2、job3、job4),job2、job3、job4完成之后使用shell輸出“結束”作為工作流的最后一個job(endjob),endjob依賴job2、job3、job4,并將最終任務調度完成后的工作流截圖,將截圖粘貼至客戶端桌面【Release任務B提交結果.docx】中對應的任務序號下;2、編寫Scala代碼,使用Spark根據hudi_gy_dwd層的fact_change_record表統(tǒng)計每個月(change_start_time的月份)、每個設備、每種狀態(tài)的時長,若某狀態(tài)當前未結束(即change_end_time值為空)則該狀態(tài)不參與計算。計算結果存入ClickHouse數據庫shtd_industry的machine_state_time表中(表結構如下),然后在Linux的ClickHouse命令行中根據設備id、狀態(tài)持續(xù)時長均為降序排序,查詢出前10條,將SQL語句復制粘貼至客戶端桌面【Release任務B提交結果.docx】中對應的任務序號下,將執(zhí)行結果截圖粘貼至客戶端桌面【Release任務B提交結果.docx】中對應的任務序號下;字段類型中文含義備注machine_idint設備id21 change_record_statevarchar狀態(tài)duration_timevarchar持續(xù)時長(秒)當月該狀態(tài)的時長和yearint年狀態(tài)產生的年monthint月狀態(tài)產生的月1、編寫Scala代碼,使用Spark根據hudi_gy_dwd層的fact_change_record表關聯dim_machine表統(tǒng)計每個車間中所有設備運行時長(即設備狀態(tài)為“運行”)的中位數在哪個設備(為偶數時,兩條數據原樣保留輸出),若某個設備運行狀態(tài)當前未結束(即change_end_time值為空)則該狀態(tài)不參與計算,計算結果存入ClickHouse數據庫shtd_industry的machine_running_median表中(表結構如下),然后在Linux的ClickHouse命令行中根據所屬車間、設備id均為降序排序,查詢出前5條數據,將SQL語句復制粘貼至客戶端桌面【Release任務B提交結果.docx】中對應的任務序號下,將執(zhí)行結果截圖粘貼至客戶端桌面【Release任務B提交結果.docx】中對應的任務序號下;字段類型中文含義備注machine_idint設備idmachine_factoryint所屬車間total_running_timeint運行總時長結果以秒為單位21 1、編寫Scala代碼,使用Spark根據hudi_gy_dwd層的fact_produce_record表,基于全量歷史數據計算各設備生產一個產品的平均耗時,produce_code_end_time值為1900-01-0100:00:00的數據為臟數據,需要剔除(注:fact_produce_record表中,一條數據代表加工一個產品,produce_code_start_time字段為開始加工時間,produce_code_end_time字段為完成加工時間),將設備每個產品的耗時與該設備平均耗時作比較,保留耗時高于平均值的產品數據,將得到的數據寫入ClickHouse數據庫shtd_industry的machine_produce_per_avgtime表中(表結構如下),然后在Linux的ClickHouse命令行中根據設備id降序排序查詢前3條數據,將SQL語句復制粘貼至客戶端桌面【Release任務B提交結果.docx】中對應的任務序號下,將執(zhí)行結果截圖粘貼至客戶端桌面【Release任務B提交結果.docx】中對應的任務序號下;machine_produce_per_avgtime:字段類型中文含義備注produce_record_idint生產記錄id每生產一件產品產生一條數據produce_machine_idint設備idproducetimeint該產品耗時produce_per_avgtimeint設備生產一個產品平均耗時單位:秒21 任務C:數據挖掘(10分)環(huán)境說明:服務端登錄地址詳見各任務服務端說明。補充說明:各節(jié)點可通過Asbru工具或SSH客戶端進行SSH訪問;主節(jié)點MySQL數據庫用戶名/密碼:root/123456(已配置遠程連接);Spark任務在Yarn上用Client運行,方便觀察日志。該任務均使用Scala編寫,利用Spark相關庫完成。子任務一:特征工程1、根據hudi_gy_dwd庫中fact_machine_data表(或MySQL的shtd_industry庫中MachineData表),根據以下要求轉換:獲取最大分區(qū)(MySQL不用考慮)的數據后,首先解析列machine_record_data(MySQL中為MachineRecordData)的數據(數據格式為xml,采用dom4j解析,解析demo在客戶端/home/ubuntu/Documents目錄下),并獲取每條數據的主軸轉速,主軸倍率,主軸負載,進給倍率,進給速度,PMC程序號,循環(huán)時間,運行時間,有效軸數,總加工個數,已使用內存,未使用內存,可用程序量,注冊程序量等相關的值(若該條數據沒有相關值,則按下表設置默認值),同時轉換machine_record_state字段的值,若值為報警,則填寫1,否則填寫0,以下為表結構,將數據保存在Hive的dwd.fact_machine_learning_data,使用cli按照machine_record_id升序排序,查詢dwd.fact_machine_learning_data前1條數據,將結果截圖粘貼至客戶端桌面【Release任務C提交結果.docx】中對應的任務序號下。dwd.fact_machine_learning_data表結構:21 字段類型中文含義備注machine_record_idint主鍵machine_iddouble設備idmachine_record_statedouble設備狀態(tài)默認0.0machine_record_mainshaft_speeddouble主軸轉速默認0.0machine_record_mainshaft_multipleratedouble主軸倍率默認0.0machine_record_mainshaft_loaddouble主軸負載默認0.0machine_record_feed_speeddouble進給倍率默認0.0machine_record_feed_multipleratedouble進給速度默認0.0machine_record_pmc_codedoublePMC程序號默認0.0machine_record_circle_timedouble循環(huán)時間默認0.0machine_record_run_timedouble運行時間默認0.0machine_record_effective_shaftdouble有效軸數默認0.0machine_record_amount_processdouble總加工個數默認0.0machine_record_use_memorydouble已使用內存默認0.0machine_record_free_memorydouble未使用內存默認0.0machine_record_amount_use_codedouble可用程序量默認0.0machine_record_amount_free_codedouble注冊程序量默認0.0machine_record_datetimestamp記錄日期dwd_insert_userstringdwd_insert_timetimestampdwd_modify_userstringdwd_modify_timetimestamp21 子任務二:報警預測1、根據子任務一的結果,建立隨機森林(隨機森林相關參數可自定義,不做限制),使用子任務一的結果訓練隨機森林模型,然后再將dwd.fact_machine_learning_data_test(該表字段含義與dwd.fact_machine_learning_data表相同,machine_record_state列值為空,表結構自行查看)轉成向量,預測其是否報警將結果輸出到MySQL數據庫shtd_industry中的ml_result表中(表結構如下)。在Linux的MySQL命令行中查詢出machine_record_id為1、8、20、28和36的5條數據,將SQL語句復制并粘貼至客戶端桌面【Release任務C提交結果.docx】中對應的任務序號下,將執(zhí)行結果截圖粘貼至客戶端桌面【Release任務C提交結果.docx】中對應的任務序號下。ml_result表結構:字段類型中文含義備注machine_record_idint主鍵machine_record_statedouble設備狀態(tài)報警為1,其他狀態(tài)則為021 任務D:數據采集與實時計算(20分)環(huán)境說明:服務端登錄地址詳見各任務服務端說明。補充說明:各節(jié)點可通過Asbru工具或SSH客戶端進行SSH訪問;Flink任務在Yarn上用perjob模式(即Job分離模式,不采用Session模式),方便Yarn回收資源。子任務一:實時數據采集1、在主節(jié)點使用Flume采集/data_log目錄下實時日志文件中的數據,將數據存入到Kafka的Topic中(Topic名稱分別為ChangeRecord、ProduceRecord和EnvironmentData,分區(qū)數為4),將Flume采集ChangeRecord主題的配置截圖粘貼至客戶端桌面【Release任務D提交結果.docx】中對應的任務序號下;2、編寫新的Flume配置文件,將數據備份到HDFS目錄/user/test/flumebackup下,要求所有主題的數據使用同一個Flume配置文件完成,將Flume的配置截圖粘貼至客戶端桌面【Release任務D提交結果.docx】中對應的任務序號下。子任務二:使用Flink處理Kafka中的數據編寫Scala工程代碼,使用Flink消費Kafka中的數據并進行相應的數據統(tǒng)計計算。1、使用Flink消費Kafka中ProduceRecord主題的數據,統(tǒng)計在已經檢驗的產品中,各設備每5分鐘生產產品總數,將結果存入Redis中,key值為“totalproduce”,value值為“設備id,最近五分鐘生產總數”。使用rediscli以HGETALLkey方式獲取totalproduce值,將結果截圖粘貼至客戶端桌面【Release任務D提交結果21 .docx】中對應的任務序號下,需兩次截圖,第一次截圖和第二次截圖間隔5分鐘以上,第一次截圖放前面,第二次截圖放后面;注:ProduceRecord主題,生產一個產品產生一條數據;change_handle_state字段為1代表已經檢驗,0代表未檢驗;時間語義使用ProcessingTime。1、使用Flink消費Kafka中ChangeRecord主題的數據,當某設備30秒狀態(tài)連續(xù)為“預警”,輸出預警信息。當前預警信息輸出后,最近30秒不再重復預警(即如果連續(xù)1分鐘狀態(tài)都為“預警”只輸出兩次預警信息),將結果存入Redis中,key值為“warning30sMachine”,value值為“設備id,預警信息”。使用rediscli以HGETALLkey方式獲取warning30sMachine值,將結果截圖粘貼至客戶端桌面【Release任務D提交結果.docx】中對應的任務序號下,需兩次截圖,第一次截圖和第二次截圖間隔1分鐘以上,第一次截圖放前面,第二次截圖放后面;注:時間使用change_start_time字段,忽略數據中的change_end_time不參與任何計算。忽略數據遲到問題。Redis的value示例:115,2022-01-0109:53:10:設備115連續(xù)30秒為預警狀態(tài)請盡快處理!(2022-01-0109:53:10為change_start_time字段值,中文內容及格式必須為示例所示內容。)2、使用Flink消費Kafka中ChangeRecord主題的數據,統(tǒng)計每3分鐘各設備狀態(tài)為“預警”且未處理的數據總數,將結果存入MySQL數據庫shtd_industry的threemin_warning_state_agg表中(追加寫入,表結構如下)。請將任務啟動命令復制粘貼至客戶端桌面【Release任務D提交結果.docx】中對應的任務序號下,啟動且數據進入后按照設備id升序排序查詢threemin_warning_state_agg表進行截圖,第一次截圖后等待3分鐘再次查詢并截圖,將結果截圖粘貼至客戶端桌面【Release任務D提交結果.docx】中對應的任務序號下。21 threemin_warning_state_agg表:字段類型中文含義change_machine_idint設備idtotalwarningint未被處理預警的數據總數window_end_timevarchar窗口結束時間(yyyy-MM-ddHH:mm:ss)注:時間語義使用ProcessingTime。21 任務E:數據可視化(15分)環(huán)境說明:數據接口地址及接口描述詳見各任務服務端說明。注:所有數據排序按照接口返回數據順序處理即可,不用特意排序。子任務一:用柱狀圖展示設備歷史各個狀態(tài)持續(xù)時長編寫Vue工程代碼,根據接口,用柱狀圖展示接口所有數據中各設備各個狀態(tài)持續(xù)時長(秒),同時將用于圖表展示的數據結構在瀏覽器的console中進行打印輸出,將圖表可視化結果和瀏覽器console打印結果分別截圖并粘貼至客戶端桌面【Release任務E提交結果.docx】中對應的任務序號下。子任務二:用柱狀圖展示每日所有車間各設備平均運行時長編寫Vue工程代碼,根據接口,用柱狀圖展示每日所有車間各設備平均運行時長(秒,四舍五入保留兩位小數),每日里的所有設備按照接口返回的數據順序展示即可,同時將用于圖表展示的數據結構在瀏覽器的console中進行打印輸出,將圖表可視化結果和瀏覽器console打印結果分別截圖并粘貼至客戶端桌面【Release任務E提交結果.docx】中對應的任務序號下。子任務三:用折線圖展示某設備每日運行時長編寫Vue工程代碼,根據接口,用折線圖展示設備OP160每日的運行時長(秒),同時將用于圖表展示的數據結構在瀏覽器的console中進行打印輸出,將圖表可視化結果和瀏覽器console打印結果分別截圖并粘貼至客戶端桌面【Release任務E提交結果.docx】中對應的任務序號下。子任務四:用條形圖展示每日各設備產量21 編寫Vue工程代碼,根據接口,用條形圖展示每日各設備產量,同時將用于圖表展示的數據結構在瀏覽器的console中進行打印輸出,將圖表可視化結果和瀏覽器console打印結果分別截圖并粘貼至客戶端桌面【Release任務E提交結果.docx】中對應的任務序號下。子任務五:用折柱混合圖展示設備日均產量和所在車間日均產量編寫Vue工程代碼,根據接口,用折柱混合圖展示設備日均產量(四舍五入保留兩位小數)和所在車間日均產量(四舍五入保留兩位小數),其中柱狀圖展示各設備的日均產量,折線圖展示該設備所在車間的日均產量,同時將用于圖表展示的數據結構在瀏覽器的console中進行打印輸出,將圖表可視化結果和瀏覽器console打印結果分別截圖并粘貼至客戶端桌面【Release任務E提交結果.docx】中對應的任務序號下。21 任務F:綜合分析(10分)子任務一:請簡述ZooKeeper的選舉策略,leader和follower的區(qū)別。請概述ZooKeeper的選舉策略、leader和follower的區(qū)別,將內容編寫至客戶端桌面【Release任務F提交結果.docx】中對應的任務序號下。子任務二:請簡述MapReduce的Shuffle過程。請簡述MapReduce的Shuffle過程,將內容編寫至客戶端桌面【Release任務F提交結果.docx】中對應的任務序號下。子任務三:請根據可視化圖表做以下分析。如果你是工廠技術人員,通過可視化結果你將會對工廠設備優(yōu)化(不限于該角度,考生自行擴展分析角度)做出哪些建議,將內容編寫至客戶端桌面【Release任務F提交結果.docx】中對應的任務序號下。21

當前文檔最多預覽五頁,下載文檔查看全文

此文檔下載收益歸作者所有

當前文檔最多預覽五頁,下載文檔查看全文
溫馨提示:
1. 部分包含數學公式或PPT動畫的文件,查看預覽時可能會顯示錯亂或異常,文件下載后無此問題,請放心下載。
2. 本文檔由用戶上傳,版權歸屬用戶,天天文庫負責整理代發(fā)布。如果您對本文檔版權有爭議請及時聯系客服。
3. 下載前請仔細閱讀文檔內容,確認文檔內容符合您的需求后進行下載,若出現內容與標題不符可向本站投訴處理。
4. 下載文檔時可能由于網絡波動等原因無法下載或下載錯誤,付費完成后未能成功下載的用戶請聯系客服處理。
最近更新
更多
大家都在看
近期熱門
關閉