日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

datax源码阅读二:Engine流程

發布時間:2024/9/21 编程问答 35 豆豆
生活随笔 收集整理的這篇文章主要介紹了 datax源码阅读二:Engine流程 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

一、根據前面python文件知道,java的main函數是com.alibaba.datax.core.Engine

public static void main(String[] args) throws Exception {int exitCode = 0;try {Engine.entry(args);} catch (Throwable e) {exitCode = 1;String trace = ExceptionTracker.trace(e);String errDesc = "未知datax錯誤,參考堆棧內容分析。";LOG.error("\n\n經DataX智能分析,該任務最可能的錯誤原因是:\n" + trace);if (e instanceof DataXException) {DataXException tempException = (DataXException) e;ErrorCode errorCode = tempException.getErrorCode();errDesc = errorCode.getDescription();if (errorCode instanceof FrameworkErrorCode) {FrameworkErrorCode tempErrorCode = (FrameworkErrorCode) errorCode;exitCode = tempErrorCode.toExitValue();}}System.exit(exitCode);}System.exit(exitCode); }

main函數主要catch了一下異常,并將異常信息打印出來,實際執行在entry函數中

public static void entry(final String[] args) throws Throwable {Options options = new Options();options.addOption("job", true, "Job config.");options.addOption("jobid", true, "Job unique id.");options.addOption("mode", true, "Job runtime mode.");BasicParser parser = new BasicParser();CommandLine cl = parser.parse(options, args);String jobPath = cl.getOptionValue("job");// 如果用戶沒有明確指定jobid, 則 datax.py 會指定 jobid 默認值為-1String jobIdString = cl.getOptionValue("jobid");RUNTIME_MODE = cl.getOptionValue("mode");Configuration configuration = ConfigParser.parse(jobPath);long jobId;if (!"-1".equalsIgnoreCase(jobIdString)) {jobId = Long.parseLong(jobIdString);} else {// only for dsc & ds & datax 3 updateString dscJobUrlPatternString = "/instance/(\\d{1,})/config.xml";String dsJobUrlPatternString = "/inner/job/(\\d{1,})/config";String dsTaskGroupUrlPatternString = "/inner/job/(\\d{1,})/taskGroup/";List<String> patternStringList = Arrays.asList(dscJobUrlPatternString,dsJobUrlPatternString, dsTaskGroupUrlPatternString);jobId = parseJobIdFromUrl(patternStringList, jobPath);}boolean isStandAloneMode = "standalone".equalsIgnoreCase(RUNTIME_MODE);if (!isStandAloneMode && jobId == -1) {// 如果不是 standalone 模式,那么 jobId 一定不能為-1throw DataXException.asDataXException(FrameworkErrorCode.CONFIG_ERROR, "非 standalone 模式必須在 URL 中提供有效的 jobId.");}configuration.set(CoreConstant.DATAX_CORE_CONTAINER_JOB_ID, jobId);//打印vmInfoVMInfo vmInfo = VMInfo.getVmInfo();if (vmInfo != null) {LOG.info(vmInfo.toString());}LOG.info("\n" + Engine.filterJobConfiguration(configuration) + "\n");LOG.debug(configuration.toJSON());ConfigurationValidate.doValidate(configuration);Engine engine = new Engine();engine.start(configuration); }

entry函數主要功能:

1、解析了java命令行的三個參數,分別是job、jobid和mode,其中job是用戶配置的json文件路徑,jobid和mode是python文件帶進來的,單機模式下可以忽略改參數 2、讀取用戶配置的json文件,轉化為內部的configuration配置 3、打印相關信息,并校驗json文件的合法性 4、啟動engine執行

entry執行完畢之后,進入start函數,關鍵代碼如下:

public void start(Configuration allConf) {// 綁定column轉換信息ColumnCast.bind(allConf);/*** 初始化PluginLoader,可以獲取各種插件配置*/LoadUtil.bind(allConf);*************container = new JobContainer(allConf);*************container.start(); }

start函數中主要包括:

1、列轉換默認值,即動態在configuration中注入默認值 2、初始化插件的LoadUtil,后面classLoader相關操作都會依賴這個函數 3、初始化JobContainer并啟動

總結

以上是生活随笔為你收集整理的datax源码阅读二:Engine流程的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 国产中文字幕二区 | 一级看片 | 午夜欧美在线 | 天天爽夜夜爽夜夜爽精品 | www.日本色 | 日韩一级精品 | 成人免费观看网址 | 精品一区在线观看视频 | 一区二区成人在线观看 | 午夜在线观看一区 | 亚洲永久免费视频 | 欧洲金发美女大战黑人 | 毛片在线免费视频 | 国产丝袜在线播放 | 伊人色爱 | 热久久在线 | 久草免费在线观看 | 悠悠色综合 | 一区二区三区日韩视频 | 成年人国产视频 | 国产日韩精品suv | 尤物毛片 | 无码人妻少妇伦在线电影 | 日韩av一区二区三区 | 国产小视频在线免费观看 | 久久久久久久亚洲av无码 | 色吊丝网站 | 精品av一区二区 | 精品久久电影 | 国产一区二区在线播放视频 | 免费黄色av网站 | 黄色大全免费看 | 精品国产精品三级精品av网址 | 四虎色网 | 一区二区三区www | av大片免费| 国产网站大全 | 飘花影院伦理片 | 精品人妻午夜一区二区三区四区 | 日韩在线影院 | 国产在线精品一区二区三区 | 日韩 国产 在线 | www.夜夜操.com| 九九夜| 国产精品69毛片高清亚洲 | 日本打屁股网站 | 精射女上司 | 国产片免费 | 色欧美日韩 | 国产老女人乱淫免费可以 | 久久精品国产免费 | 国产女人18水真多毛片18精品 | 日韩精美视频 | 95香蕉视频| 亚洲熟女综合色一区二区三区 | 伦在线| 99一级片 | 欧美亚一区二区三区 | 亚洲天堂av一区 | 龚玥菲三级露全乳视频 | 999热精品视频 | 人妻丰满熟妇av无码区hd | 人人舔人人干 | 新x8x8拨牐拨牐永久免费影库 | 亚洲图片视频在线 | 亚洲av无码乱码国产精品fc2 | 狠狠干狠狠艹 | 国产深喉视频一区二区 | 国产精品久久久久久久久久久新郎 | 丁香视频在线观看 | 免费人成视频在线 | jizz欧美| a国产在线 | 丰满人妻翻云覆雨呻吟视频 | 欧美日韩国产专区 | 成人图片小说 | 亚洲熟妇无码av | 中文字幕在线免费看线人 | 在线看中文字幕 | 亚av| 中文字字幕第183页 欧美特级一级片 | 美女131爽爽爽做爰视频 | 色婷婷av一区二区三区之红樱桃 | 欧洲成人一区二区三区 | 99热久久这里只有精品 | 国产精品一品二区三区的使用体验 | 日韩亚洲精品视频 | 久久免费的精品国产v∧ | 欧美日韩免费网站 | 国产精品秘入口18禁麻豆免会员 | 国产在线精品一区二区三区 | 国产乱xxⅹxx国语对白 | 国产jizz| 免费av网站在线 | 伊人久久久久久久久久 | 瑟瑟综合 | 久草福利资源 | 成人三级视频 | 97久久人人超碰caoprom欧美 |