2015-07-09 5 views
1

Так как было объявлено доступ к WebHDFS Космос в FIWARE Lab защищена OAuth2, Лебедя (версия 0.8.1) не может сохраняться данные контекста Ориона в Космос HDFS:OAuth2 в Лебеде

15/07/09 08:45:21 INFO handlers.OrionRestHandler: Starting transaction (1436424291-649-0000000000) 
15/07/09 08:45:21 INFO handlers.OrionRestHandler: Received data ({ "subscriptionId" : "51c0ac9ed714fb3b37d7d5a8", "originator" : "localhost", "contextResponses" : [ {  "contextElement" : {  "attributes" : [   {   "name" : "temperature",   "type" : "centigrade",   "value" : "26.5"   }  ],  "type" : "Room",  "isPattern" : "false",  "id" : "Room1"  },  "statusCode" : {  "code" : "200",  "reasonPhrase" : "OK"  } } ]}) 
15/07/09 08:45:21 INFO handlers.OrionRestHandler: Event put in the channel (id=109760451, ttl=10) 
15/07/09 08:45:21 INFO sinks.OrionSink: Event got from the channel (id=109760451, headers={timestamp=1436424321536, content-type=application/json, transactionId=1436424291-649-0000000000, fiware-service=def_serv, fiware-servicepath=def_serv_path, ttl=10, destination=room1_room}, bodyLength=460) 
15/07/09 08:45:22 INFO sinks.OrionHDFSSink: [hdfs-sink] Persisting data at OrionHDFSSink. HDFS file (def_serv/def_serv_path/room1_room/room1_room.txt), Data ({"recvTime":"2015-07-09T06:45:21.536Z","temperature":"26.5", "temperature_md":[]}) 
15/07/09 08:45:22 ERROR sinks.OrionSink: Persistence error (The /user/frb/def_serv/def_serv_path/room1_room directory could not be created in HDFS. HttpFS response: 503 Service unavailable) 
15/07/09 08:45:22 INFO sinks.OrionSink: An event was put again in the channel (id=109760451, ttl=9) 
15/07/09 08:45:22 INFO sinks.OrionSink: Finishing transaction (1436424291-649-0000000000) 

Я понял, что токен OAuth2 должен быть настроен где-то, но как?

ответ

2

ВАЖНО: Перед выполнением любой из приведенных ниже команд создайте резервные копии своих конфигураций Cygnus, так как они будут оставаться действительными с незначительными изменениями.

К сожалению, доступные версии Cygnus не поддерживают OAuth2. До сих пор. Вам придется обновить до последней 0.8.2, что позволяет настроить маркер по этому параметру OrionHDFSSink:

<your_agent_nam>.sinks.<your_hdfs_sink_name>.oauth2_token = <token> 

Обновление до Cygnus 0.8.2 является столь же легко, как установить его из FIWARE репо:

$ (sudo) yum clean all  # just to clean the yum cache 
$ (sudo) yum list cygnus # this will show you 0.82 is available 
$ (sudo) sudo rpm -e -vv --allmatches --nodeps --noscripts --notriggers cygnus # this is needed if you have installed a version < 0.8.0 
$ (sudo) yum install cygnus # this installs 0.8.2 

Помните репо FIWARE является настройка путем редактирования /etc/yum.repos.d/fiware.repo (скорее всего, у вас уже есть):

[Fiware] 
name=FIWARE repository 
baseurl=http://repositories.testbed.fi-ware.eu/repo/rpm/x86_64/ 
gpgcheck=0 
enabled=1 

В приведенном ниже примере, мы переходим от версии 0.7.0 до последней 0.8.2:

