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

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

6工程文件夹作用_data_dragon数据工程小工具收集

發(fā)布時間:2023/12/9 编程问答 36 豆豆
生活随笔 收集整理的這篇文章主要介紹了 6工程文件夹作用_data_dragon数据工程小工具收集 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

最近在GitHub上創(chuàng)建了一個新工程,收集個人在數(shù)據(jù)工程工作的小工具集合,命名為data_dragon (數(shù)據(jù)一條龍)。取這個名字的是希望這些腳本或代碼能夠復(fù)用,端到端地減少臨時數(shù)據(jù)處理的時間。

最近因為工作上的一些變化,寫作節(jié)奏有點被打亂,已經(jīng)有2個月沒有更新文章了。這次剛好將最近創(chuàng)建的小工程做個介紹。首先這個工程都是些零散的代碼腳本,目前上傳了3個,有Python,有Bash shell。后期,可能還有用sed寫的HLR上的IMSI處理腳本,Java寫的Hive UDF……總之,就是一些在實際工作中為了避免重復(fù)勞動的臨時代碼。

放在線上,就是為了方便以后遇到相同的問題可以重用,該工程的代碼地址是https://github.com/camash/data_dragon。

工程中,每一個文件夾都是一個獨立的小工具,用于解決一個獨立的問題。目前,已經(jīng)上傳的三個腳本分別用于“快速生成Azkaban任務(wù)調(diào)度的DAG”,“hive同步數(shù)據(jù)到ES索引”以及“傳輸大量SFTP文件以及檢查”。以下,分別對上傳的三個腳本做簡要介紹。

generate_azkaban_flow

作用

在Excel中配置任務(wù)依賴關(guān)系,然后使用shell腳本快速生成Azkaban的job文件。

使用方法

  • 創(chuàng)建文件 在Excel或者其它表格軟件中,按如下結(jié)構(gòu)創(chuàng)建
編號任務(wù)名稱任務(wù)調(diào)用腳本依賴
000start_kettle
001test/home/hadoop/test/kettle/all/test.sh resource000_start_kettle
002end_job/home/hadoop/test/kettle/all/end_job.sh000_start_kettle, 001_test
  • 執(zhí)行轉(zhuǎn)換 復(fù)制到文本文件中,保存為tsv文件,比如test.txt。然后執(zhí)行shell腳本。
bash?./gen_azkaban_flow.sh?test.txt

執(zhí)行之后在文件所在路徑內(nèi)會生成以編號_任務(wù)名稱.job的Azkaban任務(wù)文件。文件數(shù)量等同于tsv文件中的行數(shù)。

ls?-1?*.job
000_start_kettle.job
001_test.job
002_end_job.job
  • job文件內(nèi)容

主要包含執(zhí)行項和依賴項,依賴項就是最終生成任務(wù)DAG的邊。同時,這個腳本中默認(rèn)會給執(zhí)行命令加入執(zhí)行日期參數(shù),若不需要可以通過修改shell命令實現(xiàn)。

$?cat?002_end_job.job?
type=command
dependencies=000_start_kettle,?001_test
command=/bin/bash?/home/hadoop/test/kettle/all/end_job.sh?'${azkaban.flow.start.year}${azkaban.flow.start.month}${azkaban.flow.start.day}'

使用總結(jié)

可以通過先在表格中規(guī)則的梳理任務(wù)流,避免了任務(wù)太多時直接寫job文件容易遺漏的情況。梳理完成之后,使用該腳本一次性生成所有的job,秒秒鐘完成。

hive_to_elasticsearch

作用

將Hive表中的數(shù)據(jù)導(dǎo)入到Elasticsearch的索引中。

使用方法

腳本是通過Python3編寫的,因此使用Python3調(diào)用即可。

python3?hive_records_to_es.py

其中,Hive地址和Elasticsearch的地址放在connection.cfg文件中,樣例如下:

[hive]
host?=?192.168.1.4
port?=?10000
user?=?hadoop
[es]
es_url_1?=?http://192.168.1.6:7200/
es_url_2?=?http://192.168.1.7:7200/
es_url_3?=?http://192.168.1.8:7200/

另外,表名和索引名在腳本中是靜態(tài)賦值,后期需要動態(tài)傳入。

scp_copy_and_check

作用

從遠(yuǎn)程SFTP同步文件指定文件夾下的所有文件至本地的指定路徑。在傳輸前后,可以對源和目標(biāo)系統(tǒng)上的文件數(shù)量進(jìn)行校驗(也可以支持其它校驗和方式)。同時在傳輸前,對源的文件數(shù)量可以設(shè)置一定閾值,數(shù)量過少直接報異常退出程序。

使用方法

腳本是使用bash shell進(jìn)行編寫的,需要傳入日期參數(shù)來確認(rèn)文件夾的路徑,參數(shù)格式為YYYYMMDD。若不傳入?yún)?shù),則會取執(zhí)行日期做為默認(rèn)參數(shù)。調(diào)用方式如下:

bash?scp_log_file.sh?20200916

總結(jié)

以上是生活随笔為你收集整理的6工程文件夹作用_data_dragon数据工程小工具收集的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。