1. 程式人生 > >Dr.Elephant啟動過程問題彙總

Dr.Elephant啟動過程問題彙總

在首次啟動Dr.Elephant時,因為配置不當或者環境因素可能會導致啟動失敗。當啟動失敗後,我們可以從Dr.Elephant的日誌檔案(預設的啟動日誌是dr.log)中檢視啟動過程日誌,找到Error和Exception,定位問題所在。

下面,是我總結的自己以及大家在啟動過程中遇到的一些問題,如果大家也遇到了這些問題,希望可以幫助到你們。

問題一

問題描述

日誌中記錄ERROR:“Specified key was too long; max key length is 767 bytes [ERROR:1071, SQLSTATE:42000]”, “Database 'default' is in an inconsistent state!”

解決辦法

以上兩個提示如果都出現,那麼原因是:在Dr.Elephant往MySQL的表中創索引時,索引過長導致的,關於這個問題的詳細描述,可以檢視我的另一篇文章“MySQL索引長度受限怎麼辦?”。這個問題在Dr.Elephant剛開源時出現的,以後的版本中可能會修復這個問題。問題的原因是:Dr.Elephant的建表語句有一些問題,例如在Dr.Elephant原始碼檔案1.sql中有如下的建立索引語句:

create index yarn_app_result_i4 on yarn_app_result (flow_exec_id);
create index yarn_app_result_i5 on yarn_app_result (job_def_id);
create index yarn_app_result_i6 on yarn_app_result (flow_def_id);
列flow_exec_id、job_def_id和flow_def_id的型別是VARCHAR(800),在這三個列上各自建索引是,索引長度都是3*800=2400,遠超過了MySQL對單列索引長度的限制767,所以丟擲異常導致啟動失敗。大家可以檢視https://github.com/linkedin/dr-elephant/issues/31 中我和LinkedIn大神關於這個問題的溝通,可以瞭解的更詳細一些以及解決辦法。具體解決辦法是將上面的三個SQL語句修改為:
create index yarn_app_result_i4 on yarn_app_result (flow_exec_id(100));
create index yarn_app_result_i5 on yarn_app_result (job_def_id(100));
create index yarn_app_result_i6 on yarn_app_result (flow_def_id(100));
限制每個索引的長度。就不會再丟擲異常了。

還有一點需要注意,如果沒有提示“Specified key was too long; max key length is 767 bytes [ERROR:1071, SQLSTATE:42000]”, 而只有“Database 'default' is in an inconsistent state!”。這個時候,很可能是DB的狀態確實有問題。比如,可能忘記了建立使用到的資料庫,可能資料庫連線突然中斷等等。需要我們詳細的驗證資料庫的問題。

問題二

問題描述

Dr.Elephant啟動正常,但是無法收集到任務資料。具體表現為,hadoop平臺已經執行過很多工,Dr.Elephant正常啟動後,通過瀏覽器訪問host+port可以開啟Dr.Elephant UI頁面,但是沒有任何任務資訊。資料庫中表也是空的。

解決辦法

  1. 確保編譯配置檔案compile.conf中Hadoop平臺版本號和工作中的Hadoop版本號一致
  2. 確保Hadoop平臺的配置檔案目錄、內容無誤
潤林遇到了這個問題,經過排查,發現原因是叢集上有兩個版本的Hadoop,使用了錯誤的Hadoop版本和配置檔案導致的這個問題。 作者簡介:屈世超,對高併發系統設計開發感興趣,現專注於大資料開發工作。曾任職小米科技公司服務端後臺開發工程師,現擔任EverString資料平臺組高階開發工程師。

相關推薦

Dr.Elephant啟動過程問題彙總

在首次啟動Dr.Elephant時,因為配置不當或者環境因素可能會導致啟動失敗。當啟動失敗後,我們可以從Dr.Elephant的日誌檔案(預設的啟動日誌是dr.log)中檢視啟動過程日誌,找到Error和Exception,定位問題所在。 下面,是我總結的自己以及大家在啟動

Dr.Elephant 部署啟動詳細流程

------------------ 最近嘗試在測試環境安裝部署了Dr.Elephant,花了不少時間,碰到一些問題。藉助於官方文件和LinedIn akshayrai大神的幫助,最終成功啟動Dr.Elephant。鑑於國內還沒有類似的文章詳細介紹Dr.Elephant的

ORACLE 啟動過程

命名 獲得 red 參數 失敗 一個數據庫 技術 文件中 file 1  STARTUP NOMOUNT   1.讀取環境變量下dbs目錄下的參數文件(spfile/pfile)     查找參數文件的順序如上面列表的,讀取優先級:       spfilechong

【轉】Android 4.0 Launcher2源碼分析——啟動過程分析

