国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

【DolphinScheduler】datax讀取hive分區(qū)表時,空分區(qū)、分區(qū)無數(shù)據(jù)任務報錯問題解決

這篇具有很好參考價值的文章主要介紹了【DolphinScheduler】datax讀取hive分區(qū)表時,空分區(qū)、分區(qū)無數(shù)據(jù)任務報錯問題解決。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點擊"舉報違法"按鈕提交疑問。

問題背景:

最近在使用海豚調(diào)度DolphinScheduler的Datax組件時,遇到這么一個問題:之前給客戶使用海豚做的離線數(shù)倉的分層搭建,一直都運行好好的,過了個元旦,這幾天突然在數(shù)倉做任務時報錯,具體報錯信息如下:

問題一:datax讀取hive分區(qū)表時,datax-hdfsReader 讀取空目錄報錯

問題描述:

com.alibaba.datax.common.exception.DataXException: Code:[HdfsReader-08], Description:[您嘗試讀取的文件目錄為空.]. ?- 未能找到待讀取的文件,請確認您的配置項path: /user/hive/warehouse/dws.db/dws_index_business_xzkh/dt_date=2024-01-02

【DolphinScheduler】datax讀取hive分區(qū)表時,空分區(qū)、分區(qū)無數(shù)據(jù)任務報錯問題解決,部署項目相關,大數(shù)據(jù)基礎,數(shù)據(jù)治理,hive,hadoop,數(shù)據(jù)倉庫

關鍵信息:

INFO HdfsReader$Job - 您即將讀取的文件數(shù)為: [0], 列表為: [] Code:[HdfsReader-08], Description:[您嘗試讀取的文件目錄為空.]. - 未能找到 待讀取的文件,請確認您的配置項 path:具體路徑? /user/hive/warehouse/dws.db/dws_index_business_xzkh/dt_date=2024-01-02

錯誤分析:

由于上層數(shù)據(jù)處理邏輯沒有生成任何數(shù)據(jù)導致未生成任何目錄和文件(如果上層 邏輯有自動創(chuàng)建目錄,則會出現(xiàn)該問題)

問題很簡單,因為該分區(qū)下沒有數(shù)據(jù)文件所以報錯。

這個解決也很容易。

1.當時想的是在shell里判斷分區(qū)路徑是否存在 然后hdfs dfs -ls /path |wc -l 看文件個數(shù)是否>0

? ?后來發(fā)現(xiàn)這種不是很可取。

2.當時就覺得這種判斷不太對,以前其他reader的時候怎么不見報錯,hdfsReader就報錯是吧。

? ?哪里報錯丟異常 我改成 warn就好了。

問題解決

找到報錯點

【DolphinScheduler】datax讀取hive分區(qū)表時,空分區(qū)、分區(qū)無數(shù)據(jù)任務報錯問題解決,部署項目相關,大數(shù)據(jù)基礎,數(shù)據(jù)治理,hive,hadoop,數(shù)據(jù)倉庫

處理方法一:

那全部原因就是 emptyDirIsExecption 再看

/**emptyDirIsExecption ?默認值為true,當指定為false,空目錄任務會返回成功,同步記錄數(shù)為0**/
private Boolean emptyDirIsExecption=null;
再看,這里就是很清楚了

emptyDirIsExecption = this.readerOriginConfig.getBool(Key.EMPTY_DIR_IS_EXECPTION, true);
?我們設置在json里設置 emptyDirIsExecption=false即可。
【DolphinScheduler】datax讀取hive分區(qū)表時,空分區(qū)、分區(qū)無數(shù)據(jù)任務報錯問題解決,部署項目相關,大數(shù)據(jù)基礎,數(shù)據(jù)治理,hive,hadoop,數(shù)據(jù)倉庫

根據(jù)網(wǎng)上的這個方法我沒改成,只能繼續(xù)研究源碼。

處理方法二:修改源碼,最簡單的辦法就是把throw的異常,僅用LOG.warn打印出來即可。

