我正在尝试将CSV文件加载到使用dsbulk实用程序的cassandra群集。我有CSV文件的本地副本,并尝试连接到远程群集并将CSV加载到表中。但是,dsbulk无法识别远程群集地址,并显示
Could not reach any contact point, make sure you've provided valid addresses
以及
Caused by: An existing connection was forcibly closed by the remote host.
我正在使用intellij中的相同连接参数连接到sslenabled群集,它工作正常。无法确定它不与dsbulk一起工作的原因。请查找dsbulk的application. conf和我正在尝试运行的命令
dsbulk {
--dsbulk.connector.name = csv
--dsbulk.connector.csv.url = <CSV_Path>
--dsbulk.connector.csv.header true
--datastax-java-driver.basic.contact-points = [ "169.XX.XXX.XX", "169.XX.XXX.XX", "169.XX.XXX.XX" ]
--datastax-java-driver.advanced.auth-provider.username = <user_name>
--datastax-java-driver.advanced.auth-provider.password = <pwd
--dsbulk.schema.keyspace = <key space
--dsbulk.schema.table = <table
--datastax-java-driver.advanced.ssl-engine-factory.truststore-path = <cacerts path<br/>
--datastax-java-driver.advanced.ssl-engine-factory.truststore-password = <pwd
--datastax-java-driver.advanced.resolve-contact-points = true
}
命令:
$ dsbulk load -url CSV Path**
上述命令无法识别application.conf属性,并尝试连接到www.example.com127.0.0.1
错误:
[driver] Error connecting to Node(endPoint=/127.0.0.1:9042, hostId=null, hashCode=2c61adb4)
不确定dsbulk未使用conf文件的问题是什么
$ dsbulk load -url CSV Path -k keysapce -t table -h "[ "169.XX.XXX.XX", "169.XX.XXX.XX", "169.XX.XXX.XX" ]" -u userName -p pwd
以上命令无法连接到显式添加的群集节点。错误:
[driver] Error connecting to Node(endPoint=/169.XX.XXX.XX:9042, hostId=null, hashCode=2a38b2fe),
Suppressed: [driver|control|id: 0x17d0139b, L:/172.31.50.184:59702 - R:/169.XX.XXX.XXX:9042] Protocol initialization request, step 1 (OPTIONS): unexpected failure (com.datastax.oss.driver.api.core.connection.ClosedConnectionException: Unexpected error on channel).
Caused by: Unexpected error on channel.
Caused by: An existing connection was forcibly closed by the remote host.
dsbulk正在所有节点上重试,并给出相同的错误。
Auth正在重定向到纯文本,我相信这将适用于我的用例
Username and password provided but auth provider not specified, inferring PlainTextAuthProvider
您能否就我的配置或与远程群集的连接的问题提出建议?
我的实际用例是每周将数百万条记录从Sybase归档到Cassandra,为此我尝试创建一个简单的java实用程序来执行此dsbulk。
先谢谢你了。
2条答案
按热度按时间bqjvbblv1#
问题是您没有正确设置配置文件中条目的格式,因此DSPulk无法分析它们。由于配置文件不可用,DSPulk默认连接到
localhost
(127.0.0.1
)。正确的格式如下所示:
然后,您需要单独定义Java驱动程序选项,如下所示:
如果您没有正确配置SSL,那么驱动程序将无法连接到节点上的任何节点,这就是您提到的那些错误的原因。
请注意,您可以将Java驱动程序配置放在单独的
driver.conf
文件中,但需要确保在应用程序配置中使用以下行引用它:详情请参见Using SSL with DSBulk。干杯!
brqmpdu12#
application.conf
文件的内容不正确。请参阅this documentation以了解如何构造配置文件。