我的目标是使用Logstash将数据从S3迁移到EMR群集中的HDFS。
我的配置文件HDFStest.conf:
input {
s3 {
bucket => "aws-logs-003630752293-ap-southeast-1"
access_key_id => "${ACCESS_KEY_ID}"
secret_access_key => "${SECRET_ACCESS_KEY}"
region => "ap-southeast-1"
prefix => "Student"
sincedb_path => "/dev/null"
}
}
output {
webhdfs {
host => "172.31.34.60"
port => 50070
path => "/home/hadoop/datafromlogstash/data.csv"
user => "hadoop"
use_ssl_auth => true
ssl_cert => "/usr/share/logstash/test/exaLeap_key.pem"
ssl_key => "/usr/share/logstash/test/exaLeap_pubkey.pem"
}
}
使用以下配置文件运行Logstash:
$ logstash --path.data writedata --path.config HDFStest.conf
给我错误:
[2019-01-04T18:54:05,494][ERROR][logstash.pipeline ] Pipeline aborted due to error {:pipeline_id=>"main", :exception=>#<OpenSSL::X509::CertificateError: No message available>, :backtrace=>["org/jruby/ext/openssl/X509Cert.java:213:in `initialize'", ...
这意味着我的SSL证书或SSL密钥有问题,但我不确定具体如何。我正在使用的ssl_cert是RSA私钥,该私钥是从AWS生成的一个名为exaLeap_key的密钥,用于验证我与EMR集群的连接。 ssl_key是我使用“ $ ssh keygen -y”从私钥生成的公钥,然后将其转换为.pem格式。
我认为潜在的错误来源是:使用不正确的密钥对,密钥/证书的生成不正确或格式不正确。
任何帮助将不胜感激。