我是弹性搜索(ES)和logstash的新手。我已经使用此链接成功设置了 elasticsearch 和 kibana 。在此之后,我尝试使用 logstash 将一个表从 sql server 上传到 ES。我的logstash conf文件如下:
input {
jdbc {
clean_run => true
jdbc_driver_library => "/home/myusr/Downloads/sqljdbc_6.0/enu/jre8/sqljdbc42.jar"
jdbc_connection_string => "jdbc:sqlserver://xyz;databaseName=test;user=name;password=pass@123;"
jdbc_driver_class => "com.microsoft.sqlserver.jdbc.SQLServerDriver"
jdbc_validate_connection => true
jdbc_user => "name"
jdbc_password => "pass@123"
statement => "SELECT top 10 * FROM mytable"
}
}
output {
elasticsearch {
hosts => ["localhost:9200"]
index => "my_table"
}
}
在运行此文件时,我得到:
[ERROR] 2021-07-16 18:13:55.567 [[main]<jdbc] jdbc - Unable to connect to database. Tried 1 times {:message=>"Java::JavaLang::NoClassDefFoundError: javax/xml/bind/DatatypeConverter", :exception=>Sequel::DatabaseConnectionError, :cause=>java.lang.NoClassDefFoundError: javax/xml/bind/DatatypeConverter, :backtrace=>["com.microsoft.sqlserver.jdbc.SQLServerConnection.sendLogon(com/microsoft/sqlserver/jdbc/SQLServerConnection.java:4098)"
在按照此处的建议删除 java11 版本后,我尝试重新安装 java8 。但它没有用。我没有使用任何 gradle 或 IDE--add-modules
来解决这个问题。我正在跟进这个链接,但目前还没有解决方案。我遇到了这个障碍。我也检查了这个链接。我在这里没有做的唯一一步是“使用映射创建 Elasticsearch 索引”。这是问题的原因吗?我该如何解决这个问题?
任何帮助表示赞赏。