同步binlog並上傳到hdfs

2021-09-26 18:52:56 字數 2692 閱讀 4727

#!/bin/bash# #

echo "執行節點"`hostname`

# 正 時

ip=$1

portc=4044

if [ $# -eq 4 ] ; then

portc=$2

yearid=$

dateid=$

starttime=$" 00:00:00"

endtime=$" 23:59:59"

else

echo "輸入引數有誤:"

exit -1

fisufix=`echo $ip | awk -f'.' ''`

username=lefin

platformname=tradeplatform

resultfile=result_resource_new_$

# 輸入輸出

inputpath=/data/lefin/$/input/$/$/

outputpath=/data/lefin/$/output/$/$/

# 資料庫配置

source ./params.properties

hosts=$ip

port=$portc

echo /usr/local/mariadb/bin/mysql -u$ -p$ -h$ -p$

echo ############################begin###################################

for host in $ ; do

# 獲取開始檔名

binlogbashpath="le_finance-bin."

startfile=`echo "show master status" | /usr/local/mariadb/bin/mysql -u$ -p$ -h$ -p$ |tail -1 | awk -f' ' ''`

lengthflist=`echo "show binary logs" | /usr/local/mariadb/bin/mysql -u$ -p$ -h$ -p$ |sed 1d | awk -f' ' ''|wc -l`

if [ $lengthflist -gt 40 ] ; then

validnumber=`echo $(($/2))`

else

validnumber=$

fi

# 獲取抽取資料檔名

flist=`echo "show binary logs" | /usr/local/mariadb/bin/mysql -u$ -p$ -h$ -p$ |sed 1d | awk -f' ' ''| tail -n $`

echo '###########開始拉取binlog日誌 '`date '+%y年%m月%d日 %h:%m:%s'`

for blf in $flist ; do

# 拉取binlog資料

echo "/usr/local/mariadb/bin/mysqlbinlog -u$ -p$ -h$ -p$ --read-from-remote-server --set-charset=utf8 --base64-output=decode-rows -v --start-datetime='$' --stop-datetime='$' $ >> ./$.sql"

/usr/local/mariadb/bin/mysqlbinlog -u$ -p$ -h$ -p$ --read-from-remote-server --set-charset=utf8 --base64-output=decode-rows -v --start-datetime="$" --stop-datetime="$" $ >> ./$.sql

if [[ $? -ne 0 ]]; then

echo "獲取binlog日誌失敗"

exit

else

echo "獲取binlog日誌成功"

fi done

done

echo '###########結束拉取binlog日誌 '`date '+%y年%m月%d日 %h:%m:%s'`

cc=`hadoop fs -ls /data/lefin/$/input/ | grep "/$"| wc -l`

if [ $cc -eq 0 ] ; then

hadoop fs -mkdir -p /data/lefin/$/input/$/$

else

cc=`hadoop fs -ls /data/lefin/$/input/$/ | grep "/$"| wc -l`

if [ $cc -eq 0 ] ; then

hadoop fs -mkdir /data/lefin/$/input/$/$

fifiecho '###########上傳binlog日誌至hdfs '`date '+%y年%m月%d日 %h:%m:%s'`

# 上傳binlog資料到hdfs

echo "hadoop fs -put -f ./$.sql $"

hadoop fs -put -f ./$.sql $

if [[ $? -ne 0 ]] ; then

echo "資料上傳失敗!"

exit -1

fi

echo '###########上傳binlog日誌至hdfs 結束'`date '+%y年%m月%d日 %h:%m:%s'`

自動打包檔案並上傳到ftp

bin bash ftpserver ftp.aaa rmtdir bbb user user pass password filename project date y m d tar.bz2 subdir date y m d release echo generating tarball.if...

Flume監聽檔案並上傳到hdfs

監聽hive日誌,並上傳到hdfs中 flume yymmddhh 目錄下,檔案字首為logs 每乙個小時新建重新建立乙個資料夾,每接收10m資料落地一次,當資料不足10m時15分鐘落地一次 匯入以下jar包到flume路徑下的lib裡,裡為相應版本,在hadoop路徑下share hadoop下都...

將Mxd檔案壓縮並上傳到Geodatabase!

把mxd檔案壓縮上傳測試 1 using system 2using system.collections.generic 3using system.linq 4using system.text 5using system.io.compression 6using system.io 7usi...