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

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > 数据库 >内容正文

数据库

mysql tungsten_使用tungsten将mysql的数据同步到hadoop

發(fā)布時間:2023/12/10 数据库 27 豆豆
生活随笔 收集整理的這篇文章主要介紹了 mysql tungsten_使用tungsten将mysql的数据同步到hadoop 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

背景

線上有很多的數(shù)據(jù)庫在運行,后臺需要一個分析用戶行為的數(shù)據(jù)倉庫。目前比較流行的是mysql和hadoop平臺。

現(xiàn)在的問題是,如何將線上的mysql數(shù)據(jù)實時的同步到hadoop中,以供分析。這篇文章就是利用tungsten-replicator來實現(xiàn)。

環(huán)境

由于tungsten-replicator依賴ruby和gem。需要安裝

yum install ruby

yum install rubygems

gem install json

其中json模塊可能因為gfw的原因,需要手動下載到本地,然后使用gem本地安裝

yum install ruby-devel

gem install --local json-xxx.gem

安裝好mysql,地址是 192.168.12.223:3306 ,數(shù)據(jù)庫配置好權(quán)限

安裝好hadoop 2.4 ,hdfs的地址是?192.168.12.221:9000

配置

先在mysql的機器上,進入到tungsten-replicator目錄下執(zhí)行,并且啟動tungsten,可以使用trepctl?thl 等命令查看服務(wù)的狀態(tài)

./tools/tpm install mysql1 --master=192.168.12.223 --install-directory=/user/app/tungsten/mysql1 --datasource-mysql-conf=/user/data/mysql_data/my-3306.cnf --replication-user=stats --replication-password=stats_dh5 --enable-heterogenous-master=true --net-ssh-option=port=20460 --property=replicator.filter.pkey.addColumnsToDeletes=true --property=replicator.filter.pkey.addPkeyToInserts=true

mysql1/tungsten/cluster-home/bin/startall

到hadoop的機器上,,進入到tungsten-replicator目錄下執(zhí)行,并且啟動tungsten,可以使用trepctl?thl 等命令查看服務(wù)的狀態(tài)

./tools/tpm install hadoop1 --batch-enabled=true --batch-load-language=js --batch-load-template=hadoop --datasource-type=file --install-directory=/user/app/tungsten/hadoop1 --java-file-encoding=UTF8 --java-user-timezone=GMT --master=192.168.12.223 --members=192.168.12.221 --property=replicator.datasource.applier.csvType=hive --property=replicator.stage.q-to-dbms.blockCommitInterval=1s --property=replicator.stage.q-to-dbms.blockCommitRowCount=1000 --skip-validation-check=DatasourceDBPort --skip-validation-check=DirectDatasourceDBPort --skip-validation-check=HostsFileCheck --skip-validation-check=InstallerMasterSlaveCheck --skip-validation-check=ReplicationServicePipelines --rmi-port=25550

可以在hadoop的文件系統(tǒng)上,查看對應(yīng)的目錄下是否生成了mysql對應(yīng)的庫。如下所示:

└── user

......

......

└── tungsten

└── staging

└── hadoop1

└── db1

├── x1

│?? ├── x1-14.csv

│?? └── x1-3.csv

└── x2

├── x2-115.csv

├── x2-15.csv

├── x2-16.csv

├── x2-17.csv

└── x2-18.csv

最后還需要將staging的數(shù)據(jù)merge到hive中,建立hive的表結(jié)構(gòu),并且讓數(shù)據(jù)能夠被hive查詢,這里使用continuent-tools-hadoop工具里面的load-reduce-check腳本,在使用之前,先需要配置好hive的環(huán)境變量,并且啟動hiveservice在10000端口上。拷貝如下的jar包到bristlecone的lib-ext目錄

cp -v /user/app/hive/apache-hive-0.13.1-bin/lib/hive-jdbc-0.13.1.jar /user/app/tungsten/hadoop1/tungsten/bristlecone/lib-ext/cp-v /user/app/hive/apache-hive-0.13.1-bin/lib/hive-exec-0.13.1.jar /user/app/tungsten/hadoop1/tungsten/bristlecone/lib-ext/cp-v /user/app/hive/apache-hive-0.13.1-bin/lib/hive-service-0.13.1.jar /user/app/tungsten/hadoop1/tungsten/bristlecone/lib-ext/cp-v /user/app/hive/apache-hive-0.13.1-bin/lib/httpclient-4.2.5.jar /user/app/tungsten/hadoop1/tungsten/bristlecone/lib-ext/cp-v /user/app/hive/apache-hive-0.13.1-bin/lib/commons-httpclient-3.0.1.jar /user/app/tungsten/hadoop1/tungsten/bristlecone/lib-ext/cp-v /user/app/hive/apache-hive-0.13.1-bin/lib/httpcore-4.2.5.jar /user/app/tungsten/hadoop1/tungsten/bristlecone/lib-ext/cp-v /user/app/hadoop/hadoop-2.4.0-onenode/share/hadoop/common/hadoop-common-2.4.0.jar /user/app/tungsten/hadoop1/tungsten/bristlecone/lib-ext/cp-v /user/app/hadoop/hadoop-2.4.0-onenode/share/hadoop/common/lib/slf4j-* /user/app/tungsten/hadoop1/tungsten/bristlecone/lib-ext/

然后執(zhí)行如下的命令:

第一次,或者以后增加了表,或者表結(jié)構(gòu)發(fā)生了變化

./bin/load-reduce-check -v -U jdbc:mysql:thin://192.168.12.223:3306/ -u stats -p stats_dh5 --schema db1 --service=hadoop1 -r /user/app/tungsten/hadoop1 --no-compare

如果表結(jié)構(gòu)沒有發(fā)生變化,只需要重新裝載數(shù)據(jù)的話,可以執(zhí)行如下的命令

./bin/load-reduce-check -v -U jdbc:mysql:thin://192.168.12.223:3306/ -u stats -p stats_dh5 --schema db1 --service=hadoop1 -r /user/app/tungsten/hadoop1 --no-base-ddl --no-staging-ddl --no-meta

只想比較數(shù)據(jù),不過貌似compare很卡

./bin/load-reduce-check -v -U jdbc:mysql:thin://192.168.12.223:3306/ -u stats -p stats_dh5 --schema db1 --service=hadoop1 -r /user/app/tungsten/hadoop1 --no-base-ddl --no-staging-ddl --no-meta --no-materialize

參考

tungsten-replicator-3.0.pdf ? 中的 ?3.4. Deploying MySQL to Hadoop Replication

總結(jié)

以上是生活随笔為你收集整理的mysql tungsten_使用tungsten将mysql的数据同步到hadoop的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

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