這是堅持技術寫做計劃(含翻譯)的第25篇,定個小目標999,每週最少2篇。html
本文主要介紹CDH6.2+StreamSets3.9。java
StreamSets是一個大數據採集和數據處理工具。能夠經過拖拽式的可視化操做,實現數據管道(Pipelines)的設計和調度。其特色有:mysql
相似的開源產品還有 Apache NiFi , 網上有關於NiFi和StreamSets 的對比 Open Source ETL: Apache NiFi vs Streamsets (網上有中文翻譯版版)git
國內接觸較多的ETL工具,多是 DataX 、 Kettle 、Sqoop。此處有個簡單的對比,數據集成之 kettle、sqoop、datax、streamSets 比較 github
從 archives.streamsets.com/index.html 下載3.9的
sql
wget -P /var/www/html/streamsets3.9.0/ https://archives.streamsets.com/datacollector/3.9.0/parcel/manifest.json
wget -P /var/www/html/streamsets3.9.0/ https://archives.streamsets.com/datacollector/3.9.0/parcel/STREAMSETS_DATACOLLECTOR-3.9.0-el7.parcel.sha
wget -P /var/www/html/streamsets3.9.0/ https://archives.streamsets.com/datacollector/3.9.0/parcel/STREAMSETS_DATACOLLECTOR-3.9.0-el7.parcel
複製代碼
從 streamsets.com/opensource 下載
apache
wget -P /opt/cloudera/csd/ https://archives.streamsets.com/datacollector/3.9.0/csd/STREAMSETS-3.9.0.jar
cd /opt/cloudera/csd/
sudo chown cloudera-scm:cloudera-scm STREAMSETS-3.9.0.jar && sudo chmod 644 STREAMSETS-3.9.0.jar
systemctl restart cloudera-scm-server
複製代碼
在cm所在主機, ls -lah /opt/cloudera/parcel-repo
json
把下載的 archives.streamsets.com/datacollect… 複製到 /opt/cloudera/parcel-repo 下
centos
打開streamsets,默認用戶名密碼 admin/admin
bash
官方教程,參考 Basic Tutorial
本文主要講解訂閱mysql binlog進行數據同步
修改mysql配置文件,my.cnf,在mysqld下增長(注意5.7的不加server-id沒法正常啓動)
server-id=1
log-bin=mysql-bin
binlog_format=ROW
複製代碼
GRANT ALL on slave_test.* to 'slave_test'@'%' identified by 'slave_test';
GRANT SELECT, REPLICATION CLIENT, REPLICATION SLAVE on *.* to 'slave_test'@'%';
FLUSH PRIVILEGES;
複製代碼
wget -P /opt/cloudera/parcels/STREAMSETS_DATACOLLECTOR/streamsets-libs/streamsets-datacollector-mysql-binlog-lib/lib/ https://repo1.maven.org/maven2/mysql/mysql-connector-java/5.1.47/mysql-connector-java-5.1.47.jar
複製代碼
重啓streamsets
此處使用mysql自帶的壓測工具 mysqlslap.exe
進行測試
bin/mysqlslap --user=root --password=xxxxxx --concurrency=50 --number-int-cols=5 --number-char-cols=20 --auto-generate-sql --number-of-queries=100000 --auto-generate-sql-load-type=write --host=192.168.0.123 --port=3306
--user 用戶(須要有建庫建表權限)
--password 密碼
--concurrency 併發數
--number-int-cols 表內有5個數字列
--number-char-cols 表內有20個字符串列
--auto-generate-sql 自動生成腳本
--number-of-queries 總執行次數
--auto-generate-sql-load-type=write 只執行寫入操做
--host mysql 主機
--port 端口
複製代碼
下方有監控報表
同步不一致致使的錯誤,手動從
若是報錯 Pipeline Status: RUNNING_ERROR: For input string: ""xxxx"
,把my.cnf改爲
server-id=1
log-bin=mysql-bin
binlog_format=ROW
sync_binlog=1
binlog_gtid_simple_recovery=ON
log_slave_updates=ON
gtid_mode=ON
enforce_gtid_consistency=ON
複製代碼