handler flag 這一 第一次啟動 asynctask pla size ontouch wait Android的應用程序的入口定義在AndroidManifest.xml文件中可以找出:[html] <manifest xmlns:android="htt

Spring容器啟動過程

spring啟動搞了一年多的Java了,每個項目都在用Spring,這幾天沒事看了看Spring源碼,總結了下Spring容器的啟動過程,想把它記錄下來,免得忘了spring容器的啟動方式有兩種:1、自己提供ApplicationContext自己創建Spring容器2、Web項目中在web.xml中配置監聽

深入理解 JBoss 7/WildFly Domain 模式啟動過程

ket builder 代碼調試 ref finished rop mas stopped rgs 概述JBoss 7/WildFly 以 domain 模式啟動時會啟動多個 JVM。比如例如以下通過啟動腳本啟動 domain 模式:./domain.sh啟動後我們查看進

【Java】【Flume】Flume-NG啟動過程源代碼分析(一)

code extends fix tar top 依據 oid article gif 從bin/flume 這個shell腳本能夠看到Flume的起始於org.apache.flume.node.Application類,這是flume的main函數所在。   m

iOS程序的啟動過程

run 技術分享 plist文件 屬性 對象賦值 進行 執行 lease har UIApplicationMain main函數中執行了一個UIApplicationMain這個函數 int UIApplicationMain(int argc, char *ar

s5pv210的啟動過程

s5pv210 過程 設置 nor div 讀取 mpi 0kb 不同的 s5pv210的啟動方式:SD0啟動,SD2啟動,USB啟動 s5pv210啟動涉及的硬件 不需要初始化的外存Norflash(iROM)+靜態內存SRAM (iRAM ) 需要初始化的大動態內存

X86架構下Linux啟動過程分析

重要 ack csdn 檢查 point article span 註意 eap 1、X86架構下的從開機到Start_kernel啟動的整體過程 這個過程簡要概述為: 開機——>BIOS——>GRUB/LILO——>Linux Kernel

linux的啟動過程

tle 分析 ilo 調用 lin 控制臺 啟動順序 等等 disk 如果你對Linux操作系統有一定的了解,想對其更深層次的東西做進一步探究。這當中就包括系統的啟動流程、文件系統的組成結構、基於動態庫和靜態庫的程序在執行時的異同、協議棧的架構和原理、驅動程序的機制等等

springboot啟動過程(1)-初始化

好的 事件監聽 spa 兩個 包括 servlet 實例對象 ice 機制 1 springboot啟動時,[email protected]/* */函數,執行SpringApplication.run(DemoApplication.class, arg

Linux的2種啟動過程

linux 啟動過程 Linux啟動過程分為2種,init方式和systeamd方式。先說init啟動過程:1.首先,啟動電源。2.啟動POST(Power on self test),加電自檢程序,檢查主板硬件上有無短路等等,如果正常,會“滴”的響一聲,這是很多人熟知的開機“滴”聲。(上面那篇文章沒

PMP 項目管理 啟動過程

pmp 項目管理PMP 項目管理 啟動過程組

Linux開機啟動過程分析

物理內存 登錄 page thread 陷阱門 execute 啟動過程 font 定義 Linux開機啟動過程分析 開機過程指的是從打開計算機電源直到LINUX顯示用戶登錄畫面的全過程。分析LINUX開機過程也是深入了解LINUX核心工作原理的一個很好的途徑。 啟動第一

u-boot-201611 啟動過程分析——基於smdk2410

u-bootu-boot-201611 啟動過程分析——基於smdk2410

linux系統啟動過程具體解釋-開機加電後發生了什麽 --linux內核剖析(零)

界面 種類 system pos 放置 nlog 提示 mar .com 本文參考了例如以下文章 深入理解linux啟動過程 mbr (主引導記錄(Master Boot Record)) 電腦從開機加電到操作系統main函數之前執行的過程

centos7啟動過程及systemd祥細說明

引導 ica 中斷 use level swa lock 允許 mct 開機啟過程POST—>BOOT SEQUENCE—> BOOTLOADER—>KERNEL + INITRAMFS(INITRD)—>ROOTFS—>/sbin/initP

CentOS5/6啟動過程

6 centos5 啟動流程 CentOS系列的操作系統的架構類型是X86架構,其內核實現方式是單內核,單內核的意義的在於他對外表現為一個應用程序即一個進程啟動整個系統,所有的功能都集中在這一個進程裏;而windows系列的內核實現方式是微內核,每種功能使用單獨一個子系統來實現;CentOS系

Zygote和System進程的啟動過程

ini 進一步 soc loop 進入 and 連接 internal eat 韓夢飛沙 韓亞飛 [email protected]/* */ yue31313 han_meng_fei_sha #Zygote和System進程的啟動過程 ##init