Logstash 错误 Java::JavaLang::NoClassDefFoundError 无法解决

2024-04-19

我是elasticsearch(ES) 和logstash 的新手。我已经使用它成功设置了elasticsearch和kibanalink https://www.youtube.com/watch?v=hVgrXi_9L6Y。之后我尝试使用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)"

我按照建议删除了 java 11 版本后尝试重新安装 java 8here https://discuss.elastic.co/t/unable-to-connect-to-database-tried-1-times-error-message-java-javax-xml-bind-datatypeconverter/200901/3。但这没有用。我没有使用任何 gradle 或 IDE 来做--add-modules解决这个问题。我正在跟进这个link https://dbtut.com/index.php/2019/06/02/how-to-transfer-data-from-mssql-to-elasticsearch-using-logstash/但目前还没有解决办法。我在这方面遇到了障碍。我也检查过这个link https://dbtut.com/index.php/2019/06/02/how-to-transfer-data-from-mssql-to-elasticsearch-using-logstash/。我在这里没有执行的唯一步骤是“使用映射创建 Elasticsearch 索引”。这是问题的原因吗?我该如何解决这个问题?

任何帮助表示赞赏。


我找到了问题的解决方案。

如果您看到上面的链接,它们会显示sqljdbc42.jar作为 JDBC SQL Server 驱动程序,其路径必须保存在jdbc_driver_library。这是可用的驱动程序微软网站 https://learn.microsoft.com/en-us/sql/connect/jdbc/download-microsoft-jdbc-driver-for-sql-server?view=sql-server-ver15如 tar.gz。但是,当我将驱动程序更改为“mssql-jdbc-9.2.1.jre11.jar”时link https://learn.microsoft.com/en-us/sql/connect/jdbc/download-microsoft-jdbc-driver-for-sql-server?view=sql-server-ver15(zip 文件中的驱动程序),它工作了。我也改变了jdbc_driver_library在 Logstash 文件中,如下所示link https://stackoverflow.com/a/59206373/5658251.

更新后的 Logstash conf 文件如下所示:

input {
  jdbc {
  clean_run => true
    jdbc_driver_library => ""
    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"
 }
}

请注意,jdbc_driver_library被分配给一个空字符串。这是可以完成的,因为我们已经设置了 JDBC 驱动程序文件的路径,以便 Logstash 可以找到它。除了设置给定的路径之外here https://stackoverflow.com/a/38751417/5658251,我还将我的 jar 文件复制到此位置:/usr/share/logstash/logstash-core/lib/jars/让 Logstash 轻松找到驱动程序。

使用上述内容,我能够成功连接并将数据从 SQL Server 迁移到 Elastic Search。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Logstash 错误 Java::JavaLang::NoClassDefFoundError 无法解决 的相关文章

