如何在 yugabyte 的标准输出中打印更改数据日志?

How to print change data logs at stdout in yugabyte?

我正在使用 yugabyte db 1.3.0.0 并跟随 https://docs.yugabyte.com/latest/deploy/cdc/use-cdc/ 学习 yugabyte db cdc。

遵循的程序:

a) generate users dynamically and insert into table, yugastore.users continuously through script
b) downloaded yb-cdc-connector.jar using command, wget -O yb-cdc-connector.jar https://github.com/yugabyte/yb-kafka-connector/blob/master/yb-cdc/yb-cdc-connector.jar?raw=true
c)copied yb-cdc-connector.jar to jre/lib/ext using command cp -a /root/yb-cdc-connector.jar /usr/lib/jvm/java-1.8.0-openjdk-1.8.0.232.b09-0.el7_7.x86_64/jre/lib/ext/
d) java -jar /usr/lib/jvm/java-1.8.0-openjdk-1.8.0.232.b09-0.el7_7.x86_64/jre/lib/ext/yb_cdc_connector.jar --table_name yugastore.users --master_addrs 127.0.0.1 --stream_id 1 --log_only

错误日志:

[root@srvr0 ~]# java -jar /usr/lib/jvm/java-1.8.0-openjdk-1.8.0.232.b09-0.el7_7.x86_64/jre/lib/ext/yb_cdc_connector.jar --table_name yugastore.users --master_addrs 127.0.0.1 --stream_id 1 --log_only
Error: Unable to access jarfile /usr/lib/jvm/java-1.8.0-openjdk-1.8.0.232.b09-0.el7_7.x86_64/jre/lib/ext/yb_cdc_connector.jar

记录插入:

yugastore=> select count(*) from yugastore.users;
 count 
-------
 59414
(1 row)

yugastore=> select count(*) from yugastore.users;
 count 
-------
 60066
(1 row)

yugastore=> select count(*) from yugastore.users;
 count 
-------
 79341
(1 row)

yugastore=> 

java:

[root@srvr0 ~]# java -version
openjdk version "1.8.0_232"
OpenJDK Runtime Environment (build 1.8.0_232-b09)
OpenJDK 64-Bit Server VM (build 25.232-b09, mixed mode)

yb-cdc-connector.jar的可用性:

[root@srvr0 ~]# ll /usr/lib/jvm/java-1.8.0-openjdk-1.8.0.232.b09-0.el7_7.x86_64/jre/lib/ext/
total 54756
-rw-r--r--. 1 root root  4003855 Oct 22 12:18 cldrdata.jar
-rw-r--r--. 1 root root     9445 Oct 22 12:18 dnsns.jar
-rw-r--r--. 1 root root    48733 Oct 22 12:18 jaccess.jar
-rw-r--r--. 1 root root  1204895 Oct 22 12:18 localedata.jar
-rw-r--r--. 1 root root      617 Oct 22 12:18 meta-index
-rw-r--r--. 1 root root  2033680 Oct 22 12:18 nashorn.jar
-rw-r--r--. 1 root root    52079 Oct 22 12:18 sunec.jar
-rw-r--r--. 1 root root   304504 Oct 22 12:18 sunjce_provider.jar
-rw-r--r--. 1 root root   279788 Oct 22 12:18 sunpkcs11.jar
-rw-r--r--. 1 root root 48026360 Jan 16 08:31 yb-cdc-connector.jar
-rw-r--r--. 1 root root    78006 Oct 22 12:18 zipfs.jar

请帮助我在标准输出中打印更改日志!

更新 1:

文档中需要进行小的更正:将文档命令中的 yb_cdc_connector.jar 编辑为 yb-cdc-connector.jar,因为 wget 下载为 yb_cdc_connector.jar.

尽管 table 发生了变化(插入和删除),它显示轮询但未打印 cdc。

日志:

[root@srvr0 ~]# java -jar ./yb_cdc_connector.jar --table_name yugastore.users --master_addrs 127.0.0.1 --stream_id 1 --log_only
[2020-01-22 01:37:24,221] INFO Starting CDC Kafka Connector... (org.yb.cdc.Main:28)
2020-01-22 01:37:24,393 [INFO|org.yb.cdc.KafkaConnector|KafkaConnector] Creating new YB client...
[2020-01-22 01:37:28,344] INFO Discovered tablet YB Master for table YB Master with partition ["", "") (org.yb.client.AsyncYBClient:1593)
2020-01-22 01:37:28,839 [INFO|org.yb.cdc.KafkaConnector|KafkaConnector] Polling for new tablet c6f3d759202341ecad87e2617579371c
2020-01-22 01:37:28,842 [INFO|org.yb.cdc.KafkaConnector|KafkaConnector] Polling for new tablet e94b1748d1a742289500a30a38ff9eda

插入:

time: 01:37:49.980 cumulative records: 10
time: 01:37:52.169 cumulative records: 20
time: 01:37:52.410 cumulative records: 30
time: 01:37:52.425 cumulative records: 40
...
time: 01:39:28.139 cumulative records: 970
time: 01:39:28.171 cumulative records: 980
time: 01:39:28.208 cumulative records: 990
time: 01:39:28.246 cumulative records: 1000

删除:

yugastore=# delete from yugastore.users;
DELETE 21314
yugastore=# select count(*) from yugastore.users;
 count 
-------
     0
(1 row)

错误提示无法访问您移动的系统目录下的jar文件。很可能是权限问题。请注意,您甚至不需要将此 jar 移动到系统目录中。所以保留 jar 是一些普通目录是最简单的选择。

此外,您也不需要 stream_id,因为大多数时候您需要默认行为。因此,请在拥有 jar 文件的用户目录中尝试以下命令。

java -jar ./yb_cdc_connector.jar \ 
--table_name yugastore.users \
--master_addrs 127.0.0.1:7100 \
--log_only