Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/amazon-web-services/12.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 2.7 Kinesis代理从python流数据报告错误_Python 2.7_Amazon Web Services_Amazon Kinesis_Amazon Kinesis Firehose_Amazon Kinesis Agent - Fatal编程技术网

Python 2.7 Kinesis代理从python流数据报告错误

Python 2.7 Kinesis代理从python流数据报告错误,python-2.7,amazon-web-services,amazon-kinesis,amazon-kinesis-firehose,amazon-kinesis-agent,Python 2.7,Amazon Web Services,Amazon Kinesis,Amazon Kinesis Firehose,Amazon Kinesis Agent,我试图从python代码中创建一个简单的流数据,并将其附加到日志文件中,然后使用Kinesis Agent->Kinesis firehouse将流数据加载到红移集群 我确认python代码运行良好,创建了附加到日志文件的流数据。 我的kinesis代理已成功启动并进行了验证,并且已完成适当的配置,以从日志文件中提取数据并将其推送到firehose流 python文件是一个简单的代码,它随机记录lat/long位置。这仅用于执行消防软管流样本,因此使用样本数据: latitude = 19.99

我试图从python代码中创建一个简单的流数据,并将其附加到日志文件中,然后使用Kinesis Agent->Kinesis firehouse将流数据加载到红移集群

我确认python代码运行良好,创建了附加到日志文件的流数据。 我的kinesis代理已成功启动并进行了验证,并且已完成适当的配置,以从日志文件中提取数据并将其推送到firehose流

python文件是一个简单的代码,它随机记录lat/long位置。这仅用于执行消防软管流样本,因此使用样本数据:

latitude = 19.99
longitude = 73.78
file_n = '/tmp/random_lat_lon.log'

def generate_random_data(lat, lon, num_rows, file_name):
    with open(file_name, 'w+', 1) as output:
#        for _ in xrange(num_rows):
         while True:
            hex1 = '%012x' % random.randrange(16**12)
            flt = float(random.randint(0,100))
            dec_lat = random.random()/100
            dec_lon = random.random()/100
            output.write('%s,%.1f,%.6f,%.6f \n' % (hex1.lower(), flt, lon+dec_lon, lat+dec_lat))
            time.sleep(5)

generate_random_data(latitude, longitude, 5, file_n)
random_lat_lon.log文件中的输出:

> 83d6c9f7a0be,25.0,73.782042,19.997504
> 18b69c5c5248,25.0,73.788921,19.995153
> 6a0d182996f0,91.0,73.783399,19.998097
> 431ba9e4f38e,0.0,73.781139,19.995481
当我检查kinesis代理时,我发现它不工作,我得到以下错误跟踪:

(FileTailer[kinesis:python-stream:/tmp/random_lat_lon.log*]) com.amazon.kinesis.streaming.agent.tailing.FileTailer [ERROR] FileTailer[kinesis:python-stream:/tmp/random_lat_lon.log*]: Error when processing current input file or when tracking its status.
java.lang.IllegalStateException
        at com.google.common.base.Preconditions.checkState(Preconditions.java:158)
        at com.amazon.kinesis.streaming.agent.tailing.TrackedFileRotationAnalyzer.findCurrentOpenFileAfterTruncate(Unknown Source)
        at com.amazon.kinesis.streaming.agent.tailing.SourceFileTracker.updateCurrentFile(Unknown Source)
        at com.amazon.kinesis.streaming.agent.tailing.SourceFileTracker.refresh(Unknown Source)
        at com.amazon.kinesis.streaming.agent.tailing.FileTailer.updateRecordParser(Unknown Source)
        at com.amazon.kinesis.streaming.agent.tailing.FileTailer.processRecords(Unknown Source)
        at com.amazon.kinesis.streaming.agent.tailing.FileTailer.runOnce(Unknown Source)
        at com.amazon.kinesis.streaming.agent.tailing.FileTailer.run(Unknown Source)
        at com.google.common.util.concurrent.AbstractExecutionThreadService$1$2.run(AbstractExecutionThreadService.java:60)
        at com.google.common.util.concurrent.Callables$3.run(Callables.java:95)
        at java.lang.Thread.run(Thread.java:748)
我的kinesis-Agent.json配置如下:

{
  "cloudwatch.emitMetrics": true,
  "kinesis.endpoint": "https://kinesis.us-east-1.amazonaws.com",
  "firehose.endpoint": "",

  "flows": [
    {
      "filePattern": "/tmp/random_lat_lon.log*",
      "kinesisStream": "python-stream"
    }
  ]
}
这是我第一次使用Kinesis Firehose(使用Python)进行示例实验室体验。我错过了一些我无法理解的事情

有人能帮忙提些建议吗。如果需要任何细节,请告诉我


关于

我也面临同样的问题。看起来像是来自亚马逊运动代理的。我通过使用一个扩展名为.dummy的文件解决了这个问题,这样代理在任何给定的时间点都可以读取一个文件

Yo Johri!,这很有效。