Hive常見面試題1 0

2022-06-20 02:33:10 字數 1537 閱讀 9076

class testudfhive extends udfcatch(exception e)}}

排序優化:sort by效率高於order by

分割槽:使用靜態分割槽(statu_date="20160516",location="beijing"),每個分割槽對應hdfs上的乙個目錄,減少job和task數量;

使用表連線操作,解決group by資料傾斜問題

設定hive.groupby.skewindata=true,那麼hive會自動負載均衡,叫檔案合併成大檔案

使用udf或udaf函式:

eg:將hive統計分析結果匯入到mysql資料庫表中——sqoop操作

可以使用flume/ftp/kettle/datax。。。

根據業務自行定義。。。。。

共同點:

1.hbase 與 hive 都是架構在hadoop之上的。都是用hadoop作為底層儲存

區別:2.hive是建立在hadoop之上為了減少mapreduce jobs編寫工作的批處理系統,hbase是為了支援彌補hadoop對實時操作的缺陷的專案

3.想想你在操作rmdb資料庫,如果全表掃瞄,就用hive+hadoop/spark/flink,如果是索引訪問,就用hbase+hadoop/spark/flink

4.hive query就是mapreduce jobs可以從5分鐘到數小時不止,hbase是非常高效的,肯定比hive高效的多。

5.hive本身不儲存和計算資料,它完全依賴於hdfs和mapreduce,hive中的表純邏輯。

6.hive是物理表,不是邏輯表,提供乙個超大的記憶體hash表,搜尋引擎通過它來儲存索引,方便查詢操作

7.hbase是列儲存

8.hdfs作為底層儲存,hdfs是存放檔案的系統,而hbase負責組織檔案

9.hive需要到hdfs儲存檔案,需要用到mapreduce計算框架

三種:記憶體資料庫 derby—小,不常用。

本地mysql/常用遠端段mysql

hive建立內部表時,會將資料移動到資料倉儲指向的路徑,若建立外部表,僅記錄資料所在的路徑,不對資料的位置做任何改變。在刪除表的時候,內部表的元資料和資料會被一起刪除,而外部表只刪除元資料,不刪除資料,這樣外部表相對來說更加安全些,資料組織也更加靈活,方便共享源資料。。

hive有一套自己的sql解析引擎,稱作 metastore ,儲存在mysql或者derby資料庫中,可以將sql語句轉化為mapreducejob任務執行

底層是mapreduce,所以可以說是mapreduce優化

小檔案合併成大檔案

reduce資料在**中介於節點數*reducetask的最大數量的0.95倍到1.75倍

寫乙個udf函式,在建表的時候制定好分割槽

配置檔案中,開啟在 map 端的合併

在庫表設計的時候,盡量考慮rowkey 和 columnfamily的特性

進行hbase集群的調優(參考hbase調優)

metastore是一套對映工具,將sql語句轉換成對應的job任務區進行執行

常見面試題

1.get和post的區別 1 本質區別 get是向伺服器請求資料,post是向伺服器傳送資料。2 伺服器獲取值的方式 get方式提交的資料,伺服器端使用request.querystring獲取變數的值。post方式提交的資料,伺服器端使用request.form獲取資料。3 安全性 get安全效...

常見面試題

1 一行 實現1 100之和 lst i for i in range 1,101 print sum lst 2 如何在乙個函式內部修改全域性變數?在函式內部新增 global 變數名 這樣就可以在本地作用域定義全域性作用域了 name 大明 def eat name1 global name n...

常見面試題

dns解析 發起tcp三次握手,並建立tcp連線 發起http請求 伺服器相應http請求並得到html 伺服器解析html 並對頁面進行渲染然後返回給使用者 首先先進行ioc容器的初始化 ioc 容器的初始化過程分為三步驟 resource 定位 beandefinition 的載入和解析,bea...