原创 YARN-ApplicationMaster啓動流程

一、流程圖 基於Hadoop2.6版本 二、狀態轉化 RMAppImpl 狀態轉化 NEW -> NEW_SAVING (STEP 1) NEW_SAVING -> SUBMITED (STEP 3) SUBMITED -

原创 YARN-Container申請和分配

一、流程圖 ApplicationMaster向ResourceManager請求到獲取Container過程,ResourceManager內部如何運轉過程,分爲以下兩個階段 階段1:AM彙報資源需求 並領取已分配資源。 階

原创 HIVE Map和Reduce數量 優化點

一、Map的數量是怎麼計算 代碼位置:org.apache.hadoop.hive.ql.io.(HiveInputFormat | CombineHiveInputFormat) 函數:getSplits Hive的HiveIn

原创 數據資產管理-簡單總結

2020.3.6 總結 數據資產 是什麼 在以下的基礎上 數據標準(命名、模型、開發、流程規範) 數據治理(元數據、數據質量、血緣分析、生命週期、數據安全) 數據連通融合(全域標籤、oneid) 以數據服務爲分析價值的路口,

原创 HIVE - UDTF開發(指定分割符分割字符串,返回對應的大小寫字符串)

一、實現展示 hive> desc test_split_string; name string hive> select * from test_split_string; John,Smith

原创 Dr-Elephant 丟失部分 YARN JOB

背景 job_1574701645518_0469 在MR HISTORY裏是存在 PS. 注意這裏是 26號開始的任務 但是在 dr-elephant 搜索不到 通過查看dr-elephant日誌 在2019/11/25

原创 hive -f 文件內容裏的註釋引發小Bug

問題記錄 run.hql 文件內容如下 -- line1 -- line2 ; select 1; 或者 -- line1 -- line2 在執行 hive -f run.hql 時會報錯,原因是第二行沒有作爲註釋

原创 Hive Sql 遷移到 Spark Sql 問題集合

合併小文件 spark sql 默認的 shuffle分區數是200 (spark.sql.shuffle.partitions)因此產生的小文件是很多的。 合併小文件方法: 1、設置合併文件參數 spark.sql.adap

原创 HIVE - UDAF開發(字符串中出現 指定字符的次數,再求次數的平均數)

一、實現展示 hive> desc test_avg_str_in_str; user_id int name string value in

原创 通過 Dr-Elephant 監控異常HIVE任務並報警

Dr-Elephant收集到的YARN JOB信息後,存入對應的mysql表(yarn_app_result、yarn_app_heuristic_result、yarn_app_heuristic_result_details)

原创 HBase二級索引 簡易理解

一、解決的問題 1、RowKey 例子 RowKey: date__hive_table (存儲着 每一天Hive表的元數據) 以下需求 查詢效率高 1、某一天的 hive_table 對應的元數據 2、某一天的 所有元數據 2、

原创 HIVE元數據使用場景落地(python版本)

一、背景參考 數倉-HIVE元數據收集指標 二、使用場景舉例 1、調度元數據 通知-關鍵任務完成時間 異常-關鍵任務沒按時完成 2、存儲元數據 佔用HDFS空間TOP表 HDFS文件數 新增TOP表 3、計算元數據

原创 MapReduce 二次排序總結

需求 1、輸入數據: keyA 1 keyB 3 keyB 77 keyB 54 keyA 2 keyC 22 keyC 221 keyC 20 2、目標輸出 keyA 1,2 keyB 3,54,77 keyC 20,22,2

原创 數倉ETL代碼優化 - 表字段 被過濾和聚合的次數

優化案例 假設以下代碼,在不同的調度任務中重複出現。那麼是否可以抽出公共代碼,減少資源使用。 -- 是否可以將埋點裏 搜索相關的 整合成一張表 select * from app_event_tracking where op_t

原创 數倉ETL代碼優化 - 找到經常在一起做JOIN的表

優化案例 假設以下代碼,在不同的調度任務中重複出現。那麼是否可以抽出公共代碼,減少資源使用。 -- 任務 1 select t1.*, t2.* from table_a t1 join table_b t2 on t1.id =