概述
詳細
一、背景
Kettle作為用戶規模最多的開源ETL工具,強大簡潔的功能深受廣大ETL從業者的歡迎。但kettle本身的調度監控功能卻非常弱。Pentaho官方都建議采用crontab(Unix平台)和計划任務(Windows平台)來完成調度功能。所以大家在實施kettle作業調度功能的時候,通常采用以下幾種方式:使用spoon程序來啟動Job,使用crontab或計划任務,自主開發java程序來調用kettle的類庫。
二、項目介紹
Kettle調度監控平台(以下簡稱KS)是一個自主開發的javaweb程序,專門用來調度和監控由kettle客戶端創建的job和transformation。KS整體的框架是由spring+sprin gmvc +beetlsql整合而成,通過調用kettle的API來執行轉換和作業,並且使用quartz框架完成調度工作。
此版本基於kettle-8.0.0.0-28版本的API開發的,目前可以基本可以支持所有的組件,包括大數據組件(hbase、hive、hdfs等)。
三、項目結構
四、部署
-
基礎環境
-
操作系統:windows(linux類似)
-
預裝軟件:jdk1.8、mysql、tomcat、kettle8.0
-
將源碼中kettle-scheduler.sql導入mysql數據庫。
-
將源碼編譯打包后解壓到tomcat下的webapps目錄下。
-
配置km\WEB-INF\classes\resource\db.properties
jdbc.driver=com.mysql.jdbc.Driver //mysql驅動 jdbc.url=jdbc:mysql://192.22.107.97:3306/kettle-master?serverTimezone=UTC&characterEncoding=utf8&useUnicode=true&useSSL=false //mysql的jdbc url jdbc.username=root //mysql用戶名 jdbc.password=123456 //mysql密碼
-
配置km\WEB-INF\classes\resource\ kettle.properties
kettle.home=WEB-INF\\lib //kettlehome路徑, 此處不用修改,但是需要將kettle8.0的環境變量文件kettle.properties拷貝替換掉項目路徑km\WEB-INF\lib\.kettle下的同名文件 kettle.plugin=E:\\zhaxiaodong\\plugins //kettle插件目錄,可以自定義一個目錄,然后將data-integration\plugins目錄下所需的插件拷貝到此目錄下 kettle.script=Html\\js\\libs\\url //kettle所用到的js文件,目前未使用到 kettle.loglevel=detail //kettle日志級別 kettle.log.file.path=D:\\data-integration\\logs //執行kettle轉換和作業產生的日志存放的路徑 kettle.file.repository=D:\\data-integration\\test //存放上傳的文件作業或文件轉換的路徑,此功能已屏蔽,無需修改
-
將data-integration目錄下的simple-jndi和system文件夾拷貝到apache-tomcat-9.0.12\bin目錄下
-
配置\apache-tomcat-9.0.12\conf\ server.xml
<Connector port="8080" protocol="HTTP/1.1" connectionTimeout="20000" redirectPort="8443" /> //配置端口號 <Host name="localhost" appBase="webapps" unpackWARs="true" autoDeploy="true"> <Context path="/km" docBase="/km" reloadable ="true" debug="0" privileged="true"> </Context> … </Host>
-
啟動tomcat
-
Windows:apache-tomcat-9.0.12\bin\startup.bat;
-
Linux: apache-tomcat-9.0.12\bin\startup.sh;
-
訪問http://localhost:8080/km進入系統。
五、使用說明
-
登陸
訪問http://localhost:8080/km進入登陸界面,用戶名admin,密碼admin
-
首頁
首頁主要是顯示監控信息,當一個任務(作業或轉換)啟動后,這個任務就處於被系統的監控狀態下,首頁展示了總監控任務數、監控作業數、監控轉換數、轉換監控記錄(僅顯示5條)、作業監控記錄(僅顯示5條)以及7天內作業和轉換的監控狀況。
-
資源庫管理
管理kettle數據庫資源庫的信息,可以新增、修改、刪除數據庫資源庫。
-
任務管理 – 作業管理
管理作業定時任務,可以新增、修改、刪除作業定時任務,啟動后作業即開始運行。
-
任務管理 – 轉換管理
管理轉換定時任務,可以新增、修改、刪除轉換定時任務,啟動后轉換即開始運行。
-
任務管理 – 執行策略
管理執行策略,可以新增、修改、刪除執行策略(定時執行策略)。
-
監控管理 – 作業監控
處於運行的作業會被系統監控,此處顯示被監控的作業的監控信息,包括總作業任務數、總執行成功次數、總執行失敗次數以及每個作業的成功次數和失敗次數。查看詳情頁面還可以查看每次執行的日志及執行時間,日志還可下載。
-
監控管理 – 轉換監控
處於運行的轉換會被系統監控,此處顯示被監控的轉換的監控信息,包括總轉換任務數、總執行成功次數、總執行失敗次數以及每個轉換的成功次數和失敗次數。查看詳情頁面還可以查看每次執行的日志及執行時間,日志還可下載。
-
用戶管理
此菜單只有admin用戶登陸時顯示,用戶管理用戶,admin用戶可以新增用戶、編輯用戶、刪除用戶。
六、其他
最后希望大家可以一起維護此項目,如有問題可加入qq群提問 點擊鏈接加入群聊【QQ群:817362677】【kettle-scheduler交流群】:https://jq.qq.com/?_wv=1027&k=59nBFXl