麻豆黑色丝袜jk制服福利网站-麻豆精品传媒视频观看-麻豆精品传媒一二三区在线视频-麻豆精选传媒4区2021-在线视频99-在线视频a

千鋒教育-做有情懷、有良心、有品質(zhì)的職業(yè)教育機(jī)構(gòu)

手機(jī)站
千鋒教育

千鋒學(xué)習(xí)站 | 隨時(shí)隨地免費(fèi)學(xué)

千鋒教育

掃一掃進(jìn)入千鋒手機(jī)站

領(lǐng)取全套視頻
千鋒教育

關(guān)注千鋒學(xué)習(xí)站小程序
隨時(shí)隨地免費(fèi)學(xué)習(xí)課程

當(dāng)前位置:首頁  >  技術(shù)干貨  > 大數(shù)據(jù)筆試題:運(yùn)營(yíng)筆試題(一)

大數(shù)據(jù)筆試題:運(yùn)營(yíng)筆試題(一)

來源:千鋒教育
發(fā)布人:syq
時(shí)間: 2022-06-08 14:41:00 1654670460

  1.hive SQL的分組topN問題,成績(jī)表S,字段sid,cid,score,求每門課程的前2名與后2名sid。

  2.ES中游標(biāo)和快照有什么區(qū)別?

  3.用戶畫像、推薦系統(tǒng)、Flink實(shí)時(shí)數(shù)倉(cāng)、準(zhǔn)實(shí)時(shí)數(shù)倉(cāng)中,遇到的棘手的問題都有什么?

  4.用戶畫像系統(tǒng)中遇到的比較難的問題是什么?

  5.如何構(gòu)建用戶的稠密向量的問題?

  答案區(qū)

  1.下面是我的做法,求個(gè)更好的

  select sid from

  (select sid,

  rank() over(partition by cid order by score) as RA

  from S) as A

  union

  (select sid,

  rank() over(partition by cid order by score DESC) as RB

  from S) as B

  where RA<3 and RB<3

  2.它們兩個(gè)沒有什么可比性, 在深分頁場(chǎng)景下我們不能使用(from+size)的方式查詢ES,因?yàn)樾阅芴?from+size 方式會(huì)從每個(gè)分片取出from+size大小的數(shù)據(jù),讓后在協(xié)調(diào)節(jié)點(diǎn)做Merge返回,分頁越深協(xié)需要處理的數(shù)據(jù)量越大)。一般使用`scroll`方式解決深分頁問題,`scroll`在初始化階段會(huì)對(duì)查詢數(shù)據(jù)生成`快照(不可變的數(shù)據(jù)集,不受索引的更新,刪除的影響,單維護(hù)這個(gè)快照是需要耗費(fèi)資源的)`,之后的查詢都會(huì)對(duì)快照數(shù)據(jù)根據(jù)`scroll_id`進(jìn)行遍歷查詢。

  3.用戶畫像

  我們?cè)谶x擇如何存儲(chǔ)用戶標(biāo)簽時(shí),遇到了問題(標(biāo)簽查詢速度慢,并且構(gòu)建不夠靈活,標(biāo)簽更新和刪除比較麻煩),比如之前用HDFS或者ES存儲(chǔ),后來切換為ClikcHouse,并用BitMap存儲(chǔ),原因如下:

  針對(duì)標(biāo)簽的表示形式,存儲(chǔ)方式有很多,結(jié)構(gòu)為`寬表,BitMap` 都可以,存儲(chǔ)選擇`HDFS,ES,ClickHouse 等` 也都可以,需要衡量的有兩點(diǎn):

  1)標(biāo)簽構(gòu)建的靈活性和構(gòu)建速度

  2)標(biāo)簽的查詢效率 ` `HDFS [Presot,Impala]:` 標(biāo)簽的增加,刪除,更新不友好, 一個(gè)小變動(dòng),要重寫整個(gè)`Parquet`, 寫放大問題。 查詢效率還可以,但是不夠優(yōu)秀。 支持查詢并發(fā)較小。 `ES:`標(biāo)簽的構(gòu)建的寫入速度一般, 新增和修改標(biāo)簽需要對(duì)ES文檔結(jié)構(gòu)更新,ES的DSL語法不友好,有一定學(xué)習(xí)成本。查詢效率還算優(yōu)秀,同時(shí)支持高并發(fā)。 ES資源占用高,需要較好的硬件配置。 `ClickHouse[BitMap]` 標(biāo)簽可以并行構(gòu)建,查詢效率優(yōu)秀,標(biāo)簽的增加非常方便,標(biāo)簽的更新和刪除可以實(shí)現(xiàn),但是并不高效,并發(fā)查詢支持比Presto,Impala要好,但同樣不支持高并發(fā),能夠滿足大部分場(chǎng)景需求。注意兩點(diǎn):

  a. BitMap存儲(chǔ)的是用戶ID

  b. BitMap使用了RoaringBitMap, 解決BitMap空間占用問題,不然1億這一個(gè)數(shù)也要占用11.9M空間`

  如何構(gòu)建用戶的稠密向量的問題?

  如果我們直接將用戶的標(biāo)簽轉(zhuǎn)換為稀疏向量來存儲(chǔ),對(duì)于類別標(biāo)簽使用`one-hot`編碼,但這樣會(huì)出現(xiàn)維度爆炸的問題,向量過于稀疏,向量之間的余弦相似度計(jì)算結(jié)果基本沒有意義,根本無法實(shí)現(xiàn)用戶相似度的計(jì)算。所以就開始思考如何將用戶表示為轉(zhuǎn)換為稠密向量,經(jīng)過調(diào)研發(fā)現(xiàn),Word2Vec可以將詞轉(zhuǎn)換為稠密向量,同時(shí)借助Word2Vec思想,也可以將物品轉(zhuǎn)換為向量Item2Vec,比如將一個(gè)Session內(nèi),用戶購(gòu)買的物品或者點(diǎn)擊的物品列表,看成是一句話,每個(gè)物品看成是一個(gè)單詞,就可以借助Word2Vec的思想將物品轉(zhuǎn)換為稠密向量表示。(這里注意如果是文章,可以使用分詞,然后抽取關(guān)鍵詞,將詞通過Word2Vec轉(zhuǎn)換為向量的方式) ,我們?cè)賹⒂脩酎c(diǎn)擊或者購(gòu)買的物品列表中物品向量加和求平均,就可以得到用戶的稠密向量。后來發(fā)現(xiàn)通過ALS模型`矩陣分解`的方式也可以得到用戶的稠密向量,兩者`表達(dá)的用戶向量含義`是不同的,一個(gè)是有濃重的物品屬性特征的,一個(gè)是有協(xié)同特征的向量。但是都可以作為用戶的向量表示方式。

  推薦系統(tǒng)

  1)SparkML Pipline 訓(xùn)練模型通過PMML跨平臺(tái)部署時(shí)字符串轉(zhuǎn)向量的問題

  由于我們通過Pipline訓(xùn)練出來的排序模型,模型的輸入是之前存入HBase中向量(用戶和物品)字符串,當(dāng)我們使用`jpmml-sparkml` 這個(gè)類庫(kù)去生成PMML模型,進(jìn)行擴(kuò)平臺(tái)部署時(shí),發(fā)現(xiàn)無法正常生成PMML。 原因是因?yàn)閷?duì)于字符串轉(zhuǎn)向量這種`transformer操作` jpmml沒有支持,我們參照jpmml源碼的實(shí)現(xiàn)方式,做了自定義transformer的實(shí)現(xiàn)。原理是先自定義一個(gè)Spark ML的transform,然后再擴(kuò)展一個(gè)jpmml對(duì)應(yīng)的converter即可。

  2)特征向量Load到HBase慢的問題

  我們構(gòu)建出來的用戶特征向量和物品特征向量,最終是存儲(chǔ)到HBase中的,最初是使用HBase API寫入數(shù)據(jù),但是太慢了,整個(gè)數(shù)據(jù)的寫入要耗費(fèi)5~6個(gè)小時(shí),之后我們`使用了bulkLoad的方式`,直接通過使用Spark生成將數(shù)據(jù)`生成HFile文件`寫入到HDFS,然后使用blukLoad直接生成好的HFile文件mv過去即可,15分鐘完成。 更具體點(diǎn),首先我們把我們將要寫入hbase的rdd,按照設(shè)定的行鍵排序,之后將行鍵和值構(gòu)造一個(gè)HFile的KeyValue結(jié)構(gòu),設(shè)定outputformat 為HFileOutputFormat2,將生成的hfile數(shù)據(jù)寫入到hdfs,之后通過doBulkLoad方法將寫到HDFS上hfile數(shù)據(jù)移動(dòng)到hbase目錄中。(這些項(xiàng)目的代碼中都有)

  3)多路召回結(jié)果如何如何統(tǒng)一排序的問題

  因?yàn)槲覀儾捎昧硕喾N召回算法,比如ItemCF,ALS, 基于熱門,基于地域 等召回算法。 沒有召回算發(fā)的結(jié)果集我們是無法直接排序的,因?yàn)楦鱾€(gè)召回算法表達(dá)的含義是不同的,最開始不知道該怎么做,因此就是各個(gè)召回算法設(shè)定一個(gè)人為比例去取。 之后學(xué)習(xí)了解到可以加`一個(gè)排序模型`做這個(gè)事情,原理就是用戶向量和物品向量作為基礎(chǔ)特征,用戶是否點(diǎn)擊物品作為標(biāo)簽,訓(xùn)練一個(gè)排序模型(LR),只有將各路召回策略輸入排序模型重新排序即可。 # 注意如果你同時(shí)說1,3問題,注意順序

  數(shù)倉(cāng)問題

  1)Flink Watermark激增的問題

  從這上面的我舉的例子,你應(yīng)該知道這種情況發(fā)生的原因,是因?yàn)槲覀兂槿∈录录苯訙p去延遲時(shí)間造成,解決方式就是我們?cè)俪槿atermark時(shí),判斷一下事件中的時(shí)間和上次watermark的時(shí)間,如果兩者時(shí)間相差很大,我們就不更新watermark或者將watermark加上一個(gè)小值就可以了,一般選擇不更新。

  2)實(shí)時(shí)作業(yè)和離線作業(yè)的資源競(jìng)爭(zhēng)問題

  因?yàn)槲覀兘y(tǒng)一用Yarn做資源調(diào)度,實(shí)時(shí)作業(yè)Flink(Spark Streaming)和離線作業(yè)會(huì)調(diào)度到同一個(gè)機(jī)器上,集群相對(duì)空閑時(shí)沒什么問題,但是當(dāng)集群負(fù)載較高時(shí),尤其是晚上大批離線任務(wù)啟動(dòng),就會(huì)造成我們實(shí)時(shí)作業(yè)的某些Container所在機(jī)器負(fù)載過高,同時(shí)我們實(shí)時(shí)作業(yè)中如果有重計(jì)算邏輯,F(xiàn)link計(jì)算不過來,背壓產(chǎn)生,Kafka消費(fèi)延遲,數(shù)據(jù)積壓。解決這個(gè)問題的方法是,YARN Label,給YARN管理的機(jī)器打上標(biāo)簽,離線和實(shí)時(shí)分開,提交作業(yè)時(shí)指定Lable。

  3)實(shí)時(shí)作業(yè)調(diào)度集中的問題

  問題產(chǎn)生的背景是,當(dāng)提交一個(gè)作業(yè)時(shí)(Flink,Spark),作業(yè)不大,YARN上申請(qǐng)10個(gè)Container,發(fā)現(xiàn)10個(gè)Container都調(diào)度到一個(gè)節(jié)點(diǎn)上,或者大部分調(diào)度到一個(gè)節(jié)點(diǎn)上,幾個(gè)調(diào)度到另一個(gè)節(jié)點(diǎn),資源分配傾斜。 這樣造成如果我的作業(yè)是一個(gè)重計(jì)算的作業(yè),10Container都在一個(gè)節(jié)點(diǎn)上,CPU load過高,計(jì)算延遲。 當(dāng)時(shí)出現(xiàn)這個(gè)問題,比較苦惱,不知道什么原因,也沒有search到解決方案,最后只能去看源碼了(我們用的是Fair調(diào)度器),發(fā)現(xiàn)Container的分配策略是在一個(gè)NodeManger心跳中盡可能多的分配Container,這是為了提升調(diào)度的吞吐,但是源碼中有參數(shù)可以控制,是否一個(gè)心跳允許分配多個(gè)Container,以及一次心跳最大分配多少個(gè)Container給當(dāng)前的NodeManager.這個(gè)參數(shù)Yarn已經(jīng)暴露給用戶了`yarn.scheduler.fair.assignmultiple` 默認(rèn)是true。`yarn.scheduler.fair.max.assign` 默認(rèn)是-1,就是無限制。 解決的方式是`yarn.scheduler.fair.max.assign` 設(shè)置為一個(gè)較小的值,比如2.

  4.我們?cè)谶x擇如何存儲(chǔ)用戶標(biāo)簽時(shí),遇到了問題(標(biāo)簽查詢速度慢,并且構(gòu)建不夠靈活,標(biāo)簽更新和刪除比較麻煩),比如之前用HDFS或者ES存儲(chǔ),后來切換為ClikcHouse,并用BitMap存儲(chǔ),原因如下:

  針對(duì)標(biāo)簽的表示形式,存儲(chǔ)方式有很多,結(jié)構(gòu)為`寬表,BitMap` 都可以,存儲(chǔ)選擇`HDFS,ES,ClickHouse 等` 也都可以,需要衡量的有兩點(diǎn):

  1)標(biāo)簽構(gòu)建的靈活性和構(gòu)建速度

  2)標(biāo)簽的查詢效率

  `HDFS [Presot,Impala]:` 標(biāo)簽的增加,刪除,更新不友好, 一個(gè)小變動(dòng),要重寫整個(gè)`Parquet`,寫放大問題。 查詢效率還可以,但是不夠優(yōu)秀。 支持查詢并發(fā)較小。

  `ES:`標(biāo)簽的構(gòu)建的寫入速度一般, 新增和修改標(biāo)簽需要對(duì)ES文檔結(jié)構(gòu)更新,ES的DSL語法不友好,有一定學(xué)習(xí)成本。查詢效率還算優(yōu)秀,同時(shí)支持高并發(fā)。 ES資源占用高,需要較好的硬件配置。

  `ClickHouse[BitMap]` 標(biāo)簽可以并行構(gòu)建,查詢效率優(yōu)秀,標(biāo)簽的增加非常方便,標(biāo)簽的更新和刪除可以實(shí)現(xiàn),但是并不高效,并發(fā)查詢支持比Presto,Impala要好,但同樣不支持高并發(fā),能夠滿足大部分場(chǎng)景需求。

  注意兩點(diǎn):

  1. BitMap存儲(chǔ)的是用戶ID

  2. BitMap使用了RoaringBitMap, 解決BitMap空間占用問題,不然1億這一個(gè)數(shù)也要占用11.9M空間`

  5.如果我們直接將用戶的標(biāo)簽轉(zhuǎn)換為稀疏向量來存儲(chǔ),對(duì)于類別標(biāo)簽使用`one-hot`編碼,但這樣會(huì)出現(xiàn)維度爆炸的問題,向量過于稀疏,向量之間的余弦相似度計(jì)算結(jié)果基本沒有意義,根本無法實(shí)現(xiàn)用戶相似度的計(jì)算。所以就開始思考如何將用戶表示為轉(zhuǎn)換為稠密向量,經(jīng)過調(diào)研發(fā)現(xiàn),Word2Vec可以將詞轉(zhuǎn)換為稠密向量,同時(shí)借助Word2Vec思想,也可以將物品轉(zhuǎn)換為向量Item2Vec,比如將一個(gè)Session內(nèi),用戶購(gòu)買的物品或者點(diǎn)擊的物品列表,看成是一句話,每個(gè)物品看成是一個(gè)單詞,就可以借助Word2Vec的思想將物品轉(zhuǎn)換為稠密向量表示。(這里注意如果是文章,可以使用分詞,然后抽取關(guān)鍵詞,將詞通過Word2Vec轉(zhuǎn)換為向量的方式) ,我們?cè)賹⒂脩酎c(diǎn)擊或者購(gòu)買的物品列表中物品向量加和求平均,就可以得到用戶的稠密向量。后來發(fā)現(xiàn)通過ALS模型`矩陣分解`的方式也可以得到用戶的稠密向量,兩者`表達(dá)的用戶向量含義`是不同的,一個(gè)是有濃重的物品屬性特征的,一個(gè)是有協(xié)同特征的向量,但是都可以作為用戶的向量表示方式。

  更多關(guān)于大數(shù)據(jù)培訓(xùn)的問題,歡迎咨詢千鋒教育在線名師,如果想要了解我們的師資、課程、項(xiàng)目實(shí)操的話可以點(diǎn)擊咨詢課程顧問,獲取試聽資格來試聽我們的課程,在線零距離接觸千鋒教育大咖名師,讓你輕松從入門到精通。

tags:
聲明:本站稿件版權(quán)均屬千鋒教育所有,未經(jīng)許可不得擅自轉(zhuǎn)載。
10年以上業(yè)內(nèi)強(qiáng)師集結(jié),手把手帶你蛻變精英
請(qǐng)您保持通訊暢通,專屬學(xué)習(xí)老師24小時(shí)內(nèi)將與您1V1溝通
免費(fèi)領(lǐng)取
今日已有369人領(lǐng)取成功
劉同學(xué) 138****2860 剛剛成功領(lǐng)取
王同學(xué) 131****2015 剛剛成功領(lǐng)取
張同學(xué) 133****4652 剛剛成功領(lǐng)取
李同學(xué) 135****8607 剛剛成功領(lǐng)取
楊同學(xué) 132****5667 剛剛成功領(lǐng)取
岳同學(xué) 134****6652 剛剛成功領(lǐng)取
梁同學(xué) 157****2950 剛剛成功領(lǐng)取
劉同學(xué) 189****1015 剛剛成功領(lǐng)取
張同學(xué) 155****4678 剛剛成功領(lǐng)取
鄒同學(xué) 139****2907 剛剛成功領(lǐng)取
董同學(xué) 138****2867 剛剛成功領(lǐng)取
周同學(xué) 136****3602 剛剛成功領(lǐng)取
相關(guān)推薦HOT
藍(lán)v抖音小店怎么開通店鋪

藍(lán)v抖音小店是一個(gè)非常熱門的電商平臺(tái),它可以讓賣家在抖音上開設(shè)自己的店鋪,從而出售自己的商品。隨著抖音的不斷發(fā)展壯大,越來越多的賣家希...詳情>>

2023-10-08 14:51:53
抖音小店怎么更改類目名稱

抖音小店是現(xiàn)在非常火熱的一種網(wǎng)店形態(tài),許多小生意也從中獲得了收益。但是隨著經(jīng)營(yíng)時(shí)間的增長(zhǎng),小店也需要對(duì)自己的類目名稱進(jìn)行更改,因?yàn)檫@可...詳情>>

2023-10-08 14:46:50
抖音小店怎么合作賣貨

抖音小店作為一種新型的電商形式,近年來在國(guó)內(nèi)市場(chǎng)上逐漸火熱起來,成為了許多年輕人賺取收入的途徑之一。因?yàn)槎兑糇鳛楫?dāng)前最流行的短視頻平臺(tái)...詳情>>

2023-10-08 14:35:49
抖音小店運(yùn)營(yíng)和天貓區(qū)別是什么呢

隨著社交媒體的廣泛應(yīng)用,抖音小店開始走進(jìn)人們的生活,成為越來越多人的購(gòu)物選擇之一。而天貓作為國(guó)內(nèi)最具影響力的電商平臺(tái)之一,是許多電商從...詳情>>

2023-10-08 14:23:10
抖音小店在哪個(gè)界面進(jìn)入店鋪頁面

抖音小店,是指在抖音平臺(tái)上開設(shè)的個(gè)人或企業(yè)店鋪。隨著抖音用戶數(shù)的不斷增加,抖音小店越來越受到用戶的歡迎和喜愛。但是,如何進(jìn)入抖音小店的...詳情>>

2023-10-08 14:21:20
主站蜘蛛池模板: 美女扒了内裤让男人桶爽视频| 成人永久免费高清| 午夜精品在线免费观看| 国产免费怕怕免费视频观看| 四虎成人精品在永久免费| 精品国产三级在线观看| 在线免费h| 中文字幕1页| 国产深夜福利在线观看网站| 97就要干| 太深太粗太爽太猛了视频| 欧美一级www| 三年片在线影院| 啊!摁摁~啊!用力~快点视频免费| 优优里番acg※里番acg绅士黑| 亚洲欧美日韩成人一区在线| 羞羞视频在线播放| 最近中文字幕大全免费版在线| 久久青青草原精品影院| 外出电影| 特a级片| x8x8在线观看| 日日日操| 国产精品免费_区二区三区观看| 久草福利资源在线观看| 超碰8| 大学生一级片| 护士在办公室里被躁视频| 中国黄色一级大片| 波多野结衣大战黑鬼101| 欧美最猛性xxxxx69交| www.99精品| 欧美成人免费观看| 一区二区三区www| 日韩一级在线播放免费观看| 天堂中文字幕在线| 三级台湾电影在线| 青青国产线免观| 俺去ye| 波多野结衣最新电影| 好吊操在线视频|