$ sudo yum clean all 
Loaded plugins: fastestmirror, security 
Cleaning repos: ... 
Cleaning up Everything 
Cleaning up list of fastest mirrors 
$ sudo yum list cygnus 
Loaded plugins: fastestmirror, security 
Determining fastest mirrors 
* base: sunsite.rediris.es 
* epel: ftp.cica.es 
* extras: sunsite.rediris.es 
* updates: sunsite.rediris.es 
...  
Installed Packages 
cygnus.x86_64    0.7.0-g4cddd26   @Fiware 
Available Packages 
cygnus.x86_64    0.8.2-0.g7353160   Fiware 
$ sudo rpm -e -vv --allmatches --nodeps --noscripts --notriggers cygnus 
D: loading keyring from pubkeys in /var/lib/rpm/pubkeys/*.key 
D: couldn't find any keys in /var/lib/rpm/pubkeys/*.key 
D: loading keyring from rpmdb 
... 
D: closed db index  /var/lib/rpm/Name 
D: closed db index  /var/lib/rpm/Packages 
D: closed db environment /var/lib/rpm 
$ sudo yum install cygnus 
Loaded plugins: fastestmirror, security 
Loading mirror speeds from cached hostfile 
* base: sunsite.rediris.es 
* epel: ftp.cica.es 
* extras: sunsite.rediris.es 
* updates: sunsite.rediris.es 
Setting up Install Process 
Resolving Dependencies 
--> Running transaction check 
---> Package cygnus.x86_64 0:0.7.0-g4cddd26 will be updated 
---> Package cygnus.x86_64 0:0.8.2-0.g7353160 will be an update 
--> Finished Dependency Resolution 

Dependencies Resolved 

============================================================================================================================================================== 
Package       Arch        Version          Repository       Size 
============================================================================================================================================================== 
Updating: 
cygnus        x86_64        0.8.2-0.g7353160        Fiware        94 M 

Transaction Summary 
============================================================================================================================================================== 
Upgrade  1 Package(s) 

Total download size: 94 M 
Is this ok [y/N]: 
Downloading Packages: 
cygnus-0.8.2-0.g7353160.x86_64.rpm                          | 94 MB  00:03  
Running rpm_check_debug 
Running Transaction Test 
Transaction Test Succeeded 
Running Transaction 
    Updating : cygnus-0.8.2-0.g7353160.x86_64                            1/2 
[INFO] Creating cygnus user 
[INFO] Creating log directory 
Done 
    Cleanup : cygnus-0.7.0-g4cddd26.x86_64                            2/2 
[INFO] Uninstall the cygnus 
Stopping Cygnus chatrooms...      [ OK ] 
[INFO] Deleting links 
rm: no se puede borrar «/etc/cygnus/flume.conf»: No existe el fichero o el directorio 
[INFO] Removing application log files 
[INFO] Deleting the cygnus folder 
[INFO] Deleting the cygnus user 
Done 

Updated: 
    cygnus.x86_64 0:0.8.2-0.g7353160                                

Complete! 

Для того, чтобы проверить, что вы имеете право версию, вы можете сделать несколько вещей. Например, используя rpm команду:

$ rpm -qa | grep cygnus 
cygnus-0.8.2-0.g7353160.x86_64 

Или с помощью yum list:

$ (sudo) yum list cygnus 
Loaded plugins: fastestmirror, security 
Loading mirror speeds from cached hostfile 
* base: sunsite.rediris.es 
* epel: ftp.cica.es 
* extras: sunsite.rediris.es 
* updates: sunsite.rediris.es 
Installed Packages 
cygnus.x86_64    0.8.2-0.g7353160    @Fiware 

Или просто проверить параметр oauth2_token есть;)

$ cat /usr/cygnus/conf/agent.conf.template |grep oauth2_token 
cygnusagent.sinks.hdfs-sink.oauth2_token = xxxxxxxx 

ВАЖНО: резервное копирование ваших Конфигурации Cygnus, так как они будут оставаться действительными с незначительными изменениями:

  • Обратите внимание, что если вы используете версию Cygnus < 0.8.0, пакеты Java изменились. Теперь их больше нет es.tid.fiware.fiwareconnectors.cygnus.etc, но com.telefonica.iot.cygus.etc.
  • Из Cygnus 0.8.1 конфигурационный файл matching_table.conf (CSV-подобный контент) теперь называется grouping_rules.conf (JSON-подобный контент с той же семантикой, что и CSV-подобная версия).