<output id="qn6qe"></output>

    1. <output id="qn6qe"><tt id="qn6qe"></tt></output>
    2. <strike id="qn6qe"></strike>

      亚洲 日本 欧洲 欧美 视频,日韩中文字幕有码av,一本一道av中文字幕无码,国产线播放免费人成视频播放,人妻少妇偷人无码视频,日夜啪啪一区二区三区,国产尤物精品自在拍视频首页,久热这里只有精品12

      部署Kettle做ETL開(kāi)發(fā)并使用Crontab制作調(diào)度系統(tǒng)

      背景說(shuō)明:
      在數(shù)據(jù)量較小,且數(shù)據(jù)源和裝載地都是關(guān)系型數(shù)據(jù)庫(kù)時(shí),使用Kettle做ETL較為簡(jiǎn)便。
      由于調(diào)度系統(tǒng)產(chǎn)品因?yàn)榉?wù)器環(huán)境方面的因素,而無(wú)法部署,故使用Linux的crontab定時(shí)器來(lái)制作簡(jiǎn)易調(diào)度系統(tǒng)是一個(gè)比較簡(jiǎn)便的解決方案。
      本文旨在記錄Kettle的部署及配置文件配置注意事項(xiàng)和如何自制簡(jiǎn)易調(diào)度系統(tǒng),以便處理類(lèi)似問(wèn)題時(shí)方案的復(fù)用。

      一、環(huán)境與工具

      • CentOS 6.7
      • JDK1.8/JDK1.7
      • pdi-ce-6.1.0.1-196.zip

      二、Linux安裝Kettle

      2.1 安裝JDK并配置環(huán)境變量

      Kettle的運(yùn)行需要jdk環(huán)境,所以需要先安裝jdk。jdk的安裝方法此處略去。

      2.2 創(chuàng)建kettle用戶(hù)

      # useradd -m kettle
      

      2.3 上傳Kettle安裝包并解壓

      創(chuàng)建kettle部署目錄

      # mkdir /opt/kettle
      

      將安裝包pdi-ce-6.1.0.1-196.zip上傳至/opt/kettle目錄下,并解壓:

      # unzip /opt/kettle/pdi-ce-6.1.0.1-196.zip
      

      2.4 更改屬主屬組和執(zhí)行權(quán)限

      # chown -R kettle:kettle /opt/kettle
      # chmod 755 /opt/kettle/pdi-ce-6.1.0.1-196/data-integration/*.sh
      

      2.5 測(cè)試

      切換至kettle用戶(hù)

      # su kettle
      

      啟動(dòng)kettle的kitchen或pan

      $ cd /opt/kettle/pdi-ce-6.1.0.1-196/data-integration/
      $ ./kitchen.sh
      

      如果能正常啟動(dòng),則說(shuō)明kettle安裝成功。

      2.6 配置文件設(shè)置

      在/home/kettle/.kettle目錄下有一個(gè)kettle.properties文件,在kettle程序啟動(dòng)時(shí)會(huì)讀取這個(gè)文件配置的屬性。這里一般可以將數(shù)據(jù)庫(kù)的連接信息(包含ip,端口,數(shù)據(jù)庫(kù)實(shí)例,用戶(hù)名,密碼等)以及自定的一些變量(如etl_path等)。
      將這些連接信息配置在配置文件中,而在kettle腳本中使用這些變量名來(lái)代替,好處在與腳本的移植與復(fù)用時(shí),不需要改動(dòng)腳本,只需要修改配置文件即可。

      三、簡(jiǎn)易調(diào)度系統(tǒng)制作

      3.1 創(chuàng)建調(diào)度系統(tǒng)目錄

      • 創(chuàng)建kettle腳本存放目錄
      # mkdir -p /opt/kettle/scripts
      # mkdir -p /opt/kettle/scripts/jobs
      # mkdir -p /opt/kettle/scripts/trans
      
      • 創(chuàng)建調(diào)度腳本存放目錄
      # mkdir -p /opt/kettle/scheduler
      
      • 創(chuàng)建日志存放目錄
      # mkdir -p /opt/kettle/logs
      

      3.2 上傳或創(chuàng)建調(diào)度腳本kettle_scheduler.sh

      上傳kettle_scheduler.sh文件到/opt/kettle/scheduler目錄下。或者進(jìn)入目錄創(chuàng)建:
      編輯文件:

      # cd /opt/kettle/scheduler
      # vim kettle_scheduler.sh
      

      輸入如下內(nèi)容并保存:

      #!/bin/bash
      #
      cd /opt/kettle/scripts/jobs/
      date=`date +%Y%m%d`
      files=`ls /opt/kettle/scripts/jobs/*.kjb`
      for file in $files
      do
      file_name=`echo "$file" | awk -F '.' '{print $1}' | awk -F '/' '{print $6}'`
      log_name="${file_name}-${date}.log"
      mkdir -p /opt/kettle/logs/$file_name
      /opt/kettle/pdi-ce-6.1.0.1-196/data-integration/kitchen.sh -file=$file -level=basic>>/opt/kettle/logs/$file_name/$log_name
      done
      

      3.3 修改權(quán)限

      # chown -R kettle:kettle /opt/kettle
      # chmod 755 /opt/kettle/scheduler/kettle_scheduler.sh
      

      3.4 配置定時(shí)任務(wù)

      進(jìn)入crontab編輯界面

      # crontab -e
      

      輸入如下內(nèi)容,保存退出

      1  0  *  *  *  chown -R kettle:kettle /opt/kettle/scripts
      5  0  *  *  *  su - kettle -c "/opt/kettle/scheduler/kettle_scheduler.sh" &
      

      四、調(diào)度系統(tǒng)的使用

      4.1 kettle腳本的上線(xiàn)

      上傳開(kāi)發(fā)好的kettle腳本到指定路徑。

      • 將所有的kettle作業(yè)(以.kjb為后綴)上傳至/opt/kettle/scripts/jobs目錄下;
      • 將所有的kettle轉(zhuǎn)換(以.ktr為后綴)上傳至/opt/kettle/scripts/trans目錄下。

      這里開(kāi)發(fā)kettle作業(yè)時(shí),需要注意作業(yè)和轉(zhuǎn)換的目錄位置關(guān)系,比如可以在配置文件kettle.properties中配置etl_path=/opt/kettle/scripts。

      4.2 日志查看

      在/opt/kettle/logs目錄下,每一個(gè)作業(yè)會(huì)新建一個(gè)對(duì)應(yīng)名稱(chēng)的文件夾用于存儲(chǔ)執(zhí)行的日志,作業(yè)的每一次執(zhí)行都會(huì)在這個(gè)文件夾下創(chuàng)建一個(gè)日志文件并加上日期。
      例如,/opt/kettle/scripts/jobs目錄下有個(gè)test.kjb的作業(yè),則執(zhí)行完后會(huì)在/opt/kettle/logs/test目錄下創(chuàng)建一個(gè)test-20190823.log

      # cd /opt/kettle/logs/test
      # cat test-20190823.log
      

      五、日志的清理

      5.1 上傳或創(chuàng)建日志清理腳本kettle_clean.sh

      上傳kettle_clean.sh文件到/opt/kettle/scheduler目錄下。或者進(jìn)入目錄創(chuàng)建:
      編輯文件:

      # cd /opt/kettle/scheduler
      # vim kettle_clean.sh
      

      輸入如下內(nèi)容并保存:

      #!/bin/bash
      dir=/opt/kettle/logs
      cd ${dir}
      reserveDays=7  # 設(shè)置要保留的日志天數(shù)
      sub_dirs=`ls ${dir}`
      for sub_dir in ${sub_dirs}; do
          count=$(ls ${sub_dir} | wc -l)
          if [[ ${count} -gt ${reserveDays} ]]; then
              cleanCnt=$((count-reserveDays))
              files=$(ls ${dir}/${sub_dir} | head -n ${cleanCnt})
              cd ${sub_dir}
              rm -rf ${files}
              cd ..
          fi
      done
      

      5.2 更改屬主屬組和執(zhí)行權(quán)限

      # chown kettle:kettle /opt/kettle/scheduler/kettle_clean.sh
      # chmod 755 /opt/kettle/scheduler/kettle_clean.sh
      

      5.3 配置定時(shí)任務(wù)

      進(jìn)入crontab編輯界面

      # crontab -e
      

      增加一行如下內(nèi)容,保存退出

      0  2  *  *  *  su - kettle -c "/opt/kettle/scheduler/kettle_clean.sh"
      
      posted @ 2019-08-26 08:48  Huidoo_Yang  閱讀(3022)  評(píng)論(0)    收藏  舉報(bào)
      主站蜘蛛池模板: 国产日韩一区二区在线| 国产一区二区在线激情往| 亚洲国产成人资源在线| 久久视频这里只精品| 国产热A欧美热A在线视频| 国产精品一二三入口播放| 在线看免费无码的av天堂| 国产精品亚洲二区在线播放| 国产成人亚洲精品狼色在线| 精品无码国产自产拍在线观看蜜| 真实国产老熟女无套中出| 夜鲁鲁鲁夜夜综合视频欧美| 日韩美女一区二区三区视频| 无套内射视频囯产| 又湿又紧又大又爽A视频男| 午夜福利国产盗摄久久性| 国产精品一区二区久久不卡| 香蕉久久久久久久av网站| 国产精品v片在线观看不卡| 久久精产国品一二三产品| 亚洲性日韩精品一区二区| 国产成人久久综合第一区| 色伦专区97中文字幕| 樱桃视频影院在线播放| 国产av综合一区二区三区| 最近日本免费观看高清视频| 蜜桃av无码免费看永久| 久久一本人碰碰人碰| 欧美videosdesexo吹潮| 黄色A级国产免费大片视频| 日韩av中文字幕有码| 韩国福利视频一区二区三区| 久久亚洲人成网站| 性xxxx搡xxxxx搡欧美| 国产中文字幕精品喷潮| 伊人激情av一区二区三区| 欧美色aⅴ欧美综合色| 亚洲成人一区二区av| 午夜激情福利一区二区| 人妻系列中文字幕精品| 中国少妇嫖妓BBWBBW|