麻豆黑色丝袜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)前位置:首頁(yè)  >  技術(shù)干貨  > 大數(shù)據(jù)面試題:用戶(hù)畫(huà)像、推薦系統(tǒng)、Flink實(shí)時(shí)數(shù)倉(cāng)、準(zhǔn)實(shí)時(shí)數(shù)倉(cāng)中常見(jiàn)問(wèn)題都有什么?

大數(shù)據(jù)面試題:用戶(hù)畫(huà)像、推薦系統(tǒng)、Flink實(shí)時(shí)數(shù)倉(cāng)、準(zhǔn)實(shí)時(shí)數(shù)倉(cāng)中常見(jiàn)問(wèn)題都有什么?

來(lái)源:千鋒教育
發(fā)布人:syq
時(shí)間: 2022-06-29 16:24:20 1656491060

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

  用戶(hù)畫(huà)像

  1. 我們?cè)谶x擇如何存儲(chǔ)用戶(hù)標(biāo)簽時(shí),遇到了問(wèn)題(標(biāo)簽查詢(xún)速度慢,并且構(gòu)建不夠靈活,標(biāo)簽更新和刪除比較麻煩),比如之前用HDFS或者ES存儲(chǔ),后來(lái)切換為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)簽的查詢(xún)效率 ` `HDFS [Presot,Impala]:` 標(biāo)簽的增加,刪除,更新不友好, 一個(gè)小變動(dòng),要重寫(xiě)整個(gè)`Parquet`, 寫(xiě)放大問(wèn)題。 查詢(xún)效率還可以,但是不夠優(yōu)秀。 支持查詢(xún)并發(fā)較小。 `ES:`標(biāo)簽的構(gòu)建的寫(xiě)入速度一般, 新增和修改標(biāo)簽需要對(duì)ES文檔結(jié)構(gòu)更新,ES的DSL語(yǔ)法不友好,有一定學(xué)習(xí)成本。查詢(xún)效率還算優(yōu)秀,同時(shí)支持高并發(fā)。 ES資源占用高,需要較好的硬件配置。 `ClickHouse[BitMap]` 標(biāo)簽可以并行構(gòu)建,查詢(xún)效率優(yōu)秀,標(biāo)簽的增加非常方便,標(biāo)簽的更新和刪除可以實(shí)現(xiàn),但是并不高效,并發(fā)查詢(xún)支持比Presto,Impala要好,但同樣不支持高并發(fā),能夠滿(mǎn)足大部分場(chǎng)景需求。注意兩點(diǎn)`1. BitMap存儲(chǔ)的是用戶(hù)ID 2. BitMap使用了RoaringBitMap, 解決BitMap空間占用問(wèn)題,不然1億這一個(gè)數(shù)也要占用11.9M空間`

  2. 如何構(gòu)建用戶(hù)的稠密向量的問(wèn)題

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

大數(shù)據(jù)面試題

  推薦系統(tǒng)

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

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

  2. 特征向量Load到HBase慢的問(wèn)題

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

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

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

  數(shù)倉(cāng)問(wèn)題

  1. Flink Watermark激增的問(wèn)題

  參考:http://coder.yihongyeyan.com/question/7, `里面有watermark 激增的場(chǎng)景說(shuō)明`。從這上面的我舉的例子,你應(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)問(wèn)題

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

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

  問(wèn)題產(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過(guò)高,計(jì)算延遲。 當(dāng)時(shí)出現(xiàn)這個(gè)問(wèn)題,比較苦惱,不知道什么原因,也沒(méi)有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)暴露給用戶(hù)了`yarn.scheduler.fair.assignmultiple` 默認(rèn)是true。`yarn.scheduler.fair.max.assign` 默認(rèn)是-1,就是無(wú)限制。 解決的方式是`yarn.scheduler.fair.max.assign` 設(shè)置為一個(gè)較小的值,比如2.

  更多關(guān)于大數(shù)據(jù)培訓(xùn)的問(wèn)題,歡迎咨詢(xún)千鋒教育在線名師。千鋒教育擁有多年IT培訓(xùn)服務(wù)經(jīng)驗(yàn),采用全程面授高品質(zhì)、高體驗(yàn)培養(yǎng)模式,擁有國(guó)內(nèi)一體化教學(xué)管理及學(xué)員服務(wù),助力更多學(xué)員實(shí)現(xiàn)高薪夢(mèng)想。

tags:
聲明:本站稿件版權(quán)均屬千鋒教育所有,未經(jīng)許可不得擅自轉(zhuǎn)載。
10年以上業(yè)內(nèi)強(qiáng)師集結(jié),手把手帶你蛻變精英
請(qǐng)您保持通訊暢通,專(zhuān)屬學(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
什么是PlatformIo?

PlatformIO是什么PlatformIO是一個(gè)全面的物聯(lián)網(wǎng)開(kāi)發(fā)平臺(tái),它為眾多硬件平臺(tái)和開(kāi)發(fā)環(huán)境提供了統(tǒng)一的工作流程,有效簡(jiǎn)化了開(kāi)發(fā)過(guò)程,并能兼容各種...詳情>>

2023-10-14 12:55:06
云快照與自動(dòng)備份有什么區(qū)別?

1、定義和目標(biāo)不同云快照的主要目標(biāo)是提供一種快速恢復(fù)數(shù)據(jù)的方法,它只記錄在快照時(shí)間點(diǎn)后的數(shù)據(jù)變化,而不是所有的數(shù)據(jù)。自動(dòng)備份的主要目標(biāo)...詳情>>

2023-10-14 12:48:59
服務(wù)器為什么要用Linux?

服務(wù)器為什么要用Linux作為服務(wù)器操作系統(tǒng)的優(yōu)選,Linux在眾多選擇中脫穎而出。Linux作為服務(wù)器操作系統(tǒng)的優(yōu)選,有其獨(dú)特的優(yōu)勢(shì)和特點(diǎn)。包括其...詳情>>

2023-10-14 12:34:11
ORM解決的主要問(wèn)題是什么?

ORM(對(duì)象關(guān)系映射)解決的主要問(wèn)題是將關(guān)系數(shù)據(jù)庫(kù)與面向?qū)ο缶幊讨g的映射困境。在傳統(tǒng)的關(guān)系數(shù)據(jù)庫(kù)中,數(shù)據(jù)以表格的形式存儲(chǔ),而在面向?qū)ο?..詳情>>

2023-10-14 12:26:19
Go為什么不支持三元運(yùn)算符?

Go為什么不支持三元運(yùn)算符Go語(yǔ)言是一種以簡(jiǎn)潔和有效性為目標(biāo)的編程語(yǔ)言,因此在設(shè)計(jì)過(guò)程中,Go的設(shè)計(jì)者刻意排除了一些他們認(rèn)為可能導(dǎo)致復(fù)雜性或...詳情>>

2023-10-14 12:12:36
主站蜘蛛池模板: 国产xxxx做受视频| 亚洲综合久久综合激情久久| 精品国产污污免费网站入口| 夜来香免费观看视频在线| 高清毛片免费看| 步兵精品手机在线观看| 久久综合色天天久久综合图片| 1卡2卡三卡4卡国产| 免费观看男人免费桶女人视频| 娇小xxxxx性开放| 菠萝蜜视频在线观看免费视频| 免费观看女子推理社| 最近的中文字幕视频完整| 四虎免费永久在线播放| 日本爽爽爽爽爽爽在线观看免| 国产在线不卡免费播放| 欧美aa在线| 果冻传媒91制片厂| 天天av天天翘天天综合网| 在线观看亚洲免费| 亚洲一区二区在线视频| 日韩欧美在线观看视频| 啊灬啊别停灬用力啊老师在线| 亚欧洲乱码专区视频| 国产日韩在线亚洲字幕中文| 2018av男人天堂| 中国一级片在线观看| 全彩熟睡侵犯h| 天堂久久久久va久久久久| 神宫寺奈绪jul055在线播放| 老婆bd电影| 特黄一级大片| 黑人巨大战冲田杏梨| 两个小姨子韩国| 四虎影视成人永久在线观看| 学校触犯×ofthedead| 日韩在线视频线视频免费网站| 野花日本中文版免费观看| 中文字幕在线高清| 国产悠悠视频在线播放| 韩国免费人成在线观看网站|