將原有的拋出異常修改為打印錯誤記錄終止本次調(diào)度任務(結果記為 成功避免后續(xù)任務正常進行,具體該如何處理需要根據(jù)具體業(yè)務決定),修改的 Java 文件為 位于 hdfsreader 工程下的 com.alibaba.datax.plugin.reader.hdfsreader.HdfsReader。 ?【DolphinScheduler】datax讀取hive分區(qū)表時,空分區(qū)、分區(qū)無數(shù)據(jù)任務報錯問題解決,部署項目相關,大數(shù)據(jù)基礎,數(shù)據(jù)治理,hive,hadoop,數(shù)據(jù)倉庫

        public List<Configuration> split(int adviceNumber) {

            LOG.info("split() begin...");
            List<Configuration> readerSplitConfigs = new ArrayList<Configuration>();
            // warn:每個slice拖且僅拖一個文件,
            // int splitNumber = adviceNumber;
            int splitNumber = this.sourceFiles.size();
            if (0 == splitNumber) {
                // throw DataXException.asDataXException(HdfsReaderErrorCode.EMPTY_DIR_EXCEPTION,
                //        String.format("未能找到待讀取的文件,請確認您的配置項path: %s", this.readerOriginConfig.getString(Key.PATH)));
                //異常處理邏輯修改
                LOG.warn(String.format("未能找到待讀取的文件,請確認您的配置項path: %s", this.readerOriginConfig.getString(Key.PATH)));
                LOG.info("split() end");
                LOG.info("Task exited with return code 0");
                System.exit(0);
            }

重新打包后,替換安裝目錄下 /data/datax/plugin/reader/hdfsreader 下的 hdfsreader-0.0.1-SNAPSHOT.jar 包。(記得如果是ha,還要提前將hdfs-site和core-site文件打到包里),如果海豚調(diào)度搭建的是集群,請將集群中的都修改了,不用重啟海豚直接執(zhí)行任務就行。

問題二:datax讀取hive分區(qū)表時,datax-hdfsReader 讀取目錄不存在報錯

問題描述:

DataX 組件讀取的目錄不存在導致調(diào)度任務報錯,錯誤信息截圖如下:

【DolphinScheduler】datax讀取hive分區(qū)表時,空分區(qū)、分區(qū)無數(shù)據(jù)任務報錯問題解決,部署項目相關,大數(shù)據(jù)基礎,數(shù)據(jù)治理,hive,hadoop,數(shù)據(jù)倉庫

關鍵信息:

ERROR HdfsReader$Job - 無法讀取路徑[具體路徑] 下的所有文件,請確認您的配 置項 fs.defaultFS, path 的值是否正確,是否有讀寫權限,網(wǎng)絡是否已斷開! java.io.FileNotFoundException: File 具體路徑 does not exist.

錯誤分析:

由于上層數(shù)據(jù)處理邏輯沒有生成任何數(shù)據(jù)導致未生成表分區(qū)目錄。

問題解決:

修改源碼,在目錄讀取前做判斷如果目錄不存在打印系統(tǒng)錯誤日志并終止本次調(diào) 度任務(結果記為成功避免后續(xù)任務正常進行,具體該如何處理需要根據(jù)具體業(yè)務決定), 修改的 Java 文件為位于 hdfsreader 工程下的 com.alibaba.datax.plugin.reader.hdfsreader. DFSUtil。

【DolphinScheduler】datax讀取hive分區(qū)表時,空分區(qū)、分區(qū)無數(shù)據(jù)任務報錯問題解決,部署項目相關,大數(shù)據(jù)基礎,數(shù)據(jù)治理,hive,hadoop,數(shù)據(jù)倉庫

重新打包后,替換安裝目錄下 /data/datax/plugin/reader/hdfsreader 下的 hdfsreader-0.0.1-SNAPSHOT.jar 包。(記得如果是ha,還要提前將hdfs-site和core-site文件打到包里),如果海豚調(diào)度搭建的是集群,請將集群中的都修改了,不用重啟海豚直接執(zhí)行任務就行。

這里要說一下,我們改源碼請找自己對應版本的源碼,別找錯了

【DATAX】datax讀取hive分區(qū)表時,空分區(qū)任務報錯問題解決_datax hdfdsreader 讀 hive分區(qū)表

【DataX】Dolphinscheduler調(diào)度Datax任務讀取Hive分區(qū)表案例_目前支持orc,sequence,rcfile,text,csv五種格式的文件,請檢查您文件類型和文

最簡單dophinscheduler 集成datax步驟_dolphinescheduler datax

Dolphinscheduler配置Datax踩坑記錄_dolphinscheduler datax

datax-hdfsReader空目錄報錯_datax hdfsreader

gitee的代碼傳送門:https://gitee.com/mirrors_alibaba/DataX文章來源地址http://www.zghlxwxcb.cn/news/detail-793626.html

到了這里,關于【DolphinScheduler】datax讀取hive分區(qū)表時,空分區(qū)、分區(qū)無數(shù)據(jù)任務報錯問題解決的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。如若轉載,請注明出處: 如若內(nèi)容造成侵權/違法違規(guī)/事實不符,請點擊違法舉報進行投訴反饋,一經(jīng)查實,立即刪除!

領支付寶紅包贊助服務器費用

相關文章

  • HIVE表數(shù)據(jù)快速構造(分區(qū)表、orc、text)

    HIVE表數(shù)據(jù)快速構造(分區(qū)表、orc、text)

    引言 當需要在hive數(shù)倉中去創(chuàng)建測試表并構造測試數(shù)據(jù)時,通常需要在安裝了hive客戶端的服務器環(huán)境下,通過執(zhí)行命令的方式建表。通過在HDFS上上傳和加載數(shù)據(jù)文件的方式來加載數(shù)據(jù)到hive表中。其中操作算不得多復雜,但比較依賴對環(huán)境和命令的熟悉,并且操作不夠可視化

    2024年02月16日
    瀏覽(41)
  • Hive數(shù)據(jù)加載方式(load、insert;普通表、分區(qū)表)

    介紹 Hive 數(shù)據(jù)加載方式(insert、load) 基礎語法: load data [local] inpath \\\'/opt/module/datas/student.txt\\\' [overwrite] into table student[partition ] 參數(shù)說明: 1 load data: 表示加載數(shù)據(jù) 2 local: 表示從本地加載數(shù)據(jù)到 hive 表;否則從 HDFS 加載數(shù)據(jù)到 hive 表 3 inpath: 表示加載數(shù)據(jù)的路徑 相對路徑,例如

    2024年02月03日
    瀏覽(17)
  • 大數(shù)據(jù)開發(fā)之Hive(查詢、分區(qū)表和分桶表、函數(shù))

    大數(shù)據(jù)開發(fā)之Hive(查詢、分區(qū)表和分桶表、函數(shù))

    1、查詢語句語法 2、書寫次序和執(zhí)行次序 順序 書寫次序 書寫次序說明 執(zhí)行次序 執(zhí)行次序說明 1 select 查詢 from 先執(zhí)行表與表直接的關系 2 from 先執(zhí)行表與表直接的關系 on 先執(zhí)行表與表直接的關系 3 join on 先執(zhí)行表與表直接的關系 join 先執(zhí)行表與表直接的關系 4 where 先執(zhí)行表

    2024年01月17日
    瀏覽(21)
  • hive分區(qū)表 靜態(tài)分區(qū)和動態(tài)分區(qū)

    現(xiàn)有數(shù)據(jù)文件 data_file 如下: 2023-08-01,Product A,100.0 2023-08-05,Product B,150.0 2023-08-10,Product A,200.0 需要手動指定分區(qū) 現(xiàn)有源數(shù)據(jù)表如下: CREATE TABLE sales_source ( ? ? sale_date STRING, ? ? product STRING, ? ? amount DOUBLE ); INSERT INTO sales_source VALUES ? ? (\\\'2023-08-01\\\', \\\'Product A\\\', 100.0), ? ? (\\\'2023-08-

    2024年02月10日
    瀏覽(28)
  • Hive分區(qū)表實戰(zhàn) - 多分區(qū)字段

    Hive分區(qū)表實戰(zhàn) - 多分區(qū)字段

    本實戰(zhàn)教程通過一系列Hive SQL操作,演示了如何在大數(shù)據(jù)環(huán)境下創(chuàng)建具有省市分區(qū)的大學表,并從本地文件系統(tǒng)加載不同地區(qū)的學校數(shù)據(jù)到對應分區(qū)。首先,創(chuàng)建名為 school 的數(shù)據(jù)庫并切換至該數(shù)據(jù)庫;接著,在數(shù)據(jù)庫中定義一個名為 university 的分區(qū)表,其結構包括ID和名稱兩

    2024年01月15日
    瀏覽(24)
  • HIVE創(chuàng)建分區(qū)表

    HIVE創(chuàng)建分區(qū)表

    partitioned by ( c2 string ) # 創(chuàng)建分區(qū) c1跟c2都是字段,但是創(chuàng)建的時候不能寫在t2里面,只能寫在分區(qū)里面(同時select查詢的時候,c2的字段也要寫在最后面) 要加載數(shù)據(jù)到分區(qū)表,只需在原來的加載數(shù)據(jù)的語句上增加partition,同時指定分區(qū)的字段值即可。 注意:當你退出

    2024年02月15日
    瀏覽(22)
  • Hive分區(qū)表修改(增刪)列

    環(huán)境:CDH6.3.0,Hive 2.1.1-cdh6.3.0 基礎數(shù)據(jù)分區(qū)表test1,包含a,b,c,d共4列加分區(qū)列p_day,向其中插入兩行數(shù)據(jù) 表中數(shù)據(jù)及parquet文件信息如下: test2表直接使用test1表的文件: 修復分區(qū)并查詢數(shù)據(jù) 刪除test2表的a列,看起來只有通過replace columns實現(xiàn),但是運行報錯,根據(jù)官方文檔,只

    2023年04月26日
    瀏覽(23)
  • Hive 分區(qū)表和分桶表

    在《Hive 建表語句解析》文章中,建表的時候我們可以使用 PARTITIONED BY 子句和 CLUSTERED BY 子句來創(chuàng)建分區(qū)表和分桶表,為什么要創(chuàng)建分區(qū)表和分桶表呢?分區(qū)表和分桶表有什么區(qū)別呢? 1. 為什么分區(qū) 在Hive 查詢中一般會掃描整個表內(nèi)容,會消耗很多時間做沒必要的工作。有時

    2023年04月23日
    瀏覽(46)
  • Hive ---- 分區(qū)表和分桶表

    Hive ---- 分區(qū)表和分桶表

    Hive中的分區(qū)就是把一張大表的數(shù)據(jù)按照業(yè)務需要分散的存儲到多個目錄,每個目錄就稱為該表的一個分區(qū)。在查詢時通過where子句中的表達式選擇查詢所需要的分區(qū),這樣的查詢效率會提高很多。 1. 創(chuàng)建分區(qū)表 2. 分區(qū)表讀寫數(shù)據(jù) 1)寫數(shù)據(jù) (1)load 數(shù)據(jù)準備 在/opt/module/hiv

    2024年02月10日
    瀏覽(56)
  • Hive 分區(qū)表新增字段 cascade

    在以前上線的分區(qū)表中新加一個字段,并且要求添加到指定的位置列。 加 cascade 操作 創(chuàng)建測試表 插入測試數(shù)據(jù) 查看現(xiàn)有數(shù)據(jù) 官網(wǎng)添加列的語法 注意: Hive 1.1.0 中有 CASCADE|RESTRICT 子句。 ALTER TABLE ADD|REPLACE COLUMNS CASCADE 命令修改表元數(shù)據(jù)的列,并將相同的更改級聯(lián)到所有分區(qū)

    2024年02月11日
    瀏覽(22)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領取紅包,優(yōu)惠每天領

二維碼1

領取紅包

二維碼2

領紅包