最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

大數(shù)據(jù)常見面試題與參考答案總結(jié)

  發(fā)布時間:2020-01-23 14:22:49   作者:老子天下最美   我要評論
這篇文章主要介紹了大數(shù)據(jù)常見面試題與參考答案,總結(jié)分析了大數(shù)據(jù)面試過程中常見的各種問題、知識點及參考建議,需要的朋友可以參考下

技術(shù)面試題

1.Hadoop中有哪些組件?

              Hadoop=HDFS+Yarn+MapReduce+Hive+Hbase+...

            1).HDFS:分布式文件存儲系統(tǒng)

                 主:namenode,secondarynamenode

                 從:datanode

            2).Yarn:分布式資源管理系統(tǒng),用于同一管理集群中的資源(內(nèi)存等)

                     主:ResourceManager

                     從:NodeManager

            3).MapReduce:Hadoop的計算框架,用map和reduce方式實現(xiàn)數(shù)據(jù)的全局匯總

            4).Zookeeper:分布式協(xié)調(diào)服務(wù),用于維護集群配置的一致性、任務(wù)提交的事物性、集群中服務(wù)的地址管理、集群管理等

                     主:QuorumPeerMain

                     從:QuorumPeerMain

            5).Hbase:Hadoop下的分布式數(shù)據(jù)庫,類似于NoSQL

                     主:HMaster,HRegionserver,Region

            7).Hive:分布式數(shù)據(jù)倉庫,其實說白了就是一個數(shù)據(jù)分析工具,底層用的還是MapReduce

            8).Sqoop:用于將傳統(tǒng)數(shù)據(jù)庫中數(shù)據(jù)導(dǎo)入到hbase或者Hdfs中一個導(dǎo)入工具

            9).Spark:基于內(nèi)存的分布式處理框架

                     主:Master

                     從:Worker

2.Hdfs中角色有哪些?

          NameNode:管理元數(shù)據(jù)信息,給子節(jié)點分配任務(wù)(FSImage是主節(jié)點啟動時對整個文件系統(tǒng)的快照,Edits是修改記錄)

          DataNode:負(fù)責(zé)數(shù)據(jù)存儲,實時上報心跳給主節(jié)點

          SecondaryNameNode:

                1)首先,它定時到NameNode去獲取edit logs,并更新到fsimage上。一旦它有了新的fsimage文件,它將其拷貝回                            NameNode中。

               2) NameNode在下次重啟時會使用這個新的fsimage文件,從而減少重啟的時間。

3.Hdfs和Yarn有什么區(qū)別?

              1)Hdfs是分布式文件存儲系統(tǒng),是用來存儲文件的; 

              2)Yarn是一個資源管理系統(tǒng),可為上層應(yīng)用提供統(tǒng)一的資源管理和調(diào)度,它的引入為集群在利用率、資源統(tǒng)一管理和                        數(shù)據(jù)共享等方面帶來了巨大好處

4.MapReduce的shuffle過程?

              從Map產(chǎn)生輸出開始到Reduce取得數(shù)據(jù)作為輸入之前的過程稱作shuffle。

              1).Collect階段:將MapTask的結(jié)果輸出到默認(rèn)大小為100M的環(huán)形緩沖區(qū),保存的是key/value,Partition分區(qū)信息等。

              2).Spill階段:當(dāng)內(nèi)存中的數(shù)據(jù)量達到一定的閥值的時候,就會將數(shù)據(jù)寫入本地磁盤,在將數(shù)據(jù)寫入磁盤之前需要對數(shù)據(jù)                     進行一次排序的操作,如果配置了combiner,還會將有相同分區(qū)號和key的數(shù)據(jù)進行排序。

              3).Merge階段:把所有溢出的臨時文件進行一次合并操作,以確保一個MapTask最終只產(chǎn)生一個中間數(shù)據(jù)文件。

              4).Copy階段:ReduceTask啟動Fetcher線程到已經(jīng)完成MapTask的節(jié)點上復(fù)制一份屬于自己的數(shù)據(jù),這些數(shù)據(jù)默認(rèn)會                       保存在內(nèi)存的緩沖區(qū)中,當(dāng)內(nèi)存的緩沖區(qū)達到一定的閥值的時候,就會將數(shù)據(jù)寫到磁盤之上。

              5).Merge階段:在ReduceTask遠程復(fù)制數(shù)據(jù)的同時,會在后臺開啟兩個線程對內(nèi)存到本地的數(shù)據(jù)文件進行合并操作。

              6).Sort階段:在對數(shù)據(jù)進行合并的同時,會進行排序操作,由于MapTask階段已經(jīng)對數(shù)據(jù)進行了局部的排序,                                  ReduceTask只需保證Copy的數(shù)據(jù)的最終整體有效性即可。

