版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
尚硅谷大數(shù)據(jù)技術之企業(yè)真題
(作者:尚硅谷大數(shù)據(jù)研發(fā)部)
版本:V2.0.0
1頭條面試題
1.1學長1
1)技術部分
(1)WordCount的實現(xiàn)過程
(2)MR與Spark的區(qū)別
(3)Spark在Client與在集群運行的區(qū)別
(3)相同的SQL在HiveSql與SparkSQL的實現(xiàn)中,為什么Spark比Hadoop快
(4)自定義UDF
(5)設計HBase表需要注意的點
(6)HBase的hlog
(7)數(shù)據(jù)同樣存在HDFS,為什么HBase支持在線查詢
(8)數(shù)據(jù)從Hive中用SparkSql進行操作有遇到什么問題?類似兼容性的問題。
(9)SparkStream與Strom,Flink與什么區(qū)別
(10)有三個map,一個reduce來做top10,哪種方法最優(yōu)。數(shù)據(jù)量特別大。
2)項目的架構
(1)數(shù)據(jù)倉庫的模型設計
(2)數(shù)據(jù)倉庫的數(shù)據(jù)清洗
(3)業(yè)務建模、數(shù)據(jù)分析方法。
(4)數(shù)據(jù)倉庫是怎么設計的
(5)數(shù)倉規(guī)范設計哪些方面(字段、維度,存儲壓縮、數(shù)據(jù)保留機制)
(6)數(shù)倉質量怎么監(jiān)控(數(shù)據(jù)質量管理系統(tǒng),主鍵唯一、非空、數(shù)據(jù)波動)
(7)數(shù)倉主題分哪些(按照公司業(yè)務歸類:申請單、客戶信息、合同信息、放款、還款、
余額、逾期等)
(8)數(shù)倉拉鏈表的原理
(9)有沒有遇到數(shù)據(jù)傾斜的問題(場景、解決方式)
(10)數(shù)倉重點調度任務的保障方式(調度系統(tǒng)優(yōu)先級)
(11)數(shù)倉任務報錯和監(jiān)控(調度系統(tǒng)捕捉錯誤,電話短信告之值班人員)
1.2學長2
1)技術部分
(D自我介紹
(2)寫map-reduce,兩份數(shù)據(jù),一份是設備id+用戶id,一份是設備id+點擊的廣告+
點擊時間,找出每個用戶id每天10條最新的廣告點擊記錄
(3)說下多線程和多進程
(4)fork命令
2)算法部分
(1)hashmap和map,hash實現(xiàn)原理(hashmap基于哈希,查找0(1);map基于樹,
查找0(logn);hash實現(xiàn)采用數(shù)組,偏移地址使得查找滿足O(1),無論是再哈希還是
鏈表法解決沖突,都需要存儲key和value)
1.3學長3
(1)MySQL引擎是什么,常用的是哪個innodb,知道原理嗎
(2)MySQL優(yōu)化,怎么建索引?選擇合適的字段屬性。對于某些文本字段可以設成
ENUM類型(MySQL中被當做數(shù)值型數(shù)據(jù)來處理)。使用連接join代替子查詢。使用索
引:innodb支持哈希索引、b+樹索引、全文索引。
BTree和B+Tree
(3)手寫sql...
user_idlogin_date
120200325
查詢出用戶連續(xù)三天登錄的用戶
表A字段a值1234
表B字段b值11235
Join輸出的結果
Leftjoin輸出的結果
(4)Sqoop導入數(shù)據(jù)是增量怎么實現(xiàn)
(5)Flume事務實現(xiàn)
(6)Kafka消費者角度考慮是拉取數(shù)據(jù)還是推送數(shù)據(jù)
(7)Kafka中的數(shù)據(jù)是有序的嗎
(8)Kafka數(shù)據(jù)推送失敗怎么處理
(9)Kafka保證生產者精準一次
(10)沒有接受到ack才會出現(xiàn)聲明情況
(11)Kafka數(shù)據(jù)重復怎么處理
(12)SparkStreaming怎么里面實現(xiàn)精準一次消費
(13)如果。fTset沒有發(fā)送成功數(shù)據(jù)會怎樣
(14)Hive的優(yōu)化,項目中怎么優(yōu)化的(我說了join的一些優(yōu)化)
(15)然后就問了用MR怎么實現(xiàn)join,手寫代碼
(16)數(shù)據(jù)傾斜怎么處理的,
(17)碰到過oom情況嗎,什么原因導致的,怎么處理的
(18)Hbase有那些組件,
(19)什么場景會用到Hbase
(20)Hbase的讀寫流程,大概說一下
(21)Spark,任務提交的流程,
(22)Spark的兩種核心Shuffle,未優(yōu)化的和優(yōu)化的
(23)常用的數(shù)據(jù)結構都有哪些,
怎么實現(xiàn)一個list,
怎么實現(xiàn)一個map
map一般什么場景使用
用過樹這種結構嗎,什么場景用到的
(24)算法
字符串中第一個出現(xiàn)三次且僅出現(xiàn)三次
反轉一個鏈表
兩個鏈表第一次交叉的節(jié)點,
(25)用Cannal監(jiān)控niysql之后,Scala怎么通過SparkStreaming去消費的
(26)你們這個項目spark計算完之后存HBase怎么設計的
(27)HBase你們在項目中怎么設計rowkey的
1.4學長4
一面
(1)算法:給2個有序數(shù)組,合并成一個有序數(shù)組
延伸:給n個有序數(shù)組,合并成一個有序數(shù)組
(2)sql:
班級學號科目分數(shù)
求某個班級總分最高的前五名
其他:
(3)精準一次性消費
(4)數(shù)據(jù)傾斜
二面
(1)主要問項目中是否丟數(shù)據(jù),怎么做的數(shù)據(jù)治理,監(jiān)控,問了一個算法,一個SQL
(2)算法是有序數(shù)組查找目標值,我的做法是二分查找
(3)sql是給用戶的觀看視頻的時長,統(tǒng)計觀看時間在0-1分鐘的用戶數(shù),1-10分鐘的
用戶數(shù)
三面:
(1)選型為什么是spark而不是Flink,有哪些優(yōu)缺點(我項目上寫的spark)
(2)HBASE為什么快(列式存儲,內存,Ism樹)
(3)消費不到kafka數(shù)據(jù)怎么辦
(4)kafka怎么監(jiān)控,重分區(qū)
(5)gl回收器和cms區(qū)別
(6)jvm調整過沒有
1.5學長5
一面
(I)講述項目;
(2)rdd手寫key的top10,比如user_id,score,求成績的top10;
(3)spark-sql手寫個dateframe的demo
sql題目
字段:department_id,user_id,amount
求出來每個部門,每個人的薪資占部門薪資的比例,一個簡單的開窗函數(shù)實現(xiàn)的
手寫個udf函數(shù)?
表的字段report_date,map_info(map類型的數(shù)據(jù)類型,key是時間,value是金額),計
算大于當前report_date的所有金額
增加字段report_date,map_info,count增加計算個count數(shù)量又怎么處理?
然后,說那你能寫個UDF函數(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得到子串的結束位置,對角線斜著一行一行的
處理
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])#如果當前元素相等,則比
較之前的元素
ifdp[ij[jjandele+1>len(res_str):#上次ans就是上次的j-i的長度
res_str=s[i:j+1]
returnresstr
1.6頭條獵頭
i.數(shù)據(jù)倉庫的基礎理論:建模,分層
2.flink容錯機制
3.spark調優(yōu),數(shù)據(jù)傾斜的處理方式
4.sql編程考察
5.算法:聚類kmeans
6.二叉樹算法
7.Java線程問題,包括線程安全,鎖,和線程池,問得很細。
8.Hbasse和mysql區(qū)別和存儲原理
9.kafl<a的底層原理,kafka如何保證全局消費數(shù)據(jù)有序
lO.redis底層原理,如何預估數(shù)據(jù)量
"yarn底層原理,執(zhí)行流程和,yarn底層使用的算法
12.算法基礎建模有哪些,如何進行數(shù)據(jù)挖掘
13.鏈表反轉排序leetcode原題
14.sql連續(xù)日期活躍用戶
15.hiveudfudafudtfspark
16.任務提交過程
17.回文函數(shù)
18.hive數(shù)據(jù)傾斜
19.redis跳表
2O.springioc
21.spring需要單例設置的參數(shù)
22.線程池幾個配置參數(shù)含義
23.mysql事務ab客戶端提交事務處理
24.storm實時
25.java并發(fā)包
26.hive如何轉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調優(yōu)
2騰訊面試題
2.1學長1
1)筆試部分
(1)有一表名t_sh_mtt_netdisk」og,從表名可以看出該表是什么業(yè)務的,是什么周期
粒度的表。
(2)怎么查看表結構,表創(chuàng)建語句?怎么查看表有哪些分區(qū)?怎么查看分區(qū)對應hdfs
路徑?怎么計算某個分區(qū)的數(shù)據(jù)量大?。吭趺从嬎隳硞€分區(qū)的文件總數(shù)?
(3)有一hives磯,怎么計算這個sql會產生多少個map數(shù)?
(4)怎么查看hive有什么自帶函數(shù)?怎么查看函數(shù)的詳細信息?
(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"進行分割放到-一個字段里面,可
以查出任意一個keyx對應的valuex值。請寫出查詢語句,并計算總共有多少個key值。
(8)用一個字符串比如"alblc”來測試某個函數(shù)比如split(用|分隔符將字符串進行分割)
的語句
(9)a表和b表內連接,a表為小表,只有2000行記錄
selecta.*fromaJoinbona.key=b.key
可以進行怎樣的優(yōu)化
(10)a表leftjoinb表,b表為小衣,可以進行怎樣優(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三個表內連接,連接字段都是key,怎樣寫連接語句?
(13)兩大表連接,發(fā)生了數(shù)據(jù)傾斜,有幾個reduce無法完成,怎么查找發(fā)生數(shù)據(jù)領
斜的原因?應該怎樣優(yōu)化?
語句:selecttl.*,nvl(t2.x,l)fromtlleftjoint2ontl.guid=t2.guid
(14)兩大表連接,發(fā)生了數(shù)據(jù)傾斜。有一個reduce無法完成,檢直發(fā)現(xiàn)H中guid="
的記錄有很多,其他guid都不重復,這條語句該怎樣優(yōu)化?
語句:selecttl.*,nvl(t2.x,l)fromtlleftjoint2ontl.guid=t2.guid
(15)如何用hiveq!實現(xiàn)sqL中的exist/in子句
mysql語句如下:
SELECTa*FROMawherea.keyin(selectdstinctkeyfrombwherekeylike'filter%')
(16)sortby>distributeby>clusterby和orderby區(qū)別
注:可參考數(shù)據(jù)工廠的“幫助中心》集群hive》hive使用優(yōu)化》hive使用注意事項”
2.2學長2
1)筆試題
用HiveSQL實現(xiàn)
(1)全量用戶登員日志表t_login_all,字段信息ftime(登錄日期)、openid(登錄帳
號)新增用戶登錄日志表t_login_new,字段信息ftime(登錄日期)、openid(登錄帳號)
求每天新增用戶次日、7天、30天留存率。
(說明:7天留存是指當天有登錄且第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實現(xiàn),寫Scala腳本
1reduceByKey()>groupByKey()有什么區(qū)別?
2、DataFrame和RDD有什么區(qū)別?
3、使用累加器,對數(shù)組Array(l,2,3,4)每個元素實現(xiàn)累加操作,最后打印輸出求和結果。
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學長3
1)技術部分
(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的,我只記得一點點,問我數(shù)據(jù)會不會重復消費,什么情況下會
重復消費
(5)在Hive執(zhí)行語句的時候如果很慢,什么原因造成
我有提到數(shù)據(jù)傾斜的問題,他又問怎么解決數(shù)據(jù)傾斜
2)項目部分
(1)讓你挑一個比較有亮點的項目詳細說
(2)你負責了什么,數(shù)倉中統(tǒng)計了哪些指標,
(3)剛剛聽你說項目里面有提到分層,如果我要你求每天商品的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
找出所有互相關注的qq對
4)手寫部分
(1)三個字段,timestamp,userjd,product_id,讓求pv最大的商品,寫了之后又叫
用Scala代碼寫一遍,然后又問,假如說只讓你求pv數(shù)大于100的mp3呢,代碼又怎么寫
2.4學長4
1)技術部分
(1)你們數(shù)倉用什么建模方法,說出常見的建模方法?
(2)維度建模有什么好處?為什么選擇這個?比如最后業(yè)務需求要增加一個維度,我
們需要做什么工作?
(3)怎么判斷一個需求能不能實現(xiàn),你們的判斷標準是什么?需求變更要做什么
(4)增加一個維度后發(fā)現(xiàn)查詢的速度變得非常慢,是什么原因導致的?
(5)你們ADS層的數(shù)據(jù)量每天的數(shù)據(jù)量有多大?ADS層再MySQL中的表是怎么創(chuàng)建
的?有什么注意事項?索引怎么創(chuàng)建的?
(6)你知道Spark的寬窄依賴嗎?有沒有把寬依賴轉化為窄依賴的例子?
(7)Spark參數(shù)調優(yōu)做了些什么?
2)算法部分
(1)一個list[1,557,9]去重,并計算時間空間復雜度
(2)單鏈表的反轉
3阿里面試題
3.1學長1
1)技術部分
(1)Spark提交job流程
(2)提交腳本中-jar什么意思
(3)Excutor怎么獲取Task
(4)詳解Hadoop的WordCount
(5)Spark做過哪些優(yōu)化,(優(yōu)化說完會問你為什么?原理是什么?)
(6)Spark內存管理
2)算法部分
(1)單向鏈表反轉
(2)實現(xiàn)堆棧pushPopMin復雜度0(1)
(3)實現(xiàn)一個隊列,男女均衡最長的隊列復雜度0(N)
3.2學長2
阿里三面
第一題,億級的交易訂單量,每筆都有金額,快速找出toplOOO,要求不是簡單的排序
然后求出toplOOO,代碼要有健壯性;提示注意是top1000不是toplOoMap和Reduce分別
做Treemap
第二題:有.兩個約1000萬行記錄的4到5G文件,JVM只有32M,在內存不溢出的情
況下,找出相似的條數(shù)并打印出來。布隆過濾器
第三題,有一個雙十一的天貓場景,我要做實時和離線兩種分析方向,從數(shù)據(jù)建模、計
算性能、元數(shù)據(jù)管理、數(shù)據(jù)質量上講一講基本架構設計成什么樣子。
阿里四面
第一題,島上有100個囚犯,他們都是藍眼睛,但是他們都只能看到別人眼睛的顏色,
并不能知道自己的眼睛顏色,而且他們之間不能去談論眼睛顏色的話題,規(guī)定每天晚上都可
以有一個人去找守衛(wèi)說出自己的眼睛顏色,如果錯了被殺死,如果對了被釋放。但是大家在
沒有十足的把握前都不敢去找守衛(wèi),有一天,一個醫(yī)生對他們說你們之中至少有一個藍眼睛,
然后N天,這些人都獲救了,為什么?這句話對他們有什么影響?
第二題,有100層樓梯,從其中一層摔下雞蛋的時候雞蛋會碎,并且次層之上的都會碎,
次層之下的都不會碎,如果你有一個雞蛋、兩個雞蛋、三個雞蛋,你會怎么去找出這個樓層,
最多要試多少次
3.3學長3(杭州)
1)自我介紹
2)技術部分
(1)對未來的職業(yè)規(guī)劃是怎樣的?
(2)數(shù)倉的流程?你所做的事情?
(3)能講一下做DW層的案例嗎?如何建模的?
(4)講一下交易的例子吧?
(5)做交易的話模型怎么設計的?
(6)物流的信息,鏈路的跟蹤在不在你的交易表里邊?
(7)退款的數(shù)據(jù)放在哪個表里?
(8)數(shù)倉的模型是怎么建模的?
(9)記錄交易的,整體的鏈路,到底設計了幾張表?
(10)拉鏈表的原理?
(11)拉鏈表整合的方式?
(12)你在之前的公司遇到的痛點有哪些?(我講的數(shù)據(jù)傾斜)
(13)數(shù)據(jù)傾斜怎么解決的?。?/p>
(14)Join的等傾斜,Join的key,關聯(lián)鍵,如果傾斜的話,能直接打散,如果Map端
解決不了呢?M叩join解決不了怎么辦?兩個都是大表怎么解決數(shù)據(jù)傾斜?
(15)MR原理?
(16)Map端做的最重要的事情是什么?
(17)有沒有其他你特別擅長的?
(18)怎么提前你SQL寫的特別好呢?
(19)建索引要注意哪些事情?
(20)你有啥要問我的嗎?
4百度面試題
4.1學長1
1)筆試部分
(1)你可以得到網站訪問記錄,沒條記錄有userlP,設計一個程序,要隨時能計算出
過去5分鐘內訪問次數(shù)最多的1000個IP
(2)簡述Paxos協(xié)議
(3)編程簡單實現(xiàn)一個阻塞隊列
(4)簡單實現(xiàn)一個LRU算法
(5)有一個5000萬的用戶文件(user_id,name,age),一個2億記錄的用戶看電影的記錄文
件(user_id,url),根據(jù)年齡段觀看電影的次數(shù)進行排序?
2)技術部分
(1)Java的NIO是否了解
(2)Java多線程(什么wait、notify)
(3)MapReduce的shuffle過程(手畫,邊畫邊介紹),reduce是怎么到map端獲取數(shù)
據(jù)的(RPC通信是否了解)
(4)一句話介紹MiipReduce
(5)Spark做緩存時緩存在哪里
(6)百度不用Spark,只用Hadoop和MapReduce(至少這個部門是這樣,這個部門的
主要業(yè)務是做用戶畫像),把MapReduce工作的各個階段過程吃透
(7)是否看過Hadoop源碼
(8)Linux系統(tǒng)(常用命令啥的)
(9)除了這些平時還接觸或者學習哪些技術
3)項目部分
(1)業(yè)務架構
(2)根據(jù)項目業(yè)務介紹技術
(3)MapReduce數(shù)據(jù)傾斜和內存溢出怎么辦
4)算法部分
(1)手寫歸并排序
(2)用遞歸實現(xiàn)斐波那契數(shù)列第100項的值(第一項和第二項分別為0和1),手寫
(3)算法和數(shù)據(jù)結構了解到什么程度、知道多少
(4)Java中的數(shù)據(jù)結構,ArrayList和LinkedList的區(qū)別,ArrayList為什么查詢快(為
什么用數(shù)組就快)、LinkedList為什么增刪快,哪些Map是線程安全的
5)手寫代碼部分
(1)手寫MapReduce的WordCount(導入的包最好能記住)
6)場景部分
(1)遇到垃圾日志怎么辦(假如說有人惡意制造日志,怎么處理。我說的黑名單機制,
那個面試官貌似還挺滿意)
4.2學長2
1)基本信息介紹
(1)百度:視頻面試
(2)面試周期:5天
(3)面試次數(shù):6次
(4)面試總時長:3小時
2)百度一面二面(印象中的一些問題):
(1)自定義UDF、UDTF
(2)如何確定計算數(shù)據(jù)的準確性?
(3)建立數(shù)倉的目的
(4)自定義攔截器步驟
(5)SpringMVC
(6)設計網站前后端交互問題
(7)Linux常用命令
3)百度三面(部門負責人):
(1)在沒有PM的情況下如何對指標做拆分去分析?
(2)介紹了他們部門的工作內容
4)百度四面hrbp:
(1)介紹工作經歷+工作遇到的困難+對所應聘職位的理解+分析指標提出時間和原因+
離職原因等問題
5)百度五面業(yè)務總裁:
(1)某一天日活下降10%,需要從哪些維度分析,如何分析?不用說技術
6)百度六面Recuriter面:
(1)上家薪資+期望薪資+職級+對數(shù)據(jù)分析和指標分析的理解+職業(yè)規(guī)劃等問題。
4.3學長3
1)基本信息介紹
(1)11月17號度小滿金融(原百度金融,A輪公司)
(2)面試地點:西北旺百度科技園旁
(3)面試時長:2個半小時
(4)面試次數(shù):3次
2)一面:
(1)一面中規(guī)中距,有手寫SQL環(huán)節(jié),還有SparkStreaming常用算子解決實際問題。
大概1個多小時。
(2)手寫SQL考的是:
三個字段:area、year>temperature.統(tǒng)計每個地區(qū)的溫度最高的對應的年份。
寫的用rank函數(shù),一個子查詢,險過。
3)二面:
因為面的是架構師,所以二面問的是幾個組件的版本號和幾個大數(shù)據(jù)組件的安裝過程和
配置文件細節(jié),還有HA的幾個進程的作用,比較難。大概20分鐘
4)三面:
問了自定義UDAF,UDTF,和數(shù)倉開放性問題
O
4.4學長4
1)筆試
tb_cuid_1d表:
字段名中文名字段類型字段示例
cuid用戶的唯一標識stringed2s9w
os平臺stringandroid
soft_version版本string
event_day日期string20190101
ext擴展字段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)計出以下指標(4.1號uv,4.1號在4.2號的留存uv,4.1號在4.8號的留存uv)(一條sql
寫完)
(2)統(tǒng)計當天不同平臺、版本下的uv、pv
(3)解析ext中所有fi\J"typeH(lateralviewexplode)
2)二面:
號在但是不在的用戶
t_a(uidzos,day),t_b(uid,os,day),15t_a,t_b
ut格式:機型_app版本_xxx_xxx_廠商,如iphone6s___sdkl2.1_baidujphone:
解析;12.1
用戶學分表S8re:
字段名中文名字段類型字段示例
uid用戶idbigint23145
class班級string2-1
scores用戶信息array<string>[*math_100','music_90',...
t_a(uid,os,day)
最近30內,所有用戶末次活躍日期
最近30內,所有用戶末次活躍日期和倒數(shù)第二次的差值
4.5學長5
一面:
講項目
kafka精確一次性
數(shù)據(jù)量
log日志類型,存的什么數(shù)據(jù)
sparkstreaming怎么做的實時
hbaserowkey你是怎么設計的
namenode重啟流程
hdfs讀流程
flume攔截器怎么寫的
flume結構
兩道算法:
窗口求中位數(shù),說流式處理底層求熱點問題常用到
一個樹形結構,一個節(jié)點可以監(jiān)聽它的父節(jié)點和子節(jié)點,問最小監(jiān)聽數(shù)量
5京東面試題
5.1學長1
1)筆試部分
(1)列舉幾種數(shù)據(jù)傾斜的情況,并解釋為什么會傾斜,以及如何解決?
(2)解釋一下SQL運行步驟,是否有優(yōu)化空間,如果有,如何優(yōu)化:
SELECTa.id,FROMaLEFTOUTERJOINbONa.id=b.idWHEREa.dt=
*2016-01-015ANDb.dt=<2016-01-0r;
(3)已知表a是一張內部表,如何將它轉換成外部表?請寫出相應的Hive語句
(4)用select做查詢是,用哪個函數(shù)給值喂null的數(shù)據(jù)設置默認值?
(5)Hive中,建的表為壓縮表,但是輸入文件為非壓縮格式,會產生怎樣的現(xiàn)象或者
結果?
(6)訂單詳情表ord_det(order_id訂單號,sku_id商品編號,sa1e_qtty銷售數(shù)量,dt日
期分區(qū))任務計算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ù)據(jù)文件為sample.txt,先將其導入到hive的test庫的表t_sample中,并
計算每個用戶的總消費金額,寫出詳細過程包括表結構
(8)test.log日志中內容如下左列所示,使用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學長2
i)筆試部分
(1)HiveSQL語句中selectfromwheregroupbyhavingorderby的執(zhí)行順序
(2)Hive中M叩Join的原理和實際應用
(3)寫出你常用的HDFS命令
(4)使用Linux命令查詢filel里面空行的所在行號
(5)有文件chengji.txt內容如下:
張三40
李四50
王五60
請使用Linux命令計算第二列的和并輸出
(6)在Linux環(huán)境下有文件/home/dim_city.txt如何加載dim_city外部表中,HDFS路
徑/user/dim/dim_city
(7)請列出正常工作的hadoop集群中hadoop都分別需要啟動哪些進程,他們的作用
分別是什么,盡可能寫的全面些
(8)數(shù)據(jù)倉庫的整體架構是什么,其中最重要的是哪個環(huán)節(jié)
5.3學長3
1)筆試部分(京東金融)
(1)數(shù)據(jù)按照業(yè)務含義可以分為時點數(shù)和時期數(shù),在一般情況下,下列哪些數(shù)據(jù)屬于
時點數(shù)?
A.昨天的訂單量B.昨天的庫存量
C.昨天的點擊量D.昨天的訪問次數(shù)
(2)Abouthadoopmap/reduce,Therightansweris?
A.reduce的數(shù)量必須大于零
B.reduce總是在所有map完成之后再執(zhí)行
C.combiner過程實際也是reduce過程
D.Mapper的數(shù)量由輸入的文件個數(shù)決定
(3)Hive中的元數(shù)據(jù)不包括?
A.表的名字B.表的外鍵
C.表的列D.分區(qū)及其屬性
(4)Hive中如何限制查詢條數(shù)?
A、TOPBxlimitC、rownumD、only
(5)關于hivesql以下說法正確的是:
A.clusterby不會對字段進行排序
Borderby只保證每個reducer的輸出有序,不保證全局有序
Csortby是全局有序
Ddistributeby制定規(guī)則字段,將相同組數(shù)據(jù)分發(fā)到同一reducer
(6)下面SQL的運行結果是什么?
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、以上結果均不對
(7)你處理過的最大數(shù)據(jù)量是多少?處理時是否遇到問題,采取了哪些優(yōu)化的方案?
(8)列舉Hive幾種數(shù)據(jù)傾斜的場景以及解決方案?
5.4學長4
1)技術部分
(1)你們Spark哪個版本
(2)SparkStreaming如何和Kafka對接
(3)Kaflca消費過的消息如何再消費
(4)Redis版本多少
(5)CDH版本多少
(6)集群怎么部署的
(7)數(shù)據(jù)傾斜怎么處理
(8)MR和Spark的Shuffle的區(qū)別
(9)MR環(huán)形數(shù)組怎么設置最大能設置多大
(10)Redis分布式鎖怎么實現(xiàn)
(11)Rdd和dateset的區(qū)別
(12)說說Scala伴生對象
(13)解釋Scala的模式匹配
(14)談談Scala隱士轉換
(15)Yam的組件說說他們的功能
(16)Spark一個Excutor給多大內存
(17)Spark幾種部署模式還有他們的區(qū)別
(18)你運行程序是client還是cluster為什么
(19)說出git的幾個常用命名
(20)git如何切換分支
(21)對Hive的理解做過哪些優(yōu)化
4)算法部分
⑴用Idea寫快速排序
5)手寫代碼部分
(1)手寫SparkWordCount
6)項目部分
(1)整個業(yè)務數(shù)據(jù)的流向
7)場景部分
(1)現(xiàn)有兩張大表所有字段都得保留不能再過濾了join操作就發(fā)生OOM怎么解決
(2)Session日志分析如何求出用戶訪問的Page路徑
(3)三表的join求銷量,order——id的統(tǒng)計(記得不了)就是三表join求統(tǒng)計吧
5.5學長5
1)一面
(1)HDFS、MR、Yam的理解
(2)MR的WordCount簡單描述
(3)Kafka快的原因,零拷貝的原理
(4)Redis的數(shù)據(jù)類型
(5)Kafka的isr隊列
(6)Spark的運行模式,WordCount的簡單描述
(7)基本上是簡歷的東西
2)二面
基本上和簡歷無關,問的算法,我不懂,沒辦法整理
5.6學長6
1)京東數(shù)科二面
(1)最近一兩年內你做過感覺最有趣或者讓你記憶深刻的項目,挑一個說一說。我說
的是SparkStreaming實時計算(李老師講的在線教育那個項目,我給稍微改了改成電商項目
了)。
(2)有關于Spark、Kafka、MySQL的項目你感覺那個比較熟練一點。我回答我的是對
spark比較感興趣。
(3)做這個項目用的是Spark的哪個版本?
(4)這個版本里用Kafka用的是那種消費方式。
(5)可以簡單講一下direct大概的一個設計套路。
(6)如果說我每隔一百條或者一千條,記錄偏移量,如果跑到八百條宕掉了,有可能
重復消費,針對receiver優(yōu)勢能不能解決這一點?
(7)如果dsteam方式去拉取Reduce拉取出去,那有多少個線程從Kafka里拖數(shù)據(jù)?
(8)平時除了用Spark比較多,用Hive也不少,平時會涉及到調參優(yōu)化方面有哪些?
(9)你能介紹一下Flume的架構或者設計。
(10)用代碼實現(xiàn)一個類似于Flink水位線的機制。
(11)有做過依賴調解的工作嗎?比如說有沒有碰到問題說引用自己一個依賴,但是在
別的地方用了一個其他的依賴由于版本不統(tǒng)一,不能兼容該怎么辦
(12)最近為什么會想到說換一個工作。(離職原因)
(13)你有什么想問我們的。
658面試題
6.1學長1
1)筆試部分(基礎題)
(1)請用圖形的方式表示出Java運行時數(shù)據(jù)區(qū)
(2)以上哪些數(shù)據(jù)區(qū)在空間不足的情況下會拋出異常?
(3)Java工程出現(xiàn)內存泄露如何排查?請寫出你知道的排查工具以及方法
(4)以下代碼的輸出結果是什么?
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ù)實現(xiàn)一個名為mymap的高階函數(shù),mymap接收兩個參數(shù)值,第一個函數(shù)
(x:Int)=>3*x,第二個為Int型數(shù)據(jù)。在mym叩函數(shù)體內將第一個參數(shù)作用于第二個參數(shù)。
2)筆試部分(算法)
(1)給定兩個只含有0和1字符的字符串,實現(xiàn)二進制加法。如:
Stringstrl="101"
Stringstr2="ll"
實現(xiàn)binarySum(Stringsi,Strings2),使得輸入以上字符時返回字符串"1000"。
(2)給定一個整型數(shù)組array(沒有重復元素),再給出一個目標值target,數(shù)組array
中有兩個元素的加和等于target,要求返回這兩個元素的下標。如array={1,2,4,6,3}target=
8,則返回[1,3]。
3)筆試部分(大數(shù)據(jù)相關)
(1)現(xiàn)有一張Hive表,表里面有兩個字段uuid和ts,分隔符為\001分別表示用戶唯
一標識和用戶來訪的時間戳。
有如下需求
(a)要求計算每個用戶的最后一次來訪時間,用MapReduce實現(xiàn)(寫完整的代碼)
(b)你所寫的代碼有沒有優(yōu)化的空間?如果有,請寫出優(yōu)化方法。
(2)用Spark實現(xiàn)WordCount。
(3)Spark-Streaming+Kafka實現(xiàn)實時計算這種方案中通過什么方式保證數(shù)據(jù)的準確
性?
(4)分別列舉Hadoop和Spark中的文件緩存方式。
(5)HDFS的一致性是指什么?有幾種語義?
(6)基于Yarn的推測執(zhí)行是怎么實現(xiàn)的?描述其大致算法。
QUESTIONNO:1
publicclassTesti{
publicstaticvoidchangeStr(Stringstr){
str="welcomeu;
}
publicstaticvoidmain(String[]args)(
Stringstr=H1234H;
changeStr(str);
System.out.println(str);
)
)
輸出結果:
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');
輸出結果:
6.2學長2
i、一面(學長面)
1)技術部分
(1)HashMap如何遍歷。(這個忘了,百度了一下是用EntrySet)
(2)SparkStreaming窗口操作的3個時段設定分別是什么,問到倍數(shù)這塊(第二輪也
問到了)
2)項目部分
(1)講了一下推薦項目怎么回事
(2)因為是招數(shù)倉這塊的,所以三輪數(shù)倉都問了(第二輪的數(shù)倉問題比較偏,我寫到
第二輪總結里)
3)算法部分
(1)快排或冒泡排序,我講的是快排
4)情景部分
(1)設定了一個情景,手寫SQL,比較簡單吧
2、二面
1)技術部分
(1)flatMap和map的區(qū)別
(2)A表joinB表,用MR是如何處理的(這個真沒看過,百度了之后才知道的)
(3)Yarn的資源調度
(4)Hbase有put方法,那如何批量put數(shù)據(jù)進hbase里,用什么方法(這個也沒答上,
面試的時候想不起來了)
(5)NameNode的HA,一臺掛掉之后,另一臺會丟失數(shù)據(jù)嗎,掛掉之前有一部分日志
為更新(這個我答的是edits會保存下來,和之前的鏡像一起加載,所以不會丟)
(6)問了Kafka的消費速度(這個我說的幾十兆每秒,群里已經發(fā)了,是1G每秒,
可自由發(fā)揮)
(7)Kafka分區(qū)(我說的5個,有點多了,應該說2個或者3個吧)
(8)問了HDFS的塊你們設置的是多大(我說的128M,他有疑惑,我說默認是128M,
他也表示疑惑)
(9)問了Spark版本,說一直是這個版本嗎(我說現(xiàn)在用的是2.0,之前用的1.6)
(10)Sparksql什么時候不能讀到Hive的數(shù)據(jù)(這個也沒答上來)
2)項目部分
(1)你們數(shù)倉之間的數(shù)據(jù)是怎么調度的
3)情景部分
(1)設置了一個情景,讓寫SQL,也相對簡單吧
3、三面
項目組負責人
(1)要招數(shù)倉和算法的,所以主要問了數(shù)倉。
(2)數(shù)倉的DM為何不由數(shù)據(jù)組來設計封裝,你覺得是數(shù)據(jù)組封裝有什么不妥嗎
(3)HBase里面你們都存了具體哪些業(yè)務數(shù)據(jù),他說這些數(shù)據(jù)我覺得存到redis或者
mysql中也行呀,為什么要非要用HBase,然后問了我你認為多少的數(shù)據(jù)量適合用HBase
(4)結合你這個HBase里存儲的數(shù)據(jù),說一下你們的rowkey怎么設計的
6.3學長3
1)技術部分
(1)對Hadoop各組件之間通信RPC協(xié)議了解
(2)Hadoop的讀數(shù)據(jù)流程
(3)傳輸過程中DataNode掛掉怎么辦
(4)HBase源碼
(5)HBase構建二級索引如何保證索引與數(shù)據(jù)的一致
(6)JVM架構,堆內存,GC算法,問平時會不會調GC算法
(7)-Xms和-Xmx設置一個和設置兩個而且兩個設置的都是一樣有什么區(qū)別嗎
(8)查看當前Java內存各個代的內存比例
(9)查看線程堆棧的命令
(10)查看Java進程里邊對象的大小,
(11)堆內存泄露怎么看,除了Dump出來用MAT還有什么簡單的方法
(12)Java進程用戶反饋請求服務很慢,但是代碼不是你開發(fā)的你怎么排查問題,
多線程,實現(xiàn)線程同步的方法
2)算法部分
(1)問對數(shù)據(jù)結構和算法了解嗎,堆棧和鏈表什么的
6.4學長4
一面:
sparkstreaming用了哪些算子
flatmap與map的區(qū)別
dwd的是啥dwss是啥,dwtt是什么
你們獲取kafkaOffset的API是什么
HBase創(chuàng)建表時,rowkey的設計
ODS層干了什么
yarn工作機制說一下
kylin怎么用的
superset怎么用的
說一下JVM重用的參數(shù)
你們合并文件用的哪個參數(shù)merge.mapred.files
Hive使用時遇到過什么困難
sparkstream如果進行精確一次性消費
7新浪面試題
7.1學長1
7.1.1一面
2)技術部分
(1)讓我介紹下Sqoop,說他沒見過
我說Sqoop我用的不熟,知道怎么用,可以簡單地給他介紹一下。然后就說Sqoop是
HDFS、關系型數(shù)據(jù)、HBase它們三者之間傳輸數(shù)據(jù)用的,很方便。
(2)讓我介紹MapReduce的運行過程
二話不說要筆要紙,手繪MapReduce從InputFormat到OutputFormat的流程,一邊畫圖
一邊說。
3)項目部分
(1)讓我介紹項目我都是給他要筆要紙,手繪架構圖。
離線:data->flume->kafka->hdfs->hadoop/spark->mysql->前端展示
實時:data->flume->kafka->SparkStreaming->mysql->^/端展示
kafka到hdfs是自定
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年黃岡中學(含黃岡中學實驗學校)專項公開招聘教師16人備考題庫有答案詳解
- 小學教師數(shù)字教學能力評價與智能評價系統(tǒng)在生物教育中的應用研究教學研究課題報告
- 合肥市醫(yī)療器械檢驗檢測中心有限公司2025年下半年第二批社會招聘備考題庫及參考答案詳解1套
- 3D可視化技術對神經外科術后并發(fā)癥的預防作用
- 四川托普信息技術職業(yè)學院2025-2026學年第二學期師資招聘備考題庫含答案詳解
- 2025年保山市隆陽區(qū)瓦房彝族苗族鄉(xiāng)中心衛(wèi)生院鄉(xiāng)村醫(yī)生招聘備考題庫及一套完整答案詳解
- 2025年杭州之江灣股權投資基金管理有限公司招聘備考題庫及1套參考答案詳解
- 2025年四川省教育融媒體中心(四川教育電視臺)公開招聘編外工作人員備考題庫及參考答案詳解
- 統(tǒng)編七年級上第3課 遠古的傳說 課件
- 2025年凱欣糧油有限公司招聘備考題庫完整答案詳解
- 酒駕恢復合同范本
- 湖南省長沙市望城區(qū)2024-2025學年四年級上學期期末考試數(shù)學試題
- 保安押運合同范本
- 甘肅省蘭州新區(qū)2024-2025學年六年級上學期期末考試數(shù)學試題
- 公交車站設施維護管理方案
- 2024初級會計真題及答案(實務+經濟法)
- 2025中國融通資產管理集團有限公司社會招聘考試筆試參考題庫附答案解析
- 2025心肺復蘇理論考試試題及答案
- 雨課堂在線學堂《不朽的藝術:走進大師與經典》課后作業(yè)單元考核答案
- 公司海藻繁育工合規(guī)化技術規(guī)程
- 紅薯課件教學課件
評論
0/150
提交評論