无法将mysql数据导入弹性搜索

时间:2018-10-15 17:41:20

标签: mysql elasticsearch jdbc logstash logstash-jdbc

我正在尝试跟一个课程示例一起在FAQ中未获得任何帮助,尝试了我可以在google和此处找到的所有内容。

我不使用docker只是在本地计算机(Ubunutu 18.04)上运行此演示,弹性搜索和mysql都在运行。

当我运行“ sudo bin / logstash -f /etc/logstash/conf.d/mysql.conf --path.settings / etc / logstash”时 我收到以下错误:com.mysql.jdbc.Driver未加载。您确定在:jdbc_driver_library中包含正确的jdbc驱动程序吗? 驱动程序确实存在,并且路径正确。

当我使用sudo bin / logstash --config.test_and_exit -f /etc/logstash/conf.d/mysql.conf时 返回配置成功。

我正在使用mysql-connector-java-5.1.47 openjdk版本“ 1.8.0_181” OpenJDK运行时环境(内部版本1.8.0_181-8u181-b13-0ubuntu0.18.04.1-b13) OpenJDK 64位服务器VM(内部版本25.181-b13,混合模式)

Elasticsearch 6.4.2 Logstash-6.4.2

我的mysql.conf是

input {
    jdbc {
        jdbc_connection_string => "jdbc:mysql://localhost:3306/movielens"
        jdbc_user => "grunt"
        jdbc_password => "password"
        jdbc_driver_library => "/home/alarik/mysql-connecter-java-5.1.47/mysql-connector-java-5.1.47-bin.jar"
        jdbc_driver_class => "com.mysql.jdbc.Driver"
        statement => "SELECT * FROM movies"
    }
}

output {
    stdout { codec => json_lines }
    elasticsearch {
        "hosts" => "localhost:9200"
        "index" => "movielens-sql"
        "document_type" => "data"
    }
}

1 个答案:

答案 0 :(得分:0)

我解决了这个问题:

首先检查您的Java版本:

self.navigationItem.setHidesBackButton(true, animated: false)

如果使用的是1.8,则应使用JDBC42版本。

如果使用的是1.7,则应使用JDBC41版本。

如果您使用的是1.6,则应使用JDBC43版本。

mysql设置:

mysql-connector-java-5.1.46.jar

root@xxxxxx:/# java -version
openjdk version "1.8.0_181"