2017-07-30 64 views
0

我試圖與Apache配置輸入logstash 5鑽JDBC(https://drill.apache.org/docs/using-the-jdbc-driver/logstash輸入JDBC插件的Apache鑽

下面是logstash我輸入JDBC配置。

input { 
    jdbc { 
    jdbc_driver_library => "jdbc_jars/drill-jdbc-all-1.10.0.jar" 
    jdbc_driver_class => "org.apache.drill.jdbc.Driver" 
    jdbc_connection_string => "jdbc:drill:zk=local" 
    jdbc_user=> "dfs" 
    schedule => "* * * * *" 
    statement => "select * from `sample.json`;" 
    } 
} 

我基本上得到logstash WARN「失敗的test_connection」。因此,雖然logstash正在啓動,但數據庫連接失敗。

有什麼建議嗎?

+0

究竟是什麼問題? – Val

+0

那麼問題是logstash拋出一個錯誤 –

回答

0

我發現你的配置存在一些問題。

  1. 您需要爲Drill正在使用的zookeeper節點提供有效的IP地址和端口。您提供給logstash jdbc_connection_string => "jdbc:drill:zk=local"的行告訴logstash zookeeper正在與logstash相同的節點上運行。您需要提供的是jdbc_connection_string => "jdbc:drill:zk=zk_hostname_or_ip:zk_port"。與設置鑽取羣集的人員進行交談,以確定動物園管理員節點的主機名或IP和端口。
  2. dfs不是鑽取用戶,它是Drill存儲插件的名稱之一。如果你想運行存儲在HDFS文件查詢更改

    statement => "select * from `sample.json`;" 
    

    statement => "select * from dfs.`/path/to/sample.json`;" 
    

如果你沒有配置鑽你的配置應該是這樣的認證。

input { 
    jdbc { 
    jdbc_driver_library => "jdbc_jars/drill-jdbc-all-1.10.0.jar" 
    jdbc_driver_class => "org.apache.drill.jdbc.Driver" 
    jdbc_connection_string => "jdbc:drill:zk=zk_hostname_or_ip:zk_port" 
    schedule => "* * * * *" 
    statement => "select * from `dfs./path/to/sample.json`;" 
    } 
} 

如果您有配置爲鑽孔驗證,你知道你鑽的用戶名和密碼,你的配置應該是這樣的。

input { 
    jdbc { 
    jdbc_driver_library => "jdbc_jars/drill-jdbc-all-1.10.0.jar" 
    jdbc_driver_class => "org.apache.drill.jdbc.Driver" 
    jdbc_connection_string => "jdbc:drill:zk=zk_hostname_or_ip:zk_port" 
    schedule => "* * * * *" 
    statement => "select * from `dfs./path/to/sample.json`;" 
    jdbc_user => "myusername" 
    jdbc_password => "mypassword" 
    } 
}