我们使用 cygnus 配置了上下文代理,而我们遇到的问题非常奇怪。
当我在 Context Broker 中插入一种新类型的元素时会发生这种情况,并且我们订阅了将该元素发送到 cosmos。Cygnus发送正常,并在cosmos中创建了对应的hdfs文件,但是cosmos尝试创建Hive表时出现错误。
这就是天鹅座日志所说的。
05 oct 2015 12:51:43,777 INFO [SinkRunner-PollingRunner-DefaultSinkProcessor]
(com.telefonica.iot.cygnus.backends.hdfs.HDFSBackendImpl.provisionHiveTable:225)
- Creating Hive external table=[table_name]
几个小时后,我们收到以下消息:
05 oct 2015 18:00:02,489 ERROR [SinkRunner-PollingRunner-DefaultSinkProcessor]
(com.telefonica.iot.cygnus.backends.hive.HiveBackend.doCreateTable:77)
- Runtime error (The Hive table cannot be created.
Hive query='create external table [table_name] (columns) row format serde
'org.openx.data.jsonserde.JsonSerDe' location '[hdfs_folder_location]''.
Details=org.apache.thrift.transport.TTransportException)
05 oct 2015 18:00:02,490 WARN [SinkRunner-PollingRunner-DefaultSinkProcessor]
(com.telefonica.iot.cygnus.backends.hdfs.HDFSBackendImpl.provisionHiveTable:237)
- The HiveQL external table could not be created, but Cygnus can continue working... Check your Hive/Shark installation
在这两个事件之间,所有应该添加到 hdfs 中的动作,在我们得到错误之前不会被添加。
天鹅座版本是:0.8.2
我们正在使用开放的宇宙。