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...