358、大家的集羣規模?node
開發集羣:10臺(8臺可用)8核cpumysql
359、大家的數據是用什麼導入到數據庫的?導入到什麼數據庫?linux
處理以前的導入:經過hadoop命令導入到hdfs文件系統web
處理完成以後的導出:利用hive處理完成以後的數據,經過sqoop導出到mysql數據庫中,以供報表層使用。面試
360、大家業務數據量多大?有多少行數據?(面試了三家,都問這個問題)算法
開發時使用的是部分數據,不是全量數據,有將近一億行(八、9千萬,具體不詳,通常開發中也沒人會特別關心這個問題)sql
361、大家處理數據是直接讀數據庫的數據仍是讀文本數據?shell
將日誌數據導入到hdfs以後進行處理數據庫
362、大家寫hive的hql語句,大概有多少條?apache
不清楚,我本身寫的時候也沒有作過統計
363、大家提交的job任務大概有多少個?這些job執行完大概用多少時間?(面試了三家,都問這個問題)
沒統計過,加上測試的,會與不少
364、hive跟hbase的區別是?
365、你在項目中主要的工做任務是?
利用hive分析數據
366、你在項目中遇到了哪些難題,是怎麼解決的?
某些任務執行時間過長,且失敗率太高,檢查日誌後發現沒有執行完就失敗,緣由出在hadoop的job的timeout太短(相對於集羣的能力來講),設置長一點便可
367、你本身寫過udf函數麼?寫了哪些?
這個我沒有寫過
368、你的項目提交到job的時候數據量有多大?(面試了三家,都問這個問題)
不清楚是要問什麼
369、reduce後輸出的數據量有多大?
370、一個網絡商城1天大概產生多少G的日誌? 4tb
371、大概有多少條日誌記錄(在不清洗的狀況下)? 7-8百萬條
372、日訪問量大概有多少個?百萬
373、註冊數大概多少?不清楚 幾十萬吧
374、咱們的日誌是否是除了apache的訪問日誌是否是還有其餘的日誌?關注信息
375、假設咱們有其餘的日誌是否是能夠對這個日誌有其餘的業務分析?這些業務分析都有什麼?
三10、面試總結
397、Hadoop體系結構(HDFS與MapReduce的體系結構)、Hadoop相比傳統數據存儲方式(好比mysql)的優點?
398、Hadoop集羣的搭建步驟、Hadoop集羣搭建過程當中碰到了哪些常見問題(好比datanode沒有起來)、Hadoop集羣管理(如何動態增長和卸載節點、safe mode是什麼、經常使用的命令kill等)?
399、HDFS的namenode與secondarynamenode的工做原理(重點是日誌拉取和合並過程)、hadoop 1.x的HDFS的HA方案(namenode掛掉的狀況如何處理、datanode掛掉的狀況如何處理)?
400、HDFS的經常使用shell命令有哪些?分別對應哪些Client Java API?:顯示文件列表、建立目錄、文件上傳與下載、文件內容查看、刪除文件
401、HDFS的文件上傳與下載底層工做原理(或HDFS部分源碼分析):FileSystem的create()和open()方法源碼分析?
402、MapReduce計算模型、MapReduce基礎知識點(MapReduce新舊API的使用、在linux命令行運行MapReduce程序、自定義Hadoop數據類型)?
403、MapReduce執行流程:「天龍八步」,計數器、自定義分區、自定義排序、自定義分組、如何對value進行排序:次排序+自定義分組、歸約?
404、MapReduce的shuffle工做原理、MapReduce工做原理(MapReduce源碼、InputStream源碼、waitForCompletion()源碼)、jobtracker如何建立map任務和reduce任務是面試的重點。
405、MapReduce進階知識:Hadoop的幾種文件格式、常見輸入輸出格式化類、多輸入多輸出機制、MapReduce的常見算法(各類join原理和優缺點、次排序和總排序)?
406、MapReduce性能優化(shuffle調優、壓縮算法、更換調度器、設置InputSplit大小減小map任務數量、map和reduce的slot如何設置、數據傾斜原理和如何解決)?
407、HBase的體系結構和搭建步驟、shell命令與Java API、HBase做爲MapReduce的輸入輸出源、高級Java API、工做原理(重點是combine和split原理)、行鍵設計原則、性能優化?
408、Hive的工做原理、兩種元數據存放方式、幾種表之間的區別、數據導入的幾種方式、幾種文件格式、UDF函數、性能調優(重點是join的時候如何放置大小表)?
409、Zookeeper、Flume、Pig、Sqoop的基本概念和使用方式,ZooKeeper被問到過其如何維護高可用(若是某個節點掛掉了它的處理機制)?
410、Hadoop2:體系結構、HDFS HA、YARN?
##########################################################################
關係型數據庫和非關係型數據庫的區別?
提示:
關係型數據庫經過外鍵關聯來創建表與表之間的關係,非關係型數據庫一般指數據以對象的形式存儲在數據庫中,而對象之間的關係經過每一個對象自身的屬性來決定。
對數據庫高併發讀寫、高可擴展性和高可用性的需求,對海量數據的高效率存儲和訪問的需求,存儲的結構不同,非關係數據庫是列式存儲,在存儲結構上更加自由。
412、hive的兩張表關聯,使用mapreduce是怎麼寫的?
提示:打標記笛卡爾乘積
413、hive相對於Oracle來講有那些優勢?
提示:
hive是數據倉庫,oracle是數據庫,hive可以存儲海量數據,hive還有更重要的做用就是數據分析,最主要的是免費。
414、如今咱們要對Oracle和HBase中的某些表進行更新,你是怎麼操做?
提示:
disable '表名'
alter '代表', NAME => '列名', VERSIONS =>3
enable '表名'
415、HBase接收數據,若是短期導入數量過多的話就會被鎖,該怎麼辦? 集羣數16臺 ,高可用性的環境。
參考:
通 過調用HTable.setAutoFlush(false)方法能夠將HTable寫客戶端的自動flush關閉,這樣能夠批量寫入數據到HBase, 而不是有一條put就執行一次更新,只有當put填滿客戶端寫緩存時,才實際向HBase服務端發起寫請求。默認狀況下auto flush是開啓的。
41六、說說大家作的hadoop項目流程?
417、大家公司的服務器架構是怎麼樣的(分別說下web跟hadoop)?
418、假若有1000W用戶同時訪問同一個頁面,怎麼處理?
提示:優化代碼、靜態化頁面、增長緩存機制、數據庫集羣、庫表散列。。。
419、怎樣將mysql的數據導入到hbase中? 不能使用sqoop,速度太慢了
提示:
A、一種能夠加快批量寫入速度的方法是經過預先建立一些空的regions,這樣當數據寫入HBase時,會按照region分區狀況,在集羣內作數據的負載均衡。
B、 hbase裏面有這樣一個hfileoutputformat類,他的實現能夠將數據轉換成hfile格式,經過new 一個這個類,進行相關配置,這樣會在hdfs下面產生一個文件,這個時候利用hbase提供的jruby的loadtable.rb腳本就能夠進行批量導 入。
420、在hadoop組中你主要負責那部分?
提示:負責編寫mapreduce程序,各個部分都要參加
421、怎麼知道hbase表裏哪些作索引?哪些沒作索引?
提示:
有且僅有一個:rowkey,因此hbase的快速查找創建在rowkey的基礎的,而不能像通常的關係型數據庫那樣創建多個索引來達到多條件查找的效果。
42二、hdfs的原理以及各個模塊的職責
42三、mapreduce的工做原理
42四、map方法是如何調用reduce方法的
425、fsimage和edit的區別?
提示:fsimage:是存儲元數據的鏡像文件,而edit只是保存的操做日誌。
426、hadoop1和hadoop2的區別?
提示:
(1) hdfs的namenode和mapreduce的jobtracker都是單點。
(2) namenode所在的服務器的內存不夠用時,那麼集羣就不能工做了。
(3)mapreduce集羣的資源利用率比較低。
單NN的架構使得HDFS在集羣擴展性和性能上都有潛在的問題,在集羣規模變大後,NN成爲了性能的瓶頸。Hadoop 2.0裏的HDFS Federation就是爲了解決這兩個問題而開發的。擴大NN容量,共享DN數據,且方便客戶端訪問。
427、hdfs中的block默認報錯幾份?
提示:3份
428、哪一個程序一般與nn在一個節點啓動?並作分析
提示:jobtrack,將二者放在一塊兒,減小網絡訪問,IO訪問的時間,提升了效率。
429、列舉幾個配置文件優化?
430、寫出你對zookeeper的理解
提示:大部分分佈式應用須要一個主控、協調器或控制器來管理物理分佈的子進程(如資源、任務分配等)。目前,大部分應用須要開發私有的協調程序,缺少一個通用的機制協調程序的反覆編寫浪費,且難以造成通用、伸縮性好的協調器。
ZooKeeper:提供通用的分佈式鎖服務,用以協調分佈式應用。
431、datanode首次加入cluster的時候,若是log報告不兼容文件版本,那須要namenode執行格式化操做,這樣處理的緣由是?
提示:
這樣處理是不合理的,由於那麼namenode格式化操做,是對文件系統進行格式化,namenode格式化時清空dfs/name下空兩個目錄下的全部文件,以後,會在目錄dfs.name.dir下建立文件。
文本不兼容,有可能時namenode 與 datanode 的 數據裏的namespaceID、clusterID不一致,找到兩個ID位置,修改成同樣便可解決。
432、談談數據傾斜,如何發生的,並給出優化方案。
緣由:
(1)key分佈不均勻
(2)業務數據自己的特性
(3)建表時考慮不周
(4)某些SQL語句自己就有數據傾斜
map處理數據量的差別取決於上一個stage的reduce輸出,因此如何將數據均勻的分配到各個reduce中,就是解決數據傾斜的根本所在。
優化:參數調節;
433、介紹一下HBase過濾器
43四、mapreduce基本執行過程
43五、談談hadoop1和hadoop2的區別
436、談談HBase集羣安裝注意事項?
########################################################
需 要注意的地方是 ZooKeeper的配置。這與 hbase-env.sh 文件相關,文件中 HBASE_MANAGES_ZK 環境變量用來設置是使用hbase默認自帶的 Zookeeper仍是使用獨立的ZooKeeper。HBASE_MANAGES_ZK=false時使用獨立的,爲true時使用默認自帶的。
某個節點的HRegionServer啓動失敗,這是因爲這3個節點的系統時間不一致相差超過集羣的檢查時間30s。
397、Hadoop體系結構(HDFS與MapReduce的體系結構)、Hadoop相比傳統數據存儲方式(好比mysql)的優點?
398、Hadoop集羣的搭建步驟、Hadoop集羣搭建過程當中碰到了哪些常見問題(好比datanode沒有起來)、Hadoop集羣管理(如何動態增長和卸載節點、safe mode是什麼、經常使用的命令kill等)?
399、HDFS的namenode與secondarynamenode的工做原理(重點是日誌拉取和合並過程)、hadoop 1.x的HDFS的HA方案(namenode掛掉的狀況如何處理、datanode掛掉的狀況如何處理)?
400、HDFS的經常使用shell命令有哪些?分別對應哪些Client Java API?:顯示文件列表、建立目錄、文件上傳與下載、文件內容查看、刪除文件
401、HDFS的文件上傳與下載底層工做原理(或HDFS部分源碼分析):FileSystem的create()和open()方法源碼分析?
402、MapReduce計算模型、MapReduce基礎知識點(MapReduce新舊API的使用、在linux命令行運行MapReduce程序、自定義Hadoop數據類型)?
403、MapReduce執行流程:「天龍八步」,計數器、自定義分區、自定義排序、自定義分組、如何對value進行排序:次排序+自定義分組、歸約?
404、MapReduce的shuffle工做原理、MapReduce工做原理(MapReduce源碼、InputStream源碼、waitForCompletion()源碼)、jobtracker如何建立map任務和reduce任務是面試的重點。
405、MapReduce進階知識:Hadoop的幾種文件格式、常見輸入輸出格式化類、多輸入多輸出機制、MapReduce的常見算法(各類join原理和優缺點、次排序和總排序)?
406、MapReduce性能優化(shuffle調優、壓縮算法、更換調度器、設置InputSplit大小減小map任務數量、map和reduce的slot如何設置、數據傾斜原理和如何解決)?
407、HBase的體系結構和搭建步驟、shell命令與Java API、HBase做爲MapReduce的輸入輸出源、高級Java API、工做原理(重點是combine和split原理)、行鍵設計原則、性能優化?
408、Hive的工做原理、兩種元數據存放方式、幾種表之間的區別、數據導入的幾種方式、幾種文件格式、UDF函數、性能調優(重點是join的時候如何放置大小表)?
409、Zookeeper、Flume、Pig、Sqoop的基本概念和使用方式,ZooKeeper被問到過其如何維護高可用(若是某個節點掛掉了它的處理機制)?
410、Hadoop2:體系結構、HDFS HA、YARN?