我在agent.json
中有以下内容{
"cloudwatch.emitMetrics": true,
"kinesis.endpoint": "",
"firehose.endpoint": "",
"flows": [
{
"filePattern": "/home/ec2-user/ETLdata/contracts/Delta.csv",
"kinesisStream": "ETL-rawdata-stream",
"partitionKeyOption": "RANDOM",
"dataProcessingOptions": [
{
"optionName": "CSVTOJSON",
"customFieldNames": [ "field1", "field2"],
"delimiter": ","
}
]
}
]
}
当我将指定文件添加到文件夹时,几乎没有任何反应。我只在日志中看到以下内容。为什么它根本不解析文件。有没有人有任何想法?
更新:当我将文件模式设为/tmp/delta.csv时,它可以正常工作。看起来像权限问题,但日志中没有错误。
Tailer Progress:Tailer已经解析了0条记录(0字节),转换为0 记录,跳过0条记录,并已成功发送0条记录 目的地。 2017-06-22 18:12:03.671 + 0000 (Agent.MetricsEmitter RUNNING) com.amazon.kinesis.streaming.agent.Agent [INFO]代理:进度:0 已解析的记录(0字节),以及成功发送的0条记录 目的地。正常运行时间:300020ms
答案 0 :(得分:1)
我遇到了类似的问题,我可以通过以下方式解决问题:
将要发送的数据从〜/ ec2-user / out-data移动到kinesis firehose流(一堆CSV文件)到另一个目录:
mv *.csv /tmp/out-data
编辑agent.json文件,以便代理开始在文件的开头读取 - 这是我的agent.json文件:
{
"cloudwatch.emitMetrics": true,
"firehose.endpoint": "firehose.eu-west-1.amazonaws.com",
"flows": [
{
"filePattern": "/tmp/out-data/trx_headers_2017*",
"deliveryStream": "TestDeliveryStream",
"initialPosition": "START_OF_FILE"
}
]
}
我的猜测是你的Delta.csv文件被写入,所以kinesis代理正在检查文件的结尾并找不到新的记录,如果添加"initialPosition" : "START_OF_FILE"
修复它将在开始时解析的文件。
答案 1 :(得分:0)
将数据移动到/ tmp / logs,/ var / logs将解决此问题。请勿将数据保留在/ ec2-user下。
链接到问题:https://github.com/awslabs/amazon-kinesis-agent/issues/58