5.MapReduce的Partition和Combine有什么區(qū)別?

                  1)combine分為map端和reduce端,作用是把同一個key的鍵值對合并在一起,可以自定義,該類的主要功能是合并相                         同的key鍵

                  2)partition是分割map每個節(jié)點的結(jié)果,按照key分別映射給不同的reduce,也是可以自定義的,partition的作用就是把                      這些數(shù)據(jù)歸類

6.Hadoop的高可用模式說一下?

7.Zookeeper在Hadoop中的作用?

                    1)Zookeepe主要用來解決分布式應(yīng)用中經(jīng)常遇到的數(shù)據(jù)管理問題,如集群管理、統(tǒng)一命名服務(wù)、分布式配置管理、                        分布式消息隊列、分布式鎖、分布式協(xié)調(diào)等。

                    2)Zookeeper是一個由多個server組成的集群,一個leader,多個follower,每個server保存一份數(shù)據(jù)副本,全局?jǐn)?shù)據(jù)                         一致、分布式讀寫,更新請求轉(zhuǎn)發(fā),由leader實施。

8.Sqoop的底層原理?

                    是用來實現(xiàn)結(jié)構(gòu)型數(shù)據(jù)(如關(guān)系數(shù)據(jù)庫)和Hadoop之間進行數(shù)據(jù)遷移的工具。它充分利用了MapReduce的并行特                        點以批處理的方式加快數(shù)據(jù)的傳輸,同時也借助MapReduce實現(xiàn)了容錯

9.Sqoop是怎么連接的關(guān)系型數(shù)據(jù)庫?

                    sqoop import-all-tables –connect jdbc:mysql://192.168.52.110/hivemetadb --username root -password root

10.Java中抽象類怎么理解?

                    抽象類不能實例化,繼承的關(guān)鍵字仍然是extends,而且繼承過后可以不覆蓋方法,只是使用繼承而來的方法

                     A:抽象類和抽象方法必須用abstract關(guān)鍵字修飾;

                   B:抽象類中不一定有抽象方法,但是有抽象方法的類必須定義為抽象類;

                 C:抽象類不能直接實例化;(可以通過子類(重寫方法后的子類)的多態(tài)方式實例化);

                         1.它不是具體的;

                         2.抽象類有構(gòu)造方法,用于子類訪問父類數(shù)據(jù)的初始化;

                D:抽象類的子類;

                         1.如果不想重寫抽象方法,該子類必須是抽象類;

                         2.成為具體類則必須重寫所有的抽象方法;

11.Hdfs的塊的大小多少能不能改成10M?

                    不能,假如數(shù)據(jù)塊設(shè)置過少,那需要讀取的數(shù)據(jù)塊就比較多,由于數(shù)據(jù)塊在硬盤上非連續(xù)存儲,普通硬盤因為需要                        移動磁頭,所以隨機尋址較慢,讀越多的數(shù)據(jù)塊就增大了總的硬盤尋道時間。當(dāng)硬盤尋道時間比io時間還要長的多                        時,那硬盤尋道時間就成了系統(tǒng)的一個瓶頸

12.你的項目中你的Hive倉庫怎么設(shè)計的?分幾層?

                  1 )源數(shù)據(jù)層:此層數(shù)據(jù)無任何更改,不對外開放,為臨時存儲層,是接口數(shù)據(jù)的臨時存儲區(qū)域,為后一步的數(shù)據(jù)處                          理做準(zhǔn)備。

                  2) 數(shù)據(jù)倉庫層(DW):DW層的數(shù)據(jù)應(yīng)該是一致的、準(zhǔn)確的、干凈的數(shù)據(jù),即對源系統(tǒng)數(shù)據(jù)進行了清洗(去除了                            雜質(zhì)后的數(shù)據(jù)。

                  2) 數(shù)據(jù)應(yīng)用層(DA或APP):前端應(yīng)用直接讀取的數(shù)據(jù)源;根據(jù)報表、專題分析需求而計算生成的數(shù)據(jù)。

