原创 二、Hera調度系統初始化、生成和清理版本

先了解Hera代碼裏一些基本數據結構 一、Event事件、Listener、Dispatcher 一、初始化 Listener、Dispatcher.jobHandlers 初始化 不同任務類型的Listener 獲取前2天到當

原创 三、Hera調度系統 待執行隊列 入隊和出隊時機

簡單介紹 待運行隊列(MasterContext.scheduleQueue) 生產者:定時時間到、或者依賴任務都執行完,往隊列裏添加待執行的任務 消費者:worker 定時去掃描隊列裏 是否有任務 需要執行 一、定時任務如何往隊

原创 一致性維度表 設計思路

1、設計目標 儘可能生成豐富維度屬性 儘可能多給出有意義文字性描述 (xxx_id + xxx_name) 沉澱出通用的維度屬性 (需要複雜運算得到,比如商品的三級分類名稱,需要JOIN品類表得到 category3 name

原创 一、Hera調度系統基本數據結構(Event、Listener、Dispatcher)

簡單介紹 參照文章 zeus源碼剖析之事件處理機制 瞭解Hera也是使用着 觀察者模式 進行對事件處理。 其中老鷹是 Event事件,母雞是 不同任務類型的Listener, 小雞是 Dispatcher.jobHandlers

原创 YARN假死處理(JOB超過10000個)

背景 YARN有資源,但有很多JOB處於PENDING狀態,獲取不到資源。 這時查看 resourcemanager log日誌,發現有大量的以下信息。 resourcemanager.RMAppManager (RMAppMa

原创 zeus調度工具啓動慢(zeus_action數據量太大)

記一次由於zeus服務停止後,啓動花半小時… MasterContext 初始化 // MasterContext.java public void init(int port){ log.info("init begin");

原创 HIVE SQL數據傾斜情況以及解決辦法

如何查看歷史所有數據傾斜的任務 參考之前的博客 獲取YARN上執行時間最長的JOB列表,並查看是否存在數據傾斜 1. JOIN 數據傾斜 1.1 空值問題 select t1.id from table_a t1 left

原创 獲取YARN上執行時間最長的JOB列表,並查看是否存在數據傾斜

處理思路 1、通過 HistoryServerRestApi 獲取YARN JOB的基本信息 (包括JOB的 ID和名稱,開始時間和結束時間) http://<history server http address:port>/w

原创 HIVE表 佔用HDFS空間 TOP表查詢

思路 1、通過Hive元數據,獲取到表和HDFS的對應關係 2、通過 pyhdfs工具類的get_content_summary方法 快速獲取到佔用HDFS大小 代碼如下 # requirements.txt MySQL-pyth

原创 HIVE 字段級血緣分析 寫入Neo4j

Step 1. 利用HIVE Hook LineageLogger 獲取字段之間的依賴關係 注意:LineageLogger Hook 是Hive2.0版本之後存在的,如果HIVE版本不夠需要升級HIVE版本。PS.CDH有的HI

原创 SQL 計算留存率 思路

問題 計算每日訪問用戶 在之後日期的 留存數 基礎表 每日訪問用戶ID create external table if not exists user_visit_date ( user_id bigint comment

原创 hive collect_set 結果順序不一致

HQL 例子 select distinct channel from ( select user_id, collect_set(channel) as channel from test_table

原创 同一個sql 在Hive和spark-sql 跑出結果不一樣記錄

表Schema hive> desc gdm.dim_category; name string 分類名稱

原创 python使用ChartDirector繪圖

下載(安裝的方式比較特殊) 官網下載 安裝 查看python site-packages位置 >>> import sys >>> print sys.path ['', '/Library/Python/2.7/site-pac