随机推荐

  • emacs - 如何在子目录中进行查找文件搜索

    我想为 Emacs 实现类似 Resharper 的 转到文件 功能 当按下上述快捷键时 Resharper 会弹出一个接受通配符字符串的文本框 并显示一个自动完成菜单 其中列出了项目中与该通配符匹配的所有文件 source jetbrai
  • 鼠标悬停时显示链接

    我有页面的某些区域 单击这些区域时 会将用户重定向到某些地址 我的问题是 当用户 将鼠标悬停在 这些区域上时 他们会看到一个指针 但不知道它链接到哪里 就我的目的而言 用户知道他们被链接到哪里是很重要的 我相信当您将鼠标悬停在链接上时 Go
  • 保存图片到mongodb

    我正在尝试使用龙卷风 石油和 mongodb 来做到这一点 avat self request files avatar 0 body nomfich self request files avatar 0 filename try ima
  • Symfony2 Doctrine2 内存泄漏/超出内存限制

    我在symfony2和doctrine2的结合上遇到了很多麻烦 我必须处理巨大的数据集 大约 2 3 百万次写入和读取 并且必须做大量额外的工作以避免内存不足 我找出了两个要点 即 泄漏 内存 它们实际上并不是真正泄漏 而是分配了很多内存
  • 优化缓慢的 ORDER BY RAND() 查询

    我有一个正在使用的查询ORDER BY RAND 但这需要太长时间 而且随着数据的增长 情况会变得更糟 该查询连接两个表 返回 5 个随机产品以及每个产品的随机图像 表 1 产品 product id pk auto inc name de
  • 下载文件 java spring Rest api

    我想制作一个rest api控制器 spring boot 当用get请求时将允许我下载一个excel文件 目前我有这个端点 RequestMapping value download xls method RequestMethod GE
  • 如何在 Bash 中保留带引号的字符串中的换行符? [复制]

    这个问题在这里已经有答案了 我正在创建一个脚本来自动创建 apache 虚拟主机 我的脚本的一部分是这样的 MYSTRING
  • 在Android中使用AudioTrack播放WAV文件

    我正在使用 Android 试图让我的 AudioTrack 应用程序播放 Windows wav 文件 Tada wav 坦率地说 这不应该这么难 但我听到了很多奇怪的事情 该文件保存在我手机的迷你 SD 卡上 读取内容似乎不是问题 但是
  • Eclipselink 生成的规范元模型不会从另一个 jar 扩展基本元模型

    我使用 Netbeans 8 0 1 创建了两个 Maven 项目来说明问题 common1 和 common2 jar common1 封装包1 MappedSuperclass public class Entity1 implemen
  • 符号被认为是标识符,而不是运算符

    我想实现一个在我的软件中使用的货币运算符 它接受 Double 并返回货币类型以进行更精确的计算 自定义运算符的代码基本上看起来有点像这样 请忽略这种形式中明显的精度下降以及因此无用的运算符 postfix operator postfix
  • 为 Phusion Passenger 应用程序设置环境变量

    我已经在开发中设置了 Passenger Mac OS X 并且它运行完美 后来唯一的问题来了 现在我有一个自定义的GEM HOME路径和 ImageMagick 二进制文件安装在 usr local 我可以将它们放入获取源的 shell
  • regexp_split_to_table 和 row_number

    我有一个包含字符串数据的表 如下所示 id string data 1 red green blue 2 orange 3 purple cyan 我需要将字符串数据拆分为具有行号的项目 id num item 1 1 red 1 2 gr
  • Chrome 在调整大小时无法正确更新背景大小渐变

    虽然 Firefox 正确地做到了这一点 但更新了linear gradient每一帧上的背景 chrome 似乎都会以 跳跃 的方式渲染事物 这意味着它只会在调整大小后每隔几个像素渲染一次数学上正确的布局 演示游乐场 http jsbin
  • 如何使用 Haskell 创建符号链接?

    如何使用 Haskell 创建符号链接 这directory据我所知 包没有提供一种方法来做到这一点 Creating a symbolic link is non portable For example the creation sym
  • 当记录处理时间超过“max.poll.interval.ms”时,在消费过程中记录/消息会发生什么?

    我的消费者设置如下 auto offset reset earliest enable auto commit true default value session timeout ms 10000 default value max po
  • 如何让 nginx 和乘客在部署后自动重启

    我目前在虚拟专用服务器上部署了一个 Rails 应用程序 我使用 Capistrano Nginx 和乘客在服务器上运行我的 Rails 应用程序 由于某种原因 在完成 cap 部署 更新后 我永远无法在网站上显示更新的代码 部署进行得很好
  • 使用 Zeep 解析 WSDL

    我想用 Zeep 解析 WSDL 文件并退出 所有操作 为每个操作请求 xml 消息 有解析 wsdl 的例子吗 我想我应该使用 zeep wsdl 和 parse service 方法 A updated import operator
  • JPA Criteria API:用于可选关系的 LEFT JOIN

    我基本上是第一次使用 Criteria API 这是关于抽象通用构建器的查询 public TypedQuery
  • 如何在 Akka.NET 中使用 TestKit

    我正在尝试测试我的 Akka NET Actor 但在使用 TestKit 和理解它的工作原理时遇到了一些问题 由于 Akka NET 中还没有关于单元测试的官方文档 我已经探索了 Akka NET 存储库中的示例代码 但那里使用的示例对我
  • Logstash 错误 Java::JavaLang::NoClassDefFoundError 无法解决

    我是elasticsearch ES 和logstash 的新手 我已经使用它成功设置了elasticsearch和kibanalink https www youtube com watch v hVgrXi 9L6Y 之后我尝试使用lo