我试图整合cassandra和solr。 我使用solr -6.6.0版本,cassandra 3.10版本和java 8。
我的solrconfig.xml中添加了这些行
<lib dir="/home/bkoganti/solr-6.6.0/contrib/dataimporthandler/" regex="cassandra-jdbc-.*\.jar"/>
<lib dir="/home/bkoganti/solr-6.6.0/contrib/dataimporthandler/" regex="cassandra-all-.*\.jar"/>
<lib dir="/home/bkoganti/solr-6.6.0/contrib/dataimporthandler/" regex="cassandra-thrift-.*\.jar"/>
<lib dir="/home/bkoganti/solr-6.6.0/contrib/dataimporthandler/" regex="libthrift-.*\.jar"/>
<lib dir="/home/bkoganti/solr-6.6.0/contrib/dataimporthandler/" regex="cassandra-driver-core-*\.jar"/>
.
.
.
.
<requestHandler name="/dataimport" class="solr.DataImportHandler">
<lst name="defaults">
<str name="config">sample-data-config.xml</str>
</lst>
</requestHandler>`
抽样数据-config.xml中
<dataConfig>
<dataSource type="JdbcDataSource" driver="org.apache.cassandra.cql.jdbc.CassandraDriver" url="jdbc:cassandra://127.0.0.1:9160/demo" autoCommit="true"/>
<document name="content">
<entity name="test" query="SELECT id,org,name,dep,place,sal from tutor" autoCommit="true">
<field column="id" name="id" />
<field column="org" name="org" />
<field column="name" name="name" />
<field column="dep" name="dep" />
<field column="place" name="place" />
<field column="sal" name="sal" />
</entity>
</document>
</dataConfig>
到托管架构我添加了这些
<field name="org" type="string" indexed="true" stored="true" required="true" />
<field name="dep" type="string" indexed="true" stored="true" required="true" />
<field name="place" type="string" indexed="true" stored="true" required="true" />
<field name="sal" type="string" indexed="true" stored="true" required="true" />
在运行solr并尝试从示例核心导入数据时,我无法导入。我一直收到这个错误。
我无法弄清楚我错在哪里可以帮助我。提前谢谢。
答案 0 :(得分:1)
JDBC支持的最后一个版本的cassandra是1.2.5。后来,Datatstax开发了Cassandra所需的驱动程序,以便与JAVA应用程序连接。但是,数据存储驱动程序不能与solr一起使用,因为它们有自己的DSE搜索引擎。
This可用的jdbc驱动程序与最新版本的cassandra兼容。使用这个JDBC我可以集成。
并且this JDBC也有效。
答案 1 :(得分:0)
该错误意味着solr无法通过jdbc到达cassandra。首先,您应该检查是否可以通过使用某些数据库工具(如squirrelSQL或类似工具)从Solr主机连接到cassandra。
一旦您确认可以通过这种方式访问它,请转到solr。但是你有防止它的东西(防火墙,一些错误的端口,谁知道......)
答案 2 :(得分:0)
将nodetool enablethrift
用于cassandra。您的错误明确表示无法连接。使用nodetool info
启用节俭后,连接被拒绝..希望这能解决您的问题。