版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
尚硅谷大數(shù)據(jù)技術(shù)之企業(yè)真題
(作者:尚硅谷大數(shù)據(jù)研發(fā)部)
版本:V2.0.0
1頭條面試題
1.1學(xué)長1
1)技術(shù)部分
(1)WordCount的實(shí)現(xiàn)過程
(2)MR與Spark的區(qū)別
(3)Spark在Client與在集群運(yùn)行的區(qū)別
(3)相同的SQL在HiveSql與SparkSQL的實(shí)現(xiàn)中,為什么Spark比Hadoop快
(4)自定義UDF
(5)設(shè)計HBase表需要注意的點(diǎn)
(6)HBase的hlog
(7)數(shù)據(jù)同樣存在HDFS,為什么HBase支持在線查詢
(8)數(shù)據(jù)從Hive中用SparkSql進(jìn)行操作有遇到什么問題?類似兼容性的問題。
(9)SparkStream與Strom,Flink與什么區(qū)別
(10)有三個map,一個reduce來做top10,哪種方法最優(yōu)。數(shù)據(jù)量特別大。
2)項(xiàng)目的架構(gòu)
(1)數(shù)據(jù)倉庫的模型設(shè)計
(2)數(shù)據(jù)倉庫的數(shù)據(jù)清洗
(3)業(yè)務(wù)建模、數(shù)據(jù)分析方法。
(4)數(shù)據(jù)倉庫是怎么設(shè)計的
(5)數(shù)倉規(guī)范設(shè)計哪些方面(字段、維度,存儲壓縮、數(shù)據(jù)保留機(jī)制)
(6)數(shù)倉質(zhì)量怎么監(jiān)控(數(shù)據(jù)質(zhì)量管理系統(tǒng),主鍵唯一、非空、數(shù)據(jù)波動)
(7)數(shù)倉主題分哪些(按照公司業(yè)務(wù)歸類:申請單、客戶信息、合同信息、放款、還款、
余額、逾期等)
(8)數(shù)倉拉鏈表的原理
(9)有沒有遇到數(shù)據(jù)傾斜的問題(場景、解決方式)
(10)數(shù)倉重點(diǎn)調(diào)度任務(wù)的保障方式(調(diào)度系統(tǒng)優(yōu)先級)
(11)數(shù)倉任務(wù)報錯和監(jiān)控(調(diào)度系統(tǒng)捕捉錯誤,電話短信告之值班人員)
1.2學(xué)長2
1)技術(shù)部分
(D自我介紹
(2)寫map-reduce,兩份數(shù)據(jù),一份是設(shè)備id+用戶id,一份是設(shè)備id+點(diǎn)擊的廣告+
點(diǎn)擊時間,找出每個用戶id每天10條最新的廣告點(diǎn)擊記錄
(3)說下多線程和多進(jìn)程
(4)fork命令
2)算法部分
(1)hashmap和map,hash實(shí)現(xiàn)原理(hashmap基于哈希,查找0(1);map基于樹,
查找0(logn);hash實(shí)現(xiàn)采用數(shù)組,偏移地址使得查找滿足O(1),無論是再哈希還是
鏈表法解決沖突,都需要存儲key和value)
1.3學(xué)長3
(1)MySQL引擎是什么,常用的是哪個innodb,知道原理嗎
(2)MySQL優(yōu)化,怎么建索引?選擇合適的字段屬性。對于某些文本字段可以設(shè)成
ENUM類型(MySQL中被當(dāng)做數(shù)值型數(shù)據(jù)來處理)。使用連接join代替子查詢。使用索
引:innodb支持哈希索引、b+樹索引、全文索引。
BTree和B+Tree
(3)手寫sql...
user_idlogin_date
120200325
查詢出用戶連續(xù)三天登錄的用戶
表A字段a值1234
表B字段b值11235
Join輸出的結(jié)果
Leftjoin輸出的結(jié)果
(4)Sqoop導(dǎo)入數(shù)據(jù)是增量怎么實(shí)現(xiàn)
(5)Flume事務(wù)實(shí)現(xiàn)
(6)Kafka消費(fèi)者角度考慮是拉取數(shù)據(jù)還是推送數(shù)據(jù)
(7)Kafka中的數(shù)據(jù)是有序的嗎
(8)Kafka數(shù)據(jù)推送失敗怎么處理
(9)Kafka保證生產(chǎn)者精準(zhǔn)一次
(10)沒有接受到ack才會出現(xiàn)聲明情況
(11)Kafka數(shù)據(jù)重復(fù)怎么處理
(12)SparkStreaming怎么里面實(shí)現(xiàn)精準(zhǔn)一次消費(fèi)
(13)如果。fTset沒有發(fā)送成功數(shù)據(jù)會怎樣
(14)Hive的優(yōu)化,項(xiàng)目中怎么優(yōu)化的(我說了join的一些優(yōu)化)
(15)然后就問了用MR怎么實(shí)現(xiàn)join,手寫代碼
(16)數(shù)據(jù)傾斜怎么處理的,
(17)碰到過oom情況嗎,什么原因?qū)е碌模趺刺幚淼?/p>
(18)Hbase有那些組件,
(19)什么場景會用到Hbase
(20)Hbase的讀寫流程,大概說一下
(21)Spark,任務(wù)提交的流程,
(22)Spark的兩種核心Shuffle,未優(yōu)化的和優(yōu)化的
(23)常用的數(shù)據(jù)結(jié)構(gòu)都有哪些,
怎么實(shí)現(xiàn)一個list,
怎么實(shí)現(xiàn)一個map
map一般什么場景使用
用過樹這種結(jié)構(gòu)嗎,什么場景用到的
(24)算法
字符串中第一個出現(xiàn)三次且僅出現(xiàn)三次
反轉(zhuǎn)一個鏈表
兩個鏈表第一次交叉的節(jié)點(diǎn),
(25)用Cannal監(jiān)控niysql之后,Scala怎么通過SparkStreaming去消費(fèi)的
(26)你們這個項(xiàng)目spark計算完之后存HBase怎么設(shè)計的
(27)HBase你們在項(xiàng)目中怎么設(shè)計rowkey的
1.4學(xué)長4
一面
(1)算法:給2個有序數(shù)組,合并成一個有序數(shù)組
延伸:給n個有序數(shù)組,合并成一個有序數(shù)組
(2)sql:
班級學(xué)號科目分?jǐn)?shù)
求某個班級總分最高的前五名
其他:
(3)精準(zhǔn)一次性消費(fèi)
(4)數(shù)據(jù)傾斜
二面
(1)主要問項(xiàng)目中是否丟數(shù)據(jù),怎么做的數(shù)據(jù)治理,監(jiān)控,問了一個算法,一個SQL
(2)算法是有序數(shù)組查找目標(biāo)值,我的做法是二分查找
(3)sql是給用戶的觀看視頻的時長,統(tǒng)計觀看時間在0-1分鐘的用戶數(shù),1-10分鐘的
用戶數(shù)
三面:
(1)選型為什么是spark而不是Flink,有哪些優(yōu)缺點(diǎn)(我項(xiàng)目上寫的spark)
(2)HBASE為什么快(列式存儲,內(nèi)存,Ism樹)
(3)消費(fèi)不到kafka數(shù)據(jù)怎么辦
(4)kafka怎么監(jiān)控,重分區(qū)
(5)gl回收器和cms區(qū)別
(6)jvm調(diào)整過沒有
1.5學(xué)長5
一面
(I)講述項(xiàng)目;
(2)rdd手寫key的top10,比如user_id,score,求成績的top10;
(3)spark-sql手寫個dateframe的demo
sql題目
字段:department_id,user_id,amount
求出來每個部門,每個人的薪資占部門薪資的比例,一個簡單的開窗函數(shù)實(shí)現(xiàn)的
手寫個udf函數(shù)?
表的字段report_date,map_info(map類型的數(shù)據(jù)類型,key是時間,value是金額),計
算大于當(dāng)前report_date的所有金額
增加字段report_date,map_info,count增加計算個count數(shù)量又怎么處理?
然后,說那你能寫個UDF函數(shù)實(shí)現(xiàn)嗎?
算法題:最長回文子串.給定一個字符串s,找到s中最長的回文子串
答案:
defget_longest_str(s):
n=len(s)
dp=[[False]*nfor_inrange(n)]
res_str=
foreleinrange(n):#ele代表i和j的間隔
foriinrange(n):#通過j=i+ele得到子串的結(jié)束位置,對角線斜著一行一行的
處理
j=i+ele
ifj>=n:
break
ifele==0:
dp[i][j]=True#單個元素為true
elifele==1:
dp[i][j]=(s[i]==s|jD#兩個元素判斷兩個值是否相等
else:
dp[il[j]=(dp[i+l][j-11ands[i]==s[j])#如果當(dāng)前元素相等,則比
較之前的元素
ifdp[ij[jjandele+1>len(res_str):#上次ans就是上次的j-i的長度
res_str=s[i:j+1]
returnresstr
1.6頭條獵頭
i.數(shù)據(jù)倉庫的基礎(chǔ)理論:建模,分層
2.flink容錯機(jī)制
3.spark調(diào)優(yōu),數(shù)據(jù)傾斜的處理方式
4.sql編程考察
5.算法:聚類kmeans
6.二叉樹算法
7.Java線程問題,包括線程安全,鎖,和線程池,問得很細(xì)。
8.Hbasse和mysql區(qū)別和存儲原理
9.kafl<a的底層原理,kafka如何保證全局消費(fèi)數(shù)據(jù)有序
lO.redis底層原理,如何預(yù)估數(shù)據(jù)量
"yarn底層原理,執(zhí)行流程和,yarn底層使用的算法
12.算法基礎(chǔ)建模有哪些,如何進(jìn)行數(shù)據(jù)挖掘
13.鏈表反轉(zhuǎn)排序leetcode原題
14.sql連續(xù)日期活躍用戶
15.hiveudfudafudtfspark
16.任務(wù)提交過程
17.回文函數(shù)
18.hive數(shù)據(jù)傾斜
19.redis跳表
2O.springioc
21.spring需要單例設(shè)置的參數(shù)
22.線程池幾個配置參數(shù)含義
23.mysql事務(wù)ab客戶端提交事務(wù)處理
24.storm實(shí)時
25.java并發(fā)包
26.hive如何轉(zhuǎn)mr
27.線程可重入理解
28.算法題一個LRU一個深度優(yōu)先搜索
29.flink的watermarkshardGroup的概念
3O.kafka如何保證消息的有序行高可用
31.數(shù)據(jù)傾斜如何處理
32.flinkwatermark和harries和checkpoint
33.flink和spark的區(qū)別
34.jvm常見的垃圾回收算法
35.heap怎么分帶的
36.kafka調(diào)優(yōu)
2騰訊面試題
2.1學(xué)長1
1)筆試部分
(1)有一表名t_sh_mtt_netdisk」og,從表名可以看出該表是什么業(yè)務(wù)的,是什么周期
粒度的表。
(2)怎么查看表結(jié)構(gòu),表創(chuàng)建語句?怎么查看表有哪些分區(qū)?怎么查看分區(qū)對應(yīng)hdfs
路徑?怎么計算某個分區(qū)的數(shù)據(jù)量大小?怎么計算某個分區(qū)的文件總數(shù)?
(3)有一hives磯,怎么計算這個sql會產(chǎn)生多少個map數(shù)?
(4)怎么查看hive有什么自帶函數(shù)?怎么查看函數(shù)的詳細(xì)信息?
(5)Hive支持哪些基木數(shù)據(jù)類型?
(6)請指出下面兩個語句讀取分區(qū)ds數(shù)據(jù)的不同
Select*fromtwhereds=20150101andprovince='gd'orprovince='ex'
Selectxfromlwhereds20150101and(province='gd'orprovince='ex')
(7)將字符串"keyl=valuel&key2=value2…keyn=valuen"進(jìn)行分割放到-一個字段里面,可
以查出任意一個keyx對應(yīng)的valuex值。請寫出查詢語句,并計算總共有多少個key值。
(8)用一個字符串比如"alblc”來測試某個函數(shù)比如split(用|分隔符將字符串進(jìn)行分割)
的語句
(9)a表和b表內(nèi)連接,a表為小表,只有2000行記錄
selecta.*fromaJoinbona.key=b.key
可以進(jìn)行怎樣的優(yōu)化
(10)a表leftjoinb表,b表為小衣,可以進(jìn)行怎樣優(yōu)化?
scleeta.*fromaleftjoinJoinbona.key=b.key
如果a為小表,可以怎樣優(yōu)化?
(11)請指出下面sql語句的區(qū)別
selecta.*fromaleftJoinbona.key=b.keyanda.ds=xxxandb.ds=xxx
selecta.*fromalefJoinbona.key=b.keyandb.ds=xxx
selecta.*fromalefJoinbona.key=b.keyandb.ds=xxxwherea.ds=xxx
Selecta.*fromaleftJoinbona.key=b.keywherea.ds=xxxandb.ds=xxx
(12)多表連按的寫法:a,.b,c三個表內(nèi)連接,連接字段都是key,怎樣寫連接語句?
(13)兩大表連接,發(fā)生了數(shù)據(jù)傾斜,有幾個reduce無法完成,怎么查找發(fā)生數(shù)據(jù)領(lǐng)
斜的原因?應(yīng)該怎樣優(yōu)化?
語句:selecttl.*,nvl(t2.x,l)fromtlleftjoint2ontl.guid=t2.guid
(14)兩大表連接,發(fā)生了數(shù)據(jù)傾斜。有一個reduce無法完成,檢直發(fā)現(xiàn)H中g(shù)uid="
的記錄有很多,其他guid都不重復(fù),這條語句該怎樣優(yōu)化?
語句:selecttl.*,nvl(t2.x,l)fromtlleftjoint2ontl.guid=t2.guid
(15)如何用hiveq!實(shí)現(xiàn)sqL中的exist/in子句
mysql語句如下:
SELECTa*FROMawherea.keyin(selectdstinctkeyfrombwherekeylike'filter%')
(16)sortby>distributeby>clusterby和orderby區(qū)別
注:可參考數(shù)據(jù)工廠的“幫助中心》集群hive》hive使用優(yōu)化》hive使用注意事項(xiàng)”
2.2學(xué)長2
1)筆試題
用HiveSQL實(shí)現(xiàn)
(1)全量用戶登員日志表t_login_all,字段信息ftime(登錄日期)、openid(登錄帳
號)新增用戶登錄日志表t_login_new,字段信息ftime(登錄日期)、openid(登錄帳號)
求每天新增用戶次日、7天、30天留存率。
(說明:7天留存是指當(dāng)天有登錄且第7天還登錄的用戶)
(2)消息流水表t_chatall,字段信息:
Ftime(日期)、send_userid(發(fā)消息用戶id)、receive.userid(接收消息用戶id)、
chatid(消息id)、send.time(發(fā)消息時間)
用戶登錄流水日志表t」ogin_all,字段信息:
Ftime(日期)、user__id(用戶id)>login_id(登錄id)>login_loc(登錄區(qū)服)、k>gin_time
(登錄時間)
求:每天有收發(fā)消息用戶最近登錄時間、登錄區(qū)服,輸出ftime,userjd,login」oc,
login_time
用Sparkcore實(shí)現(xiàn),寫Scala腳本
1reduceByKey()>groupByKey()有什么區(qū)別?
2、DataFrame和RDD有什么區(qū)別?
3、使用累加器,對數(shù)組Array(l,2,3,4)每個元素實(shí)現(xiàn)累加操作,最后打印輸出求和結(jié)果。
4、現(xiàn)有文件file.txt,文件格式如下
Order_id,user_id,payment,productid
1、1768,50,155
2、1218,600,211
3、2239,788,242
4、3101,288,599
5、4899,25,230
6、2311,890,981
求Top10個payment字段的值
2.3學(xué)長3
1)技術(shù)部分
(1)我看你上面寫了你會Spark,那你用Spark寫一下剛剛那道題的代碼(第6題),
不能用SparkSQL
(2)我看你上面有寫到熟悉Hive原理和優(yōu)化,你說一下怎么優(yōu)化
(3)優(yōu)化有說到語句優(yōu)化,然后又說回到pv和uv那個問題,假如說讓你優(yōu)化你怎么
優(yōu)化(我代碼里面有count(distinctid)uv,)
(4)問了一些Kaflca的,我只記得一點(diǎn)點(diǎn),問我數(shù)據(jù)會不會重復(fù)消費(fèi),什么情況下會
重復(fù)消費(fèi)
(5)在Hive執(zhí)行語句的時候如果很慢,什么原因造成
我有提到數(shù)據(jù)傾斜的問題,他又問怎么解決數(shù)據(jù)傾斜
2)項(xiàng)目部分
(1)讓你挑一個比較有亮點(diǎn)的項(xiàng)目詳細(xì)說
(2)你負(fù)責(zé)了什么,數(shù)倉中統(tǒng)計了哪些指標(biāo),
(3)剛剛聽你說項(xiàng)目里面有提到分層,如果我要你求每天商品的pv,uv,從ods層到
dm層它的具體流向,各層都統(tǒng)計了什么(后來讓寫求pv,uv的sql語句)
3)場景部分
(1)有一個分區(qū)表,表名T,字段qq,age,按天分區(qū),讓寫出創(chuàng)建表的語句
(2)剛剛的分區(qū)表,求20200221這個分區(qū)中,年齡第N大的qq號列表
(3)有一個表,兩個字段,分別是qqa和qqb,數(shù)據(jù)如下:
12,34
12,56
12,78
34,56
34,12
找出所有互相關(guān)注的qq對
4)手寫部分
(1)三個字段,timestamp,userjd,product_id,讓求pv最大的商品,寫了之后又叫
用Scala代碼寫一遍,然后又問,假如說只讓你求pv數(shù)大于100的mp3呢,代碼又怎么寫
2.4學(xué)長4
1)技術(shù)部分
(1)你們數(shù)倉用什么建模方法,說出常見的建模方法?
(2)維度建模有什么好處?為什么選擇這個?比如最后業(yè)務(wù)需求要增加一個維度,我
們需要做什么工作?
(3)怎么判斷一個需求能不能實(shí)現(xiàn),你們的判斷標(biāo)準(zhǔn)是什么?需求變更要做什么
(4)增加一個維度后發(fā)現(xiàn)查詢的速度變得非常慢,是什么原因?qū)е碌模?/p>
(5)你們ADS層的數(shù)據(jù)量每天的數(shù)據(jù)量有多大?ADS層再M(fèi)ySQL中的表是怎么創(chuàng)建
的?有什么注意事項(xiàng)?索引怎么創(chuàng)建的?
(6)你知道Spark的寬窄依賴嗎?有沒有把寬依賴轉(zhuǎn)化為窄依賴的例子?
(7)Spark參數(shù)調(diào)優(yōu)做了些什么?
2)算法部分
(1)一個list[1,557,9]去重,并計算時間空間復(fù)雜度
(2)單鏈表的反轉(zhuǎn)
3阿里面試題
3.1學(xué)長1
1)技術(shù)部分
(1)Spark提交job流程
(2)提交腳本中-jar什么意思
(3)Excutor怎么獲取Task
(4)詳解Hadoop的WordCount
(5)Spark做過哪些優(yōu)化,(優(yōu)化說完會問你為什么?原理是什么?)
(6)Spark內(nèi)存管理
2)算法部分
(1)單向鏈表反轉(zhuǎn)
(2)實(shí)現(xiàn)堆棧pushPopMin復(fù)雜度0(1)
(3)實(shí)現(xiàn)一個隊列,男女均衡最長的隊列復(fù)雜度0(N)
3.2學(xué)長2
阿里三面
第一題,億級的交易訂單量,每筆都有金額,快速找出toplOOO,要求不是簡單的排序
然后求出toplOOO,代碼要有健壯性;提示注意是top1000不是toplOoMap和Reduce分別
做Treemap
第二題:有.兩個約1000萬行記錄的4到5G文件,JVM只有32M,在內(nèi)存不溢出的情
況下,找出相似的條數(shù)并打印出來。布隆過濾器
第三題,有一個雙十一的天貓場景,我要做實(shí)時和離線兩種分析方向,從數(shù)據(jù)建模、計
算性能、元數(shù)據(jù)管理、數(shù)據(jù)質(zhì)量上講一講基本架構(gòu)設(shè)計成什么樣子。
阿里四面
第一題,島上有100個囚犯,他們都是藍(lán)眼睛,但是他們都只能看到別人眼睛的顏色,
并不能知道自己的眼睛顏色,而且他們之間不能去談?wù)撗劬︻伾脑掝},規(guī)定每天晚上都可
以有一個人去找守衛(wèi)說出自己的眼睛顏色,如果錯了被殺死,如果對了被釋放。但是大家在
沒有十足的把握前都不敢去找守衛(wèi),有一天,一個醫(yī)生對他們說你們之中至少有一個藍(lán)眼睛,
然后N天,這些人都獲救了,為什么?這句話對他們有什么影響?
第二題,有100層樓梯,從其中一層摔下雞蛋的時候雞蛋會碎,并且次層之上的都會碎,
次層之下的都不會碎,如果你有一個雞蛋、兩個雞蛋、三個雞蛋,你會怎么去找出這個樓層,
最多要試多少次
3.3學(xué)長3(杭州)
1)自我介紹
2)技術(shù)部分
(1)對未來的職業(yè)規(guī)劃是怎樣的?
(2)數(shù)倉的流程?你所做的事情?
(3)能講一下做DW層的案例嗎?如何建模的?
(4)講一下交易的例子吧?
(5)做交易的話模型怎么設(shè)計的?
(6)物流的信息,鏈路的跟蹤在不在你的交易表里邊?
(7)退款的數(shù)據(jù)放在哪個表里?
(8)數(shù)倉的模型是怎么建模的?
(9)記錄交易的,整體的鏈路,到底設(shè)計了幾張表?
(10)拉鏈表的原理?
(11)拉鏈表整合的方式?
(12)你在之前的公司遇到的痛點(diǎn)有哪些?(我講的數(shù)據(jù)傾斜)
(13)數(shù)據(jù)傾斜怎么解決的?。?/p>
(14)Join的等傾斜,Join的key,關(guān)聯(lián)鍵,如果傾斜的話,能直接打散,如果Map端
解決不了呢?M叩join解決不了怎么辦?兩個都是大表怎么解決數(shù)據(jù)傾斜?
(15)MR原理?
(16)Map端做的最重要的事情是什么?
(17)有沒有其他你特別擅長的?
(18)怎么提前你SQL寫的特別好呢?
(19)建索引要注意哪些事情?
(20)你有啥要問我的嗎?
4百度面試題
4.1學(xué)長1
1)筆試部分
(1)你可以得到網(wǎng)站訪問記錄,沒條記錄有userlP,設(shè)計一個程序,要隨時能計算出
過去5分鐘內(nèi)訪問次數(shù)最多的1000個IP
(2)簡述Paxos協(xié)議
(3)編程簡單實(shí)現(xiàn)一個阻塞隊列
(4)簡單實(shí)現(xiàn)一個LRU算法
(5)有一個5000萬的用戶文件(user_id,name,age),一個2億記錄的用戶看電影的記錄文
件(user_id,url),根據(jù)年齡段觀看電影的次數(shù)進(jìn)行排序?
2)技術(shù)部分
(1)Java的NIO是否了解
(2)Java多線程(什么wait、notify)
(3)MapReduce的shuffle過程(手畫,邊畫邊介紹),reduce是怎么到map端獲取數(shù)
據(jù)的(RPC通信是否了解)
(4)一句話介紹MiipReduce
(5)Spark做緩存時緩存在哪里
(6)百度不用Spark,只用Hadoop和MapReduce(至少這個部門是這樣,這個部門的
主要業(yè)務(wù)是做用戶畫像),把MapReduce工作的各個階段過程吃透
(7)是否看過Hadoop源碼
(8)Linux系統(tǒng)(常用命令啥的)
(9)除了這些平時還接觸或者學(xué)習(xí)哪些技術(shù)
3)項(xiàng)目部分
(1)業(yè)務(wù)架構(gòu)
(2)根據(jù)項(xiàng)目業(yè)務(wù)介紹技術(shù)
(3)MapReduce數(shù)據(jù)傾斜和內(nèi)存溢出怎么辦
4)算法部分
(1)手寫歸并排序
(2)用遞歸實(shí)現(xiàn)斐波那契數(shù)列第100項(xiàng)的值(第一項(xiàng)和第二項(xiàng)分別為0和1),手寫
(3)算法和數(shù)據(jù)結(jié)構(gòu)了解到什么程度、知道多少
(4)Java中的數(shù)據(jù)結(jié)構(gòu),ArrayList和LinkedList的區(qū)別,ArrayList為什么查詢快(為
什么用數(shù)組就快)、LinkedList為什么增刪快,哪些Map是線程安全的
5)手寫代碼部分
(1)手寫MapReduce的WordCount(導(dǎo)入的包最好能記住)
6)場景部分
(1)遇到垃圾日志怎么辦(假如說有人惡意制造日志,怎么處理。我說的黑名單機(jī)制,
那個面試官貌似還挺滿意)
4.2學(xué)長2
1)基本信息介紹
(1)百度:視頻面試
(2)面試周期:5天
(3)面試次數(shù):6次
(4)面試總時長:3小時
2)百度一面二面(印象中的一些問題):
(1)自定義UDF、UDTF
(2)如何確定計算數(shù)據(jù)的準(zhǔn)確性?
(3)建立數(shù)倉的目的
(4)自定義攔截器步驟
(5)SpringMVC
(6)設(shè)計網(wǎng)站前后端交互問題
(7)Linux常用命令
3)百度三面(部門負(fù)責(zé)人):
(1)在沒有PM的情況下如何對指標(biāo)做拆分去分析?
(2)介紹了他們部門的工作內(nèi)容
4)百度四面hrbp:
(1)介紹工作經(jīng)歷+工作遇到的困難+對所應(yīng)聘職位的理解+分析指標(biāo)提出時間和原因+
離職原因等問題
5)百度五面業(yè)務(wù)總裁:
(1)某一天日活下降10%,需要從哪些維度分析,如何分析?不用說技術(shù)
6)百度六面Recuriter面:
(1)上家薪資+期望薪資+職級+對數(shù)據(jù)分析和指標(biāo)分析的理解+職業(yè)規(guī)劃等問題。
4.3學(xué)長3
1)基本信息介紹
(1)11月17號度小滿金融(原百度金融,A輪公司)
(2)面試地點(diǎn):西北旺百度科技園旁
(3)面試時長:2個半小時
(4)面試次數(shù):3次
2)一面:
(1)一面中規(guī)中距,有手寫SQL環(huán)節(jié),還有SparkStreaming常用算子解決實(shí)際問題。
大概1個多小時。
(2)手寫SQL考的是:
三個字段:area、year>temperature.統(tǒng)計每個地區(qū)的溫度最高的對應(yīng)的年份。
寫的用rank函數(shù),一個子查詢,險過。
3)二面:
因?yàn)槊娴氖羌軜?gòu)師,所以二面問的是幾個組件的版本號和幾個大數(shù)據(jù)組件的安裝過程和
配置文件細(xì)節(jié),還有HA的幾個進(jìn)程的作用,比較難。大概20分鐘
4)三面:
問了自定義UDAF,UDTF,和數(shù)倉開放性問題
O
4.4學(xué)長4
1)筆試
tb_cuid_1d表:
字段名中文名字段類型字段示例
cuid用戶的唯一標(biāo)識stringed2s9w
os平臺stringandroid
soft_version版本string
event_day日期string20190101
ext擴(kuò)展字段array
cuidossoft_versionevent.dayext
[<"id":100L"type'7'show","from'V'home",
?'source'?'his"},{"id":1002,"type":"dick",
"fromH:"swan""source^'Ycm"},{"id":1003,
A1Android20190101f
,,
"type":"slide"r"from":"tool","source":"banner}(
{"id":1001,"type":"del","from":,,wode",
"source'7'myswan"}]
A2iPhone20190101
(1)寫出用戶表tb_cuid_ld的20200401的次日、次7日留存的具體HQL:一條sql
統(tǒng)計出以下指標(biāo)(4.1號uv,4.1號在4.2號的留存uv,4.1號在4.8號的留存uv)(一條sql
寫完)
(2)統(tǒng)計當(dāng)天不同平臺、版本下的uv、pv
(3)解析ext中所有fi\J"typeH(lateralviewexplode)
2)二面:
號在但是不在的用戶
t_a(uidzos,day),t_b(uid,os,day),15t_a,t_b
ut格式:機(jī)型_app版本_xxx_xxx_廠商,如iphone6s___sdkl2.1_baidujphone:
解析;12.1
用戶學(xué)分表S8re:
字段名中文名字段類型字段示例
uid用戶idbigint23145
class班級string2-1
scores用戶信息array<string>[*math_100','music_90',...
t_a(uid,os,day)
最近30內(nèi),所有用戶末次活躍日期
最近30內(nèi),所有用戶末次活躍日期和倒數(shù)第二次的差值
4.5學(xué)長5
一面:
講項(xiàng)目
kafka精確一次性
數(shù)據(jù)量
log日志類型,存的什么數(shù)據(jù)
sparkstreaming怎么做的實(shí)時
hbaserowkey你是怎么設(shè)計的
namenode重啟流程
hdfs讀流程
flume攔截器怎么寫的
flume結(jié)構(gòu)
兩道算法:
窗口求中位數(shù),說流式處理底層求熱點(diǎn)問題常用到
一個樹形結(jié)構(gòu),一個節(jié)點(diǎn)可以監(jiān)聽它的父節(jié)點(diǎn)和子節(jié)點(diǎn),問最小監(jiān)聽數(shù)量
5京東面試題
5.1學(xué)長1
1)筆試部分
(1)列舉幾種數(shù)據(jù)傾斜的情況,并解釋為什么會傾斜,以及如何解決?
(2)解釋一下SQL運(yùn)行步驟,是否有優(yōu)化空間,如果有,如何優(yōu)化:
SELECTa.id,FROMaLEFTOUTERJOINbONa.id=b.idWHEREa.dt=
*2016-01-015ANDb.dt=<2016-01-0r;
(3)已知表a是一張內(nèi)部表,如何將它轉(zhuǎn)換成外部表?請寫出相應(yīng)的Hive語句
(4)用select做查詢是,用哪個函數(shù)給值喂null的數(shù)據(jù)設(shè)置默認(rèn)值?
(5)Hive中,建的表為壓縮表,但是輸入文件為非壓縮格式,會產(chǎn)生怎樣的現(xiàn)象或者
結(jié)果?
(6)訂單詳情表ord_det(order_id訂單號,sku_id商品編號,sa1e_qtty銷售數(shù)量,dt日
期分區(qū))任務(wù)計算2016年1月1日商品銷量的ToplOO,并按銷量降級排序
(7)某日志的格式如下:
pin|-|request_tm|-url|-|sku_id|-|amount
分隔符為M-r,
數(shù)據(jù)樣例為:
張三Hq2013-11-2311:59:30|-||-|100023|-|110.15
假設(shè)本地數(shù)據(jù)文件為sample.txt,先將其導(dǎo)入到hive的test庫的表t_sample中,并
計算每個用戶的總消費(fèi)金額,寫出詳細(xì)過程包括表結(jié)構(gòu)
(8)test.log日志中內(nèi)容如下左列所示,使用awk輸出右列4行數(shù)據(jù)
lO-3-jd-dv
2-4-jd-dv10-4-jd-dv
5-7-pv-click5-7-pv-click
36-24-pv-uv
37-24-pv-uv37-24-pv-uv
24-3-uv-mq24-3-uv-mq
(9)Storm的分組策略有哪些?
5.2學(xué)長2
i)筆試部分
(1)HiveSQL語句中selectfromwheregroupbyhavingorderby的執(zhí)行順序
(2)Hive中M叩Join的原理和實(shí)際應(yīng)用
(3)寫出你常用的HDFS命令
(4)使用Linux命令查詢filel里面空行的所在行號
(5)有文件chengji.txt內(nèi)容如下:
張三40
李四50
王五60
請使用Linux命令計算第二列的和并輸出
(6)在Linux環(huán)境下有文件/home/dim_city.txt如何加載dim_city外部表中,HDFS路
徑/user/dim/dim_city
(7)請列出正常工作的hadoop集群中hadoop都分別需要啟動哪些進(jìn)程,他們的作用
分別是什么,盡可能寫的全面些
(8)數(shù)據(jù)倉庫的整體架構(gòu)是什么,其中最重要的是哪個環(huán)節(jié)
5.3學(xué)長3
1)筆試部分(京東金融)
(1)數(shù)據(jù)按照業(yè)務(wù)含義可以分為時點(diǎn)數(shù)和時期數(shù),在一般情況下,下列哪些數(shù)據(jù)屬于
時點(diǎn)數(shù)?
A.昨天的訂單量B.昨天的庫存量
C.昨天的點(diǎn)擊量D.昨天的訪問次數(shù)
(2)Abouthadoopmap/reduce,Therightansweris?
A.reduce的數(shù)量必須大于零
B.reduce總是在所有map完成之后再執(zhí)行
C.combiner過程實(shí)際也是reduce過程
D.Mapper的數(shù)量由輸入的文件個數(shù)決定
(3)Hive中的元數(shù)據(jù)不包括?
A.表的名字B.表的外鍵
C.表的列D.分區(qū)及其屬性
(4)Hive中如何限制查詢條數(shù)?
A、TOPBxlimitC、rownumD、only
(5)關(guān)于hivesql以下說法正確的是:
A.clusterby不會對字段進(jìn)行排序
Borderby只保證每個reducer的輸出有序,不保證全局有序
Csortby是全局有序
Ddistributeby制定規(guī)則字段,將相同組數(shù)據(jù)分發(fā)到同一reducer
(6)下面SQL的運(yùn)行結(jié)果是什么?
Selecta.id,from(selectidfromtable_id)aleftsemijoin(selectid,namefrom
table_nm)bona.id=b.id
table_id
idname
1wzb
A、(a,ok)B、(2,null)C、(l,ok&&2,null)D、以上結(jié)果均不對
(7)你處理過的最大數(shù)據(jù)量是多少?處理時是否遇到問題,采取了哪些優(yōu)化的方案?
(8)列舉Hive幾種數(shù)據(jù)傾斜的場景以及解決方案?
5.4學(xué)長4
1)技術(shù)部分
(1)你們Spark哪個版本
(2)SparkStreaming如何和Kafka對接
(3)Kaflca消費(fèi)過的消息如何再消費(fèi)
(4)Redis版本多少
(5)CDH版本多少
(6)集群怎么部署的
(7)數(shù)據(jù)傾斜怎么處理
(8)MR和Spark的Shuffle的區(qū)別
(9)MR環(huán)形數(shù)組怎么設(shè)置最大能設(shè)置多大
(10)Redis分布式鎖怎么實(shí)現(xiàn)
(11)Rdd和dateset的區(qū)別
(12)說說Scala伴生對象
(13)解釋Scala的模式匹配
(14)談?wù)凷cala隱士轉(zhuǎn)換
(15)Yam的組件說說他們的功能
(16)Spark一個Excutor給多大內(nèi)存
(17)Spark幾種部署模式還有他們的區(qū)別
(18)你運(yùn)行程序是client還是cluster為什么
(19)說出git的幾個常用命名
(20)git如何切換分支
(21)對Hive的理解做過哪些優(yōu)化
4)算法部分
⑴用Idea寫快速排序
5)手寫代碼部分
(1)手寫SparkWordCount
6)項(xiàng)目部分
(1)整個業(yè)務(wù)數(shù)據(jù)的流向
7)場景部分
(1)現(xiàn)有兩張大表所有字段都得保留不能再過濾了join操作就發(fā)生OOM怎么解決
(2)Session日志分析如何求出用戶訪問的Page路徑
(3)三表的join求銷量,order——id的統(tǒng)計(記得不了)就是三表join求統(tǒng)計吧
5.5學(xué)長5
1)一面
(1)HDFS、MR、Yam的理解
(2)MR的WordCount簡單描述
(3)Kafka快的原因,零拷貝的原理
(4)Redis的數(shù)據(jù)類型
(5)Kafka的isr隊列
(6)Spark的運(yùn)行模式,WordCount的簡單描述
(7)基本上是簡歷的東西
2)二面
基本上和簡歷無關(guān),問的算法,我不懂,沒辦法整理
5.6學(xué)長6
1)京東數(shù)科二面
(1)最近一兩年內(nèi)你做過感覺最有趣或者讓你記憶深刻的項(xiàng)目,挑一個說一說。我說
的是SparkStreaming實(shí)時計算(李老師講的在線教育那個項(xiàng)目,我給稍微改了改成電商項(xiàng)目
了)。
(2)有關(guān)于Spark、Kafka、MySQL的項(xiàng)目你感覺那個比較熟練一點(diǎn)。我回答我的是對
spark比較感興趣。
(3)做這個項(xiàng)目用的是Spark的哪個版本?
(4)這個版本里用Kafka用的是那種消費(fèi)方式。
(5)可以簡單講一下direct大概的一個設(shè)計套路。
(6)如果說我每隔一百條或者一千條,記錄偏移量,如果跑到八百條宕掉了,有可能
重復(fù)消費(fèi),針對receiver優(yōu)勢能不能解決這一點(diǎn)?
(7)如果dsteam方式去拉取Reduce拉取出去,那有多少個線程從Kafka里拖數(shù)據(jù)?
(8)平時除了用Spark比較多,用Hive也不少,平時會涉及到調(diào)參優(yōu)化方面有哪些?
(9)你能介紹一下Flume的架構(gòu)或者設(shè)計。
(10)用代碼實(shí)現(xiàn)一個類似于Flink水位線的機(jī)制。
(11)有做過依賴調(diào)解的工作嗎?比如說有沒有碰到問題說引用自己一個依賴,但是在
別的地方用了一個其他的依賴由于版本不統(tǒng)一,不能兼容該怎么辦
(12)最近為什么會想到說換一個工作。(離職原因)
(13)你有什么想問我們的。
658面試題
6.1學(xué)長1
1)筆試部分(基礎(chǔ)題)
(1)請用圖形的方式表示出Java運(yùn)行時數(shù)據(jù)區(qū)
(2)以上哪些數(shù)據(jù)區(qū)在空間不足的情況下會拋出異常?
(3)Java工程出現(xiàn)內(nèi)存泄露如何排查?請寫出你知道的排查工具以及方法
(4)以下代碼的輸出結(jié)果是什么?
Stringstr"newStringBuilder("58").append(nganji").toString();
System.out.println(strl.intern==strl);
Stringstr2=newStringBuilder("jan).append(,'va,,).toString();
System.out.println(ern==str2);
(5)在Scala中有一種函數(shù)其參數(shù)可以為參數(shù),這樣的函數(shù)稱為高階函數(shù),請參照scala
中常見map函數(shù)實(shí)現(xiàn)一個名為mymap的高階函數(shù),mymap接收兩個參數(shù)值,第一個函數(shù)
(x:Int)=>3*x,第二個為Int型數(shù)據(jù)。在mym叩函數(shù)體內(nèi)將第一個參數(shù)作用于第二個參數(shù)。
2)筆試部分(算法)
(1)給定兩個只含有0和1字符的字符串,實(shí)現(xiàn)二進(jìn)制加法。如:
Stringstrl="101"
Stringstr2="ll"
實(shí)現(xiàn)binarySum(Stringsi,Strings2),使得輸入以上字符時返回字符串"1000"。
(2)給定一個整型數(shù)組array(沒有重復(fù)元素),再給出一個目標(biāo)值target,數(shù)組array
中有兩個元素的加和等于target,要求返回這兩個元素的下標(biāo)。如array={1,2,4,6,3}target=
8,則返回[1,3]。
3)筆試部分(大數(shù)據(jù)相關(guān))
(1)現(xiàn)有一張Hive表,表里面有兩個字段uuid和ts,分隔符為\001分別表示用戶唯
一標(biāo)識和用戶來訪的時間戳。
有如下需求
(a)要求計算每個用戶的最后一次來訪時間,用MapReduce實(shí)現(xiàn)(寫完整的代碼)
(b)你所寫的代碼有沒有優(yōu)化的空間?如果有,請寫出優(yōu)化方法。
(2)用Spark實(shí)現(xiàn)WordCount。
(3)Spark-Streaming+Kafka實(shí)現(xiàn)實(shí)時計算這種方案中通過什么方式保證數(shù)據(jù)的準(zhǔn)確
性?
(4)分別列舉Hadoop和Spark中的文件緩存方式。
(5)HDFS的一致性是指什么?有幾種語義?
(6)基于Yarn的推測執(zhí)行是怎么實(shí)現(xiàn)的?描述其大致算法。
QUESTIONNO:1
publicclassTesti{
publicstaticvoidchangeStr(Stringstr){
str="welcomeu;
}
publicstaticvoidmain(String[]args)(
Stringstr=H1234H;
changeStr(str);
System.out.println(str);
)
)
輸出結(jié)果:
QUESTIONNO:2
publicclassTest2{
staticbooleanfoo(charc){
Systemoutprint(c);
returntrue;
)
publicstaticvoidmain(String[]argv){
inti=0;
for(foo('A');foo('B')&&(i<2);foo('C')){
i++;
foo('D');
輸出結(jié)果:
6.2學(xué)長2
i、一面(學(xué)長面)
1)技術(shù)部分
(1)HashMap如何遍歷。(這個忘了,百度了一下是用EntrySet)
(2)SparkStreaming窗口操作的3個時段設(shè)定分別是什么,問到倍數(shù)這塊(第二輪也
問到了)
2)項(xiàng)目部分
(1)講了一下推薦項(xiàng)目怎么回事
(2)因?yàn)槭钦袛?shù)倉這塊的,所以三輪數(shù)倉都問了(第二輪的數(shù)倉問題比較偏,我寫到
第二輪總結(jié)里)
3)算法部分
(1)快排或冒泡排序,我講的是快排
4)情景部分
(1)設(shè)定了一個情景,手寫SQL,比較簡單吧
2、二面
1)技術(shù)部分
(1)flatMap和map的區(qū)別
(2)A表joinB表,用MR是如何處理的(這個真沒看過,百度了之后才知道的)
(3)Yarn的資源調(diào)度
(4)Hbase有put方法,那如何批量put數(shù)據(jù)進(jìn)hbase里,用什么方法(這個也沒答上,
面試的時候想不起來了)
(5)NameNode的HA,一臺掛掉之后,另一臺會丟失數(shù)據(jù)嗎,掛掉之前有一部分日志
為更新(這個我答的是edits會保存下來,和之前的鏡像一起加載,所以不會丟)
(6)問了Kafka的消費(fèi)速度(這個我說的幾十兆每秒,群里已經(jīng)發(fā)了,是1G每秒,
可自由發(fā)揮)
(7)Kafka分區(qū)(我說的5個,有點(diǎn)多了,應(yīng)該說2個或者3個吧)
(8)問了HDFS的塊你們設(shè)置的是多大(我說的128M,他有疑惑,我說默認(rèn)是128M,
他也表示疑惑)
(9)問了Spark版本,說一直是這個版本嗎(我說現(xiàn)在用的是2.0,之前用的1.6)
(10)Sparksql什么時候不能讀到Hive的數(shù)據(jù)(這個也沒答上來)
2)項(xiàng)目部分
(1)你們數(shù)倉之間的數(shù)據(jù)是怎么調(diào)度的
3)情景部分
(1)設(shè)置了一個情景,讓寫SQL,也相對簡單吧
3、三面
項(xiàng)目組負(fù)責(zé)人
(1)要招數(shù)倉和算法的,所以主要問了數(shù)倉。
(2)數(shù)倉的DM為何不由數(shù)據(jù)組來設(shè)計封裝,你覺得是數(shù)據(jù)組封裝有什么不妥嗎
(3)HBase里面你們都存了具體哪些業(yè)務(wù)數(shù)據(jù),他說這些數(shù)據(jù)我覺得存到redis或者
mysql中也行呀,為什么要非要用HBase,然后問了我你認(rèn)為多少的數(shù)據(jù)量適合用HBase
(4)結(jié)合你這個HBase里存儲的數(shù)據(jù),說一下你們的rowkey怎么設(shè)計的
6.3學(xué)長3
1)技術(shù)部分
(1)對Hadoop各組件之間通信RPC協(xié)議了解
(2)Hadoop的讀數(shù)據(jù)流程
(3)傳輸過程中DataNode掛掉怎么辦
(4)HBase源碼
(5)HBase構(gòu)建二級索引如何保證索引與數(shù)據(jù)的一致
(6)JVM架構(gòu),堆內(nèi)存,GC算法,問平時會不會調(diào)GC算法
(7)-Xms和-Xmx設(shè)置一個和設(shè)置兩個而且兩個設(shè)置的都是一樣有什么區(qū)別嗎
(8)查看當(dāng)前Java內(nèi)存各個代的內(nèi)存比例
(9)查看線程堆棧的命令
(10)查看Java進(jìn)程里邊對象的大小,
(11)堆內(nèi)存泄露怎么看,除了Dump出來用MAT還有什么簡單的方法
(12)Java進(jìn)程用戶反饋請求服務(wù)很慢,但是代碼不是你開發(fā)的你怎么排查問題,
多線程,實(shí)現(xiàn)線程同步的方法
2)算法部分
(1)問對數(shù)據(jù)結(jié)構(gòu)和算法了解嗎,堆棧和鏈表什么的
6.4學(xué)長4
一面:
sparkstreaming用了哪些算子
flatmap與map的區(qū)別
dwd的是啥dwss是啥,dwtt是什么
你們獲取kafkaOffset的API是什么
HBase創(chuàng)建表時,rowkey的設(shè)計
ODS層干了什么
yarn工作機(jī)制說一下
kylin怎么用的
superset怎么用的
說一下JVM重用的參數(shù)
你們合并文件用的哪個參數(shù)merge.mapred.files
Hive使用時遇到過什么困難
sparkstream如果進(jìn)行精確一次性消費(fèi)
7新浪面試題
7.1學(xué)長1
7.1.1一面
2)技術(shù)部分
(1)讓我介紹下Sqoop,說他沒見過
我說Sqoop我用的不熟,知道怎么用,可以簡單地給他介紹一下。然后就說Sqoop是
HDFS、關(guān)系型數(shù)據(jù)、HBase它們?nèi)咧g傳輸數(shù)據(jù)用的,很方便。
(2)讓我介紹MapReduce的運(yùn)行過程
二話不說要筆要紙,手繪MapReduce從InputFormat到OutputFormat的流程,一邊畫圖
一邊說。
3)項(xiàng)目部分
(1)讓我介紹項(xiàng)目我都是給他要筆要紙,手繪架構(gòu)圖。
離線:data->flume->kafka->hdfs->hadoop/spark->mysql->前端展示
實(shí)時:data->flume->kafka->SparkStreaming->mysql->^/端展示
kafka到hdfs是自定
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 稅務(wù)課課程設(shè)計范文
- 給鴨子洗澡課程設(shè)計
- 最長公共子串課程設(shè)計
- 梨罐頭工廠設(shè)計課程設(shè)計
- 最牛采礦方法課程設(shè)計
- 我的小劇場課程設(shè)計
- 石油開采業(yè)的技術(shù)研發(fā)與科學(xué)創(chuàng)新考核試卷
- 海洋天然氣開采中的深海油氣田開發(fā)設(shè)計原則考核試卷
- 電力系統(tǒng)課程設(shè)計
- 小學(xué)晨會主題課程設(shè)計
- 2024年等離子切割機(jī)市場需求分析報告
- 高速公路服務(wù)區(qū)業(yè)態(tài)創(chuàng)新策劃書
- 康復(fù)科出院指導(dǎo)及健康宣教
- 可多華產(chǎn)品知識(講課)
- 2024全新貝殼二手房交易合同下載(附件版)
- 交通安全設(shè)施工程施工風(fēng)險辨識清單
- 小學(xué)智慧農(nóng)場工作總結(jié)
- 市紀(jì)委跟班學(xué)習(xí)工作總結(jié)
- 妊娠合并高脂血癥的護(hù)理查房
- 初中英語閱讀-篇章結(jié)構(gòu)強(qiáng)化練習(xí)(附答案)
- 2022年1月上海春季高考英語真題試卷(附聽力音頻)含詳解與聽力文本
評論
0/150
提交評論