13.Hive中的內(nèi)表和外表的區(qū)別?

                  1)在刪除內(nèi)部表的時候,Hive將會把屬于表的元數(shù)據(jù)和數(shù)據(jù)全部刪掉;

                  2)而刪除外部表的時候,Hive僅僅刪除外部表的元數(shù)據(jù),數(shù)據(jù)是不會刪除的

14.分區(qū)表和分桶表有什么區(qū)別?

                  1)分區(qū)就是分文件夾,在表文件夾下多一個文件夾,分區(qū)字段是虛擬的,用于標(biāo)識文件,分區(qū)字段一定不是表中存                           在的字段,否則會便宜報錯;

                  2)分桶功能默認(rèn)不開啟,需要手動開啟,分桶個數(shù)自定義,是相對于分區(qū)更細粒度的劃分,是分文件;

15.Hive優(yōu)化假如有數(shù)據(jù)傾斜怎么優(yōu)化?

 

16.假如你的分析的數(shù)據(jù)有很多小文件,你用SQL語句分析的話會出現(xiàn)什么情況?

17.能說說你項目中的模型表是怎么設(shè)計的嗎?

18.Yarn除了在Hadoop中應(yīng)用,還有什么用到了Yarn?

19.Azkaban的特性?

       1、Web用戶界面 
  2、方便上傳工作流 
  3、方便設(shè)置任務(wù)之間的關(guān)系 
  4、調(diào)度工作流 
  5、認(rèn)證/授權(quán)(權(quán)限的工作) 
  6、能夠殺死并重新啟動工作流 
  7、模塊化和可插拔的插件機制 
  8、項目工作區(qū) 
  9、工作流和任務(wù)的日志記錄和審計

20.怎么查看本機內(nèi)存CPU使用情況?

free -m

21.怎么查看目錄下的所有詳細情況?

       先使用 ls -a 查看當(dāng)前目錄下的所有文件;

       然后使用 ls -a -l 查看所有文件的詳細信息,每一行是一個文件的所有信息;

       再使用 ls -a -l -h 查看所有文件的詳細信息

22.Hbase索引和Hive索引有什么區(qū)別?

                  1.Hive中的表為純邏輯表,僅僅對表的元數(shù)據(jù)進行定義。Hive沒有物理存儲的功能,它完全依賴HDFS和                                          MapReduce。HBase表則是物理表,適合存放非結(jié)構(gòu)化的數(shù)據(jù)。

                  2.Hive是在MapReduce的基礎(chǔ)上對數(shù)據(jù)進行處理;而HBase為列模式,這樣使得對海量數(shù)據(jù)的隨機訪問變得可行。

                  3.HBase的存儲表存儲密度小,因而用戶可以對行定義成不同的列;而Hive是邏輯表,屬于稠密型,即定義列數(shù),每                       一行對列數(shù)都有固定的數(shù)據(jù)。

                  4.Hive使用Hadoop來分析處理數(shù)據(jù),而Hadoop系統(tǒng)是批處理系統(tǒng),所以數(shù)據(jù)處理存在延時的問題;而HBase是準(zhǔn)實                       時系統(tǒng),可以實現(xiàn)數(shù)據(jù)的實時查詢。

                  5.Hive沒有row-level的更新,它適用于大量append-only數(shù)據(jù)集(如日志)的批任務(wù)處理。而基于HBase的查詢,支                         持和row-level的更新。

                  6.Hive全面支持SQL,一般可以用來進行基于歷史數(shù)據(jù)的挖掘、分析。而HBase不適用于有join,多級索引,表關(guān)系                         復(fù)雜的應(yīng)用場景。

23.數(shù)據(jù)量大如何用Order by 全局排序?

24.Kafka,Flume中組件包括哪些?

       Kafka組件:

              Topic :消息根據(jù)Topic進行歸類

              Producer:發(fā)送消息者

              Consumer:消息接受者

              broker:每個kafka實例(server)

              Zookeeper:依賴集群保存meta信息。

       Flume組件:

              Agent:

              Source:

              Channel:

              Sink:

25.查看內(nèi)存使用情況/磁盤使用情況命令行?

     free -m

26.Hdfs的讀寫流程?

27.Flume中Agent各個組件包含什么?

             

28.Hive數(shù)據(jù)傾斜如何處理?內(nèi)部表,外部表,分區(qū),分桶

29.order by ,sort by ,destribute by,cluster by 區(qū)別?

       1)order by

              order by會對輸入做全局排序,因此只有一個Reducer(多個Reducer無法保證全局有序),然而只有一個Reducer,會導(dǎo)                  致當(dāng)輸入規(guī)模較大時,消耗較長的計算時間。

       2)sort by

              sort by不是全局排序,其在數(shù)據(jù)進入reducer前完成排序,sort by只會保證每個reducer的輸出有序,并不保證全局有                    序。sort by的數(shù)據(jù)只能保證在同一個reduce中的數(shù)據(jù)可以按指定字段排序。

       3)distribute by

             distribute by是控制在map端如何拆分?jǐn)?shù)據(jù)給reduce端的。hive會根據(jù)distribute by后面列,對應(yīng)reduce的個數(shù)進行分                     發(fā),默認(rèn)是采用hash算法。sort by為每個reduce產(chǎn)生一個排序文件。在有些情況下,你需要控制某個特定行應(yīng)該到哪個               reducer,這通常是為了進行后續(xù)的聚集操作。distribute by剛好可以做這件事。因此,distribute by經(jīng)常和sort by配合                   使 用。

       4)cluster by

             cluster by除了具有distribute by的功能外還兼具sort by的功能。但是排序只能是倒敘排序,不能指定排序規(guī)則為ASC或                 者DESC。

30.Sqoop怎么連接數(shù)據(jù)庫?

31.where和having的區(qū)別?

     1)  “Where” 是一個約束聲明,使用Where來約束來自數(shù)據(jù)庫的數(shù)據(jù),Where是在結(jié)果返回之前起作用的,且Where中不能使              用聚合函數(shù)。

       2)“Having”是一個過濾聲明,是在查詢返回結(jié)果集以后對查詢結(jié)果進行的過濾操作,在Having中可以使用聚合函數(shù)。

32.左連接和右連接的區(qū)別?

       左連接where只影向右表,右連接where只影響左表

              1)Left Join

                     select * from tbl1 Left Join tbl2 where tbl1.ID = tbl2.ID

                     左連接后的檢索結(jié)果是顯示tbl1的所有數(shù)據(jù)和tbl2中滿足where 條件的數(shù)據(jù)。

              2)Right Join

                     select * from tbl1 Right Join tbl2 where tbl1.ID = tbl2.ID

                     檢索結(jié)果是tbl2的所有數(shù)據(jù)和tbl1中滿足where 條件的數(shù)據(jù)。

33.Hive中如何對大量數(shù)據(jù)進行全局排序?

34.Linux指令

35.Shell,Hive,Hbase,Spark,Sqoop

36.機架感應(yīng)機制

項目面試題

1.大概介紹一下項目;

2.hbase表你們是怎么存數(shù)據(jù)的?一天數(shù)據(jù)量是多少?這么多數(shù)據(jù)你們都存hbase里嗎?一開始就是個文件,hbase是表結(jié)構(gòu),那你是怎么去獲取數(shù)據(jù)然后給存成表結(jié)構(gòu)的?

3.假如現(xiàn)在我要查詢每個月的每個片區(qū)里訂單成交量最高的那個司機ID,你怎么實現(xiàn)?

4.hive怎么讀取數(shù)據(jù)的?我要只存里邊我需要的數(shù)據(jù),你給我想下怎么優(yōu)化?

5.你都用過哪些ETL工具?怎么用的?就像flume是怎么獲取數(shù)據(jù)的,你怎么配置的?那kafka怎么讀取數(shù)據(jù)的?hive是直接從kafka里獲取數(shù)據(jù)嗎?

6.你建過外表嗎?怎么建的?為什么要建外表?

7.你會寫shell嗎?寫過哪些?

8.你應(yīng)該也經(jīng)常用linux命令吧,都用過哪些?我現(xiàn)在要查所有后綴是.txt的文件名,怎么查?grep用過嗎?

9.我現(xiàn)在不想查司機,我想查訂單,怎么去設(shè)計hbase表?

相關(guān)文章

最新評論

苗栗县| 洛宁县| 屯门区| 都兰县| 庄浪县| 克山县| 黄冈市| 扶绥县| 报价| 芜湖县| 毕节市| 凉城县| 大同县| 辽阳县| 平谷区| 于田县| 资源县| 泗水县| 明溪县| 鞍山市| 时尚| 兴海县| 浏阳市| 藁城市| 双桥区| 临沭县| 喀喇沁旗| 高安市| 绍兴市| 佳木斯市| 山东| 彭阳县| 卢湾区| 若尔盖县| 镇安县| 全南县| 元氏县| 东山县| 砀山县| 临潭县| 宜丰县|