关键词优化排名公司,合肥网站排名优化公司哪家好,电商网站开发背景,常德网站设计字答科技背景线上有很多的数据库在运行#xff0c;后台需要一个分析用户行为的数据仓库。目前比较流行的是mysql和hadoop平台。现在的问题是#xff0c;如何将线上的mysql数据实时的同步到hadoop中#xff0c;以供分析。这篇文章就是利用tungsten-replicator来实现。环境由于tungste…背景线上有很多的数据库在运行后台需要一个分析用户行为的数据仓库。目前比较流行的是mysql和hadoop平台。现在的问题是如何将线上的mysql数据实时的同步到hadoop中以供分析。这篇文章就是利用tungsten-replicator来实现。环境由于tungsten-replicator依赖ruby和gem。需要安装yum install rubyyum install rubygemsgem install json其中json模块可能因为gfw的原因需要手动下载到本地然后使用gem本地安装yum install ruby-develgem install --local json-xxx.gem安装好mysql地址是 192.168.12.223:3306 数据库配置好权限安装好hadoop 2.4 hdfs的地址是 192.168.12.221:9000配置先在mysql的机器上进入到tungsten-replicator目录下执行并且启动tungsten可以使用trepctl thl 等命令查看服务的状态./tools/tpm install mysql1 --master192.168.12.223 --install-directory/user/app/tungsten/mysql1 --datasource-mysql-conf/user/data/mysql_data/my-3306.cnf --replication-userstats --replication-passwordstats_dh5 --enable-heterogenous-mastertrue --net-ssh-optionport20460 --propertyreplicator.filter.pkey.addColumnsToDeletestrue --propertyreplicator.filter.pkey.addPkeyToInsertstruemysql1/tungsten/cluster-home/bin/startall到hadoop的机器上进入到tungsten-replicator目录下执行并且启动tungsten可以使用trepctl thl 等命令查看服务的状态./tools/tpm install hadoop1 --batch-enabledtrue --batch-load-languagejs --batch-load-templatehadoop --datasource-typefile --install-directory/user/app/tungsten/hadoop1 --java-file-encodingUTF8 --java-user-timezoneGMT --master192.168.12.223 --members192.168.12.221 --propertyreplicator.datasource.applier.csvTypehive --propertyreplicator.stage.q-to-dbms.blockCommitInterval1s --propertyreplicator.stage.q-to-dbms.blockCommitRowCount1000 --skip-validation-checkDatasourceDBPort --skip-validation-checkDirectDatasourceDBPort --skip-validation-checkHostsFileCheck --skip-validation-checkInstallerMasterSlaveCheck --skip-validation-checkReplicationServicePipelines --rmi-port25550可以在hadoop的文件系统上查看对应的目录下是否生成了mysql对应的库。如下所示└── 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的数据merge到hive中建立hive的表结构并且让数据能够被hive查询这里使用continuent-tools-hadoop工具里面的load-reduce-check脚本在使用之前先需要配置好hive的环境变量并且启动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/然后执行如下的命令第一次或者以后增加了表或者表结构发生了变化./bin/load-reduce-check -v -U jdbc:mysql:thin://192.168.12.223:3306/ -u stats -p stats_dh5 --schema db1 --servicehadoop1 -r /user/app/tungsten/hadoop1 --no-compare如果表结构没有发生变化只需要重新装载数据的话可以执行如下的命令./bin/load-reduce-check -v -U jdbc:mysql:thin://192.168.12.223:3306/ -u stats -p stats_dh5 --schema db1 --servicehadoop1 -r /user/app/tungsten/hadoop1 --no-base-ddl --no-staging-ddl --no-meta只想比较数据不过貌似compare很卡./bin/load-reduce-check -v -U jdbc:mysql:thin://192.168.12.223:3306/ -u stats -p stats_dh5 --schema db1 --servicehadoop1 -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