整合營銷服務商

          電腦端+手機端+微信端=數(shù)據(jù)同步管理

          免費咨詢熱線:

          大數(shù)據(jù)常用同步工具

          大數(shù)據(jù)常用同步工具

          、離線數(shù)據(jù)同步

          DataX

          阿里的Datax是比較優(yōu)秀的產品,基于python,提供各種數(shù)據(jù)村塾的讀寫插件,多線程執(zhí)行,使用起來也很簡單,操作簡單通常只需要兩步;

          創(chuàng)建作業(yè)的配置文件(json格式配置reader,writer);

          啟動執(zhí)行配置作業(yè)。

          非常適合離線數(shù)據(jù),增量數(shù)據(jù)可以使用一些編碼的方式實現(xiàn),

          缺點:僅僅針對insert數(shù)據(jù)比較有效,update數(shù)據(jù)就不適合。缺乏對增量更新的內置支持,因為DataX的靈活架構,可以通過shell腳本等方式方便實現(xiàn)增量同步。

          參考資料:

          github地址:https://github.com/alibaba/DataX

          dataX3.0介紹:https://www.jianshu.com/p/65c440f9bce1

          datax初體驗:https://www.imooc.com/article/15640

          文檔:https://github.com/alibaba/DataX/blob/master/hdfswriter/doc/hdfswriter.md

          Sqoop

          Sqoop(發(fā)音:skup)是一款開源的工具,主要用于在Hadoop(Hive)與傳統(tǒng)的數(shù)據(jù)庫(mysql、postgresql…)間進行數(shù)據(jù)的傳遞,可以將一個關系型數(shù)據(jù)庫(例如 : MySQL ,Oracle ,Postgres等)中的數(shù)據(jù)導進到Hadoop的HDFS中,也可以將HDFS的數(shù)據(jù)導進到關系型數(shù)據(jù)庫中。

          地址:http://sqoop.apache.org/

          Sqoop導入:導入工具從RDBMS到HDFS導入單個表。表中的每一行被視為HDFS的記錄。所有記錄被存儲在文本文件的文本數(shù)據(jù)或者在Avro和序列文件的二進制數(shù)據(jù)。

          Sqoop導出:導出工具從HDFS導出一組文件到一個RDBMS。作為輸入到Sqoop文件包含記錄,這被稱為在表中的行。那些被讀取并解析成一組記錄和分隔使用用戶指定的分隔符。

          Sqoop支持全量數(shù)據(jù)導入和增量數(shù)據(jù)導入(增量數(shù)據(jù)導入分兩種,一是基于遞增列的增量數(shù)據(jù)導入(Append方式)。二是基于時間列的增量數(shù)據(jù)導入(LastModified方式)),同時可以指定數(shù)據(jù)是否以并發(fā)形式導入。

          Kettle

          Kettle是一款國外開源的ETL工具,純java編寫,可以在Window、Linux、Unix上運行,數(shù)據(jù)抽取高效穩(wěn)定。

          Kettle的Spoon有豐富的Steps可以組裝開發(fā)出滿足多種復雜應用場景的數(shù)據(jù)集成作業(yè),方便實現(xiàn)全量、增量數(shù)據(jù)同步。缺點是通過定時運行,實時性相對較差。

          NiFi

          Apache NiFi 是一個易于使用、功能強大而且可靠的數(shù)據(jù)拉取、數(shù)據(jù)處理和分發(fā)系統(tǒng),用于自動化管理系統(tǒng)間的數(shù)據(jù)流。它支持高度可配置的指示圖的數(shù)據(jù)路由、轉換和系統(tǒng)中介邏輯,支持從多種數(shù)據(jù)源動態(tài)拉取數(shù)據(jù)。

          NiFi基于Web方式工作,后臺在服務器上進行調度。 用戶可以為數(shù)據(jù)處理定義為一個流程,然后進行處理,后臺具有數(shù)據(jù)處理引擎、任務調度等組件。

          幾個核心概念:

          Nifi 的設計理念接近于基于流的編程 Flow Based Programming。

          FlowFile:表示通過系統(tǒng)移動的每個對象,包含數(shù)據(jù)流的基本屬性

          FlowFile Processor(處理器):負責實際對數(shù)據(jù)流執(zhí)行工作

          Connection(連接線):負責不同處理器之間的連接,是數(shù)據(jù)的有界緩沖區(qū)

          Flow Controller(流量控制器):管理進程使用的線程及其分配

          Process Group(過程組):進程組是一組特定的進程及其連接,允許組合其他組件創(chuàng)建新組件

          參考資料

          Nifi簡介及核心概念整理

          官方網站:http://nifi.apache.org/index.html

          二、實時數(shù)據(jù)同步

          實時同步最靈活的還是用kafka做中間轉發(fā),當數(shù)據(jù)發(fā)生變化時,記錄變化到kafka,需要同步數(shù)據(jù)的程序訂閱消息即可,需要研發(fā)編碼支持。這里說個mysql數(shù)據(jù)庫的同步組件,阿里的canal和otter

          canal

          https://github.com/alibaba/canal

          數(shù)據(jù)抽取簡單的來說,就是將一個表的數(shù)據(jù)提取到另一個表中。有很多的ETL工具可以幫助我們來進行數(shù)據(jù)的抽取和轉換,ETL工具能進行一次性或者定時作業(yè)抽取數(shù)據(jù),不過canal作為阿里巴巴提供的開源的數(shù)據(jù)抽取項目,能夠做到實時抽取,原理就是偽裝成mysql從節(jié)點,讀取mysql的binlog,生成消息,客戶端訂閱這些數(shù)據(jù)變更消息,處理并存儲。下面我們來一起搭建一下canal服務

          早期,阿里巴巴B2B公司因為存在杭州和美國雙機房部署,存在跨機房同步的業(yè)務需求。不過早期的數(shù)據(jù)庫同步業(yè)務,主要是基于trigger的方式獲取增量變更,不過從2010年開始,阿里系公司開始逐步的嘗試基于數(shù)據(jù)庫的日志解析,獲取增量變更進行同步,由此衍生出了增量訂閱&消費的業(yè)務,從此開啟了一段新紀元。

          ps. 目前內部版本已經支持mysql和oracle部分版本的日志解析,當前的canal開源版本支持5.7及以下的版本(阿里內部mysql 5.7.13, 5.6.10, mysql 5.5.18和5.1.40/48)

          基于日志增量訂閱&消費支持的業(yè)務:

          數(shù)據(jù)庫鏡像

          數(shù)據(jù)庫實時備份

          多級索引 (賣家和買家各自分庫索引)

          search build

          業(yè)務cache刷新

          價格變化等重要業(yè)務消息

          otter

          https://github.com/alibaba/otter

          otter是在canal基礎上又重新實現(xiàn)了可配置的消費者,使用otter的話,剛才說過的消費者就不需要寫了,而otter提供了一個web界面,可以自定義同步任務及map表。非常適合mysql庫之間的同步。

          另外:otter已在阿里云推出商業(yè)化版本 數(shù)據(jù)傳輸服務DTS, 開通即用,免去部署維護的昂貴使用成本。DTS針對阿里云RDS、DRDS等產品進行了適配,解決了Binlog日志回收,主備切換、VPC網絡切換等場景下的同步高可用問題。同時,針對RDS進行了針對性的性能優(yōu)化。出于穩(wěn)定性、性能及成本的考慮,強烈推薦阿里云用戶使用DTS產品。

          求說明

          在web服務器中,作為代碼發(fā)布機A,文件同步到服務器B,C,D等集群中,可以忽略某個文件和目錄。

          A服務器:內網IP: 192.168.1.2

          B服務器:內網IP: 192.168.1.3

          A和B的www用戶,或者root用戶免密登錄。

          rsync介紹

          rsync是linux系統(tǒng)下的數(shù)據(jù)鏡像備份工具。使用快速增量備份工具Remote Sync可以遠程同步,支持本地復制,或者與其他SSH、rsync主機同步。

          inotify介紹

          inotify是一種強大的、細粒度的、異步的文件系統(tǒng)事件監(jiān)控機制,linux內核從2.6.13起,加入了inotify支持,通過inotify可以監(jiān)控文件系統(tǒng)中添加、刪除,修改、移動等各種細微事件,利用這個內核接口,第三方軟件就可以監(jiān)控文件系統(tǒng)下文件的各種變化情況,而inotify-tools就是這樣的一個第三方軟件。

          1.安裝rsync

          A和B都做

          yum -y install xinetd
          yum -y install rsync
          
          chkconfig  rsync  on
          
          service xinetd restart
          systemctl restart xinetd

          A上操作:

          rsync -av root@192.168.1.3:/rsynctest/1.txt /root

          B上操作

          rsync -av /rsynctest/2.txt root@192.168.1.2:/root
          rsync -av -e "ssh -p 22" /rsynctest/2.txt root@192.168.1.2:/root        【如果ssh的開啟的端口不是22 則用-e指定ssh端口】

          2.安裝 inotify

          只在A上操作即可。

          安裝inotify-tools
          wget http://js.地址funet8地址.com/centos_software/inotify-tools-3.14.tar.gz
          tar -zxvf inotify-tools-3.14.tar.gz 
          cd inotify-tools-3.14
          ./configure
          make 
          make install
          
          inotifywait -m /root    【查看inotify-tools是否運行正?!?
          
          
          新開一個終端:
          [root@localhost ~]# cd /root
          [root@localhost ~]# touch bb.txt
          

          監(jiān)控到

          # inotifywait -m /root
          Setting up watches.
          Watches established.
          /root/ OPEN .bash_profile
          /root/ ACCESS .bash_profile
          /root/ CLOSE_NOWRITE,CLOSE .bash_profile
          /root/ OPEN .bashrc
          /root/ ACCESS .bashrc
          /root/ CLOSE_NOWRITE,CLOSE .bashrc
          /root/ CREATE bb.txt
          /root/ OPEN bb.txt
          /root/ ATTRIB bb.txt
          /root/ CLOSE_WRITE,CLOSE bb.txt

          網站實時同步腳本

          test.sh 為要運行網站實時同步腳本 其中定義了要同步的網站的路徑,要同步到的ip地址,哪些后綴名的文件忽略監(jiān)控,同步的用戶名,同步的文件列表,哪些文件不需要同步。

          cat test.sh
          #!/bin/sh
          SRC=/data/wwwroot/web/test/ #代碼發(fā)布服務器目錄
          DST=/data/wwwroot/web/test/ #目標服務器目錄
          
          IP="192.168.1.3 192.168.1.4" # 這里可以用hostname,多個主機用空格
          USER=www
          inotifywait -mrq $SRC -e modify,delete,create,close_write,attrib  | while read D E F  
                  do  
                          for i in $IP
                          do
                                  #排除后綴名和目錄
                                  /usr/bin/rsync -e 'ssh -p 60920' \
                                  -ahqzt --exclude "*.swp" \
                                  --exclude "*.svn" \
                                  --exclude "test/" \
                                  --exclude "runtime/" \
                                  --delete $SRC $USER@$i:$DST
                          done
                  done

          運行:

          html中,我們經常會用到table布局;有時候需要實現(xiàn)指定單元格,當鼠標移動到上面的時候,該單元格背景變色,不是該行背景變色,也不是僅僅文字的背景變色;


          html的文件結構大家都是知道的了,總體分為head和body部分

          我們要實現(xiàn)變色,在head部分實現(xiàn)格式

          <style>

          .tablex {border-collapse: collapse;}

          .tablex tr {}

          .tablex tr td {text-align:center; line-height:30px;}

          .tablex tr td:hover { background-color:#f00; color:#fff;}

          </style>

          然后在body部分,使用table時候,注明class="tablex".這樣的話,就實現(xiàn)了我們所說的效果了。

          附上完整代碼:

          <html>

          <head>

          <meta http-equiv="Content-Type" content="text/html; charset=GBK" />

          <title>測試鼠標移到到表格單元格背景顏色改變的</title>

          <style>

          .table1 {border-collapse: collapse;}

          .table1 tr {}

          .table1 tr td {text-align:center; line-height:30px;}

          .table1 tr td:hover { background-color:#006030; color:#006030;}

          </style>

          </head>

          <body>

          <table class="table1" width="70%" border="1">

          <tr>

          <td>測試</td>

          <td>測試</td>

          <td>測試</td>

          <td>測試</td>

          </tr>

          <tr>

          <td>測試</td>

          <td>測試</td>

          <td>測試</td>

          <td>測試</td>

          </tr>

          <tr>

          <td>測試</td>

          <td>測試</td>

          <td>測試</td>

          <td>測試</td>

          </tr>

          <tr>

          <td>測試</td>

          <td>測試</td>

          <td>測試</td>

          <td>測試</td>

          </tr>

          <tr>

          <td>測試</td>

          <td>測試</td>

          <td>測試</td>

          <td>測試</td>

          </tr>

          </table>

          </body>

          </html>

          在任何一個瀏覽器中運行,效果如下




          南大盛聯(lián)20年來一直致力于高端IT培訓--打造高級軟件人才實戰(zhàn)培訓專家,學生對我們的認可是我們一直前進的動力;項目團隊全球招聘,特聘來自海外的老師進行任教,采用100%商業(yè)項目進行實戰(zhàn)培訓,線上線下同步進行。

          課程全部緊隨市場需求進行設計,并且動態(tài)進行調整;7天免費試聽,0首付開始學習,學完后進行100%推薦就業(yè),不滿意工作崗位2次推薦。

          選定一個平臺,認識一群志同道合的朋友,你的未來人生路必定不一樣。

          目前已經開設下面這些培訓項目

          Java培訓

          安卓培訓

          JavaWeb培訓

          Linux培訓

          云服務器布置培訓

          HTML5培訓

          SEO培訓

          視頻剪輯培訓

          UI培訓

          歡迎您們分享給自己愿意分享的朋友,大家一起來進步;相互轉告,咨詢,學習。

          南大盛聯(lián)培訓理念:我懂,我也能讓你懂。


          主站蜘蛛池模板: 一区 二区 三区 中文字幕| 日韩电影一区二区三区| 国产亚洲一区二区三区在线| 无码人妻一区二区三区免费手机| 无码精品久久一区二区三区| 亚洲一区无码中文字幕乱码| 亚洲国产精品成人一区| 大帝AV在线一区二区三区| 色欲综合一区二区三区| 在线精品亚洲一区二区三区| 国产精品一区二区久久乐下载| 精品无码人妻一区二区免费蜜桃 | 人妻天天爽夜夜爽一区二区| 国产福利电影一区二区三区,亚洲国模精品一区 | 亚洲熟妇AV一区二区三区宅男| 国产免费播放一区二区| 在线观看视频一区二区| 国产日韩精品视频一区二区三区| 国产区精品一区二区不卡中文| 男人的天堂亚洲一区二区三区| 色婷婷香蕉在线一区二区| 97精品国产一区二区三区| 青青青国产精品一区二区| 国产亚洲一区二区精品| 国产一区二区精品| 夜夜添无码一区二区三区| 内射女校花一区二区三区| 精品人妻少妇一区二区三区| 免费一区二区三区在线视频| 精品综合一区二区三区| 视频一区视频二区制服丝袜 | 精品国产香蕉伊思人在线在线亚洲一区二区 | 无码乱码av天堂一区二区| 人妻久久久一区二区三区| 亚洲国产精品一区| 精品无码一区二区三区在线| 亚洲狠狠狠一区二区三区| 国内自拍视频一区二区三区| 无码日韩精品一区二区免费| 色一情一乱一伦一区二区三欧美| 欧美日韩综合一区二区三区|