Cassandra 和 Solr 集成:无法执行查询
Cassandra and Solr integration: Unable to execute query
我正在尝试集成 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 上并尝试从示例核心导入数据,我无法导入。我不断收到此错误。
我无法弄清楚我哪里错了,有人可以帮助我吗?提前致谢。
该错误意味着 solr 无法通过 jdbc 到达 cassandra。首先,您应该检查是否可以使用 java 从 Solr 主机连接到 cassandra,方法是使用一些数据库工具,如 squirrelSQL 或类似工具。
一旦您确认可以通过这种方式访问它,请转到 solr。但是你有一些东西阻止它(防火墙,一些错误的端口,谁知道......)
JDBC 支持的最后一个 cassandra 版本是 1.2.5。后来,Datatstax 为 Cassandra 开发了连接 JAVA 应用程序所需的驱动程序。但是,datastax 驱动程序不能与 solr 一起使用,因为它们有自己的 DSE 搜索引擎。
This jdbc 可用的驱动程序与最新版本的 cassandra 兼容。使用这个 JDBC 我可以整合。
而且 this JDBC 有效。
对 cassandra 使用 nodetool enablethrift
。你的错误很明显是说 unable to connect 。连接被拒绝 .. 在启用节俭后使用 nodetool info
检查它。希望这能解决您的问题。
我正在尝试集成 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 上并尝试从示例核心导入数据,我无法导入。我不断收到此错误。
我无法弄清楚我哪里错了,有人可以帮助我吗?提前致谢。
该错误意味着 solr 无法通过 jdbc 到达 cassandra。首先,您应该检查是否可以使用 java 从 Solr 主机连接到 cassandra,方法是使用一些数据库工具,如 squirrelSQL 或类似工具。
一旦您确认可以通过这种方式访问它,请转到 solr。但是你有一些东西阻止它(防火墙,一些错误的端口,谁知道......)
JDBC 支持的最后一个 cassandra 版本是 1.2.5。后来,Datatstax 为 Cassandra 开发了连接 JAVA 应用程序所需的驱动程序。但是,datastax 驱动程序不能与 solr 一起使用,因为它们有自己的 DSE 搜索引擎。
This jdbc 可用的驱动程序与最新版本的 cassandra 兼容。使用这个 JDBC 我可以整合。
而且 this JDBC 有效。
对 cassandra 使用 nodetool enablethrift
。你的错误很明显是说 unable to connect 。连接被拒绝 .. 在启用节俭后使用 nodetool info
检查它。希望这能解决您的问题。