首页 文章

如何配置与Orion和Cosmos相关的Cygnus

提问于
浏览
2

我们安装了Orion,Cygnus和Cosmos,并且正在尝试使它们之间的连接正常工作:通过代理Orion消息将被转发到Cygnus,而Cygnus又将这些消息写入Cosmos数据库 .

我们知道Orion工作正常(之前已经过测试和使用过),并且已经使用测试python脚本测试了Cygnus(如https://github.com/telefonicaid/fiware-cygnus/blob/master/doc/quick_start_guide.md中所述) . 目前我们正在尝试配置Cygnus,以便它从Orion接收消息,然后将它们写入Cosmos数据库 .

1)我们如何配置Cygnus /需要设置哪些参数,以便从Orion,Cygnus到Cosmos获得最简单的工作链接?我们有一个简单的工作示例吗? (agent_1.conf是需要在Cygnus中设置的唯一配置文件吗?)

2)我们如何/通过什么方式订购Cygnus到猎户座?

3)我们如何将数据保存到Cosmos?

我们在StackOverflow上已经阅读了类似问题的相当多的答案;并且已经在Github或Fiware网站上阅读了有关上述内容的文档,但似乎无法使其工作......

非常感谢!

1 回答

  • 1

    假设您从RPM安装了Cygnus,您需要的最低配置是在 /usr/cygnus/conf/agent_1.conf 文件中为这组参数赋值(存在您可以复制的 /usr/cygnus/conf/agent.conf.template 文件):

    cygnusagent.sources = http-source
    cygnusagent.sinks = hdfs-sink
    cygnusagent.channels = hdfs-channel
    
    cygnusagent.sources.http-source.type = org.apache.flume.source.http.HTTPSource
    cygnusagent.sources.http-source.channels = hdfs-channel
    cygnusagent.sources.http-source.port = 5050
    cygnusagent.sources.http-source.handler = com.telefonica.iot.cygnus.handlers.OrionRestHandler
    cygnusagent.sources.http-source.handler.notification_target = /notify
    cygnusagent.sources.http-source.handler.default_service = def_serv
    cygnusagent.sources.http-source.handler.default_service_path = def_servpath
    cygnusagent.sources.http-source.handler.events_ttl = 10
    cygnusagent.sources.http-source.interceptors = ts gi
    cygnusagent.sources.http-source.interceptors.ts.type = timestamp
    cygnusagent.sources.http-source.interceptors.gi.type = com.telefonica.iot.cygnus.interceptors.GroupingInterceptor$Builder
    cygnusagent.sources.http-source.interceptors.gi.grouping_rules_conf_file = /usr/cygnus/conf/grouping_rules.conf
    
    cygnusagent.sinks.hdfs-sink.type = com.telefonica.iot.cygnus.sinks.OrionHDFSSink
    cygnusagent.sinks.hdfs-sink.channel = hdfs-channel
    cygnusagent.sinks.hdfs-sink.enable_grouping = false
    cygnusagent.sinks.hdfs-sink.hdfs_host = cosmos.lab.fiware.org
    cygnusagent.sinks.hdfs-sink.hdfs_port = 14000
    cygnusagent.sinks.hdfs-sink.hdfs_username = hdfs_username
    cygnusagent.sinks.hdfs-sink.hdfs_password = xxxxxxxx
    cygnusagent.sinks.hdfs-sink.oauth2_token = xxxxxxxx
    cygnusagent.sinks.hdfs-sink.file_format = json-column
    cygnusagent.sinks.hdfs-sink.hive_server_version = 2
    cygnusagent.sinks.hdfs-sink.hive_host = cosmos.lab.fiware.org
    cygnusagent.sinks.hdfs-sink.hive_port = 10000
    cygnusagent.sinks.hdfs-sink.krb5_auth = false
    
    cygnusagent.channels.hdfs-channel.type = memory
    cygnusagent.channels.hdfs-channel.capacity = 1000
    cygnusagent.channels.hdfs-channel.transactionCapacity = 100
    

    除上述内容外,您还需要:

    • 要创建此文件 /usr/cygnus/conf/grouping_rules.conf ;你可以从 /usr/cygnus/conf/grouping_rules.conf.template 复制一份 .

    • 您需要在Cosmos的全局实例中拥有一个帐户,您可以在https://cosmos.lab.fiware.org获取它 . 注册后,门户网站将打印您的凭据 . 必须在上面的文件中配置用户名和密码 .

    • 您将需要一个OAuth2令牌,您可以在https://cosmos.lab.fiware.org:13000获取它,如here所述 . 获得后,必须在上面的文件中进行配置 .

    现在,您可以将Cygnus作为标准应用程序运行:

    $ /usr/cygnus/bin/cygnus-flume-ng agent --conf /usr/cygnus/conf -f /usr/cygnus/conf/agent_1.conf -n cygnusagent -Dflume.root.logger=INFO,console
    

    如果您想将Cygnus作为服务运行,则需要额外的 /usr/cygnus/conf/cygnus_instance_1.conf (安装中还有另一个模板),其中包含以下默认内容:

    CYGNUS_USER=cygnus
    CONFIG_FOLDER=/usr/cygnus/conf
    CONFIG_FILE=/usr/cygnus/conf/agent_<id>.conf
    AGENT_NAME=cygnusagent
    LOGFILE_NAME=cygnus.log
    ADMIN_PORT=8081
    POLLING_INTERVAL=30
    

    然后,您可以像任何其他服务一样进行:

    $ service cygnus start
    

相关问题