當前位置︰首頁 > 職業發展 > 正文

大數據面試經驗總結2018-11-26 15:27:16 | 編輯︰hely | 查看︰ | 評論︰0

hive的計算是通過什麼實現的?hive是搭建在Hadoop集群上的一個SQL引擎,它將SQL語句轉化成了MapReduce程序在Hadoop上運行,所以hive的計算引擎是MapReduce,而hive的底層存儲采用的是HDFS

hive的計算是通過什麼實現的

hive是搭建在Hadoop集群上的一個SQL引擎,它將SQL語句轉化成了MapReduce程序在Hadoop上運行,所以hive的計算引擎是MapReduce,而hive的底層存儲采用的是HDFS

yarn和hive的關系

因為hive的底層實現是MapReduce,所以確切的來說是yarn和MapReduce的關系,yarn可以作為MapReduce計算框架的資源調度系統

NameNode和DataNode的通信原理

客戶端向DataNode發出RPC請求後,DataNode會向NameNode請求獲取block快,NameNode根據DataNode的塊報告和心跳, 會返回給DataNode指令. 通過這種方式NameNode間接地和DataNode進行通信,實際上NameNode作為Server端, 是不會主動去聯系DataNode的, 只有作為客戶端的DataNode才會去聯系NameNode.

內部表與外部表的區別

hive創建表的時候通過external修飾的來創建外部表,沒有external的則是內部表,當刪除內部表時,存儲在HDFS的數據將會被一起刪除,而刪除外部表時,數據則會保留

數據庫事務的概念

事務就是單個邏輯工作單元執行的一系列操作,要麼都執行,要麼都不執行,要滿足事務,就得滿足原子性、一致性、隔離性、持久性

談談HBASE底層的理解

(1)HBASE主要分為HMaster和HRegionServer,HMaster主要負責表和Region的管理,負責表的增刪改查,管理HRagionServer的負載均衡和Region的分布,還負責HRegionServer失效後Region的轉移

(2)HRegionServer主要負責存儲HRegion,每一個HRegion上有多個Hstore(對應表中的列簇),當寫入數據時,Hstore中的memstore會將數據寫入緩存,當緩存寫滿後(默認64M),會出發flush將緩存里的數據flush到磁盤形成storefile文件,storefile文件是Hfile的輕量級包裝,Hfile是附帶索引格式的文件

flume與kafka的區別

flume適合做日志采集,可以定制多種數據源,減少開發量;而kafka是分布式消息處理的中間件,自帶存儲功能,適合做日志緩存;flume主要用于將數據往HDFS、HBASE發送;如果涉及多個系統的使用,可以選擇用kafka

kafka如何保證數據不丟失、不重復消費

(1)在同步模式下,將ACKS設為-1,也就是將消息寫入leader和所有的副本

(2)在異步模式下,如果消息發送出去了還沒有收到確認的時候,緩沖池滿了,在配置文件中設置成不限時阻塞超時的時間,也就是說讓生產一直阻塞下去,這樣數據也不會丟

(3)將消息的offset存儲起來(如存儲到HBASE),每次消息處理時判斷是否處理過

如何搭建一個高並發高可用的平台

(1)空間換時間

多級緩存︰用戶頁面緩存、反向代理緩存、cache機制等

索引︰哈希(適用于數據的快速存取)、B+樹(適用于查找,避免多次IO)、倒排(適用于搜索領域)

(2)並行與分布式計算

切分任務、分而治之(基于數據的分解)

多進程、多線程並行執行(基于問題的分解)

(3)多維度的可用

負載均衡、容錯、備份

讀寫分離

依賴關系(能異步處理則異步)

監控模塊的運行

(4)伸縮

拆分(業務邏輯的分段、對數據的分表分庫)

(5)優化資源利用

資源的釋放

作者︰菜鳥甦先森

來源︰CSDN

上一篇︰博士應屆畢業的算法工程師們,年薪最高可達90萬! LinkedIn最新求職市場報告︰機器學習工程師需求1年增長12倍下一篇︰