lunedì 14 dicembre 2015
MongoDB Tools 3.0.7 - mongorestore bug
Mongorestore bug:
mongorestore --drop --host <HOST> -v /dump/DB_FOLDER
Command result:
Failed: restore error: komparu_product_dev.product: error restoring from dump/<dbame>/>collection-name>.bson: insertion error: EOF
FIX:
mongorestore --drop batchSize=1 --host <HOST> -v /dump/DB_FOLDER
Ubicazione:
13048 Santhià VC, Italia
lunedì 19 ottobre 2015
MongoDB v.3 Memory Problem
Utilizzando un piccolo server (magari con più processi di mongod ) è possibile che per mancanza di risorse il processo venga killato dal SO.
Nel var/log/messages si trova questa cosa devastante...
Oct 15 02:00:33 <servername> kernel: [723954.577468] Out of memory: Kill process 18100 (mongod) score 368 or sacrifice child
Nel var/log/messages si trova questa cosa devastante...
Oct 15 02:00:33 <servername> kernel: [723954.577468] Out of memory: Kill process 18100 (mongod) score 368 or sacrifice child
la soluzione è semplicemente dosare correttamente la cache del wiredTiger nel file di configurazione
nel mio caso con un server (debian 8.1 con 16Gb di Ram) con 3 mongod in esecuzione in replica secondaria il parametro è settato a 3Gb per ogni mongod.
dopo una taratura i mongod non crollano più.
Etichette:
linux,
mongodb,
performance
Ubicazione:
13048 Santhià VC, Italia
mercoledì 30 settembre 2015
Mobius sul Quadcopter 250
Altro esperimento con il quadcopter con la camera Mobius
Etichette:
quadcopter
Ubicazione:
13048 Santhià VC, Italia
venerdì 18 settembre 2015
MongoDB - Script di MapReduce con uso di scope su map dinamico
Dovendo realizzare una MapReduce per il calcolo dei valori massimi e minimi in un determinato periodo (meteorologico) mi sono scontrato col il problema di passare ad una funzione di Map dei parametri dinamici provenienti da un ciclo.
Per risolvere questo problema bisogna utilizzare un parametro di scope quando si lancia l'esecuzione della MapReduce:
es:
var KEYS = {FIELD : 'test',PERIOD : 'Day'};
dbOne.rawdata.mapReduce(map,reduceMax,{out:{inline:1}, scope : {KEYS:KEYS}}).results;
e nella map posso usarlo:
var map = function(){
if(KEYS.PERIOD == 'Day')
...
emit(somefunction, this[KEYS.FIELD]);
};
Per risolvere questo problema bisogna utilizzare un parametro di scope quando si lancia l'esecuzione della MapReduce:
es:
var KEYS = {FIELD : 'test',PERIOD : 'Day'};
dbOne.rawdata.mapReduce(map,reduceMax,{out:{inline:1}, scope : {KEYS:KEYS}}).results;
e nella map posso usarlo:
var map = function(){
if(KEYS.PERIOD == 'Day')
...
emit(somefunction, this[KEYS.FIELD]);
...
};
esempio completo:
Etichette:
javascript,
MapReduce,
meteo,
mongodb,
script
Ubicazione:
13048 Santhià VC, Italia
mercoledì 9 settembre 2015
Spring MVC 4 - elenco chiamate REST
Ottimo controller REST per visualizzare l'elenco delle chiamate disponibili nel proprio MVC (tipo il file wsdl)
Ubicazione:
13048 Santhià VC, Italia
lunedì 20 luglio 2015
Camera Mobius sul quadcopter
Etichette:
mobius,
quadcopter
Ubicazione:
13048 Santhià VC, Italia
giovedì 25 giugno 2015
Integrazione app Meteo con La Crosse Technology WS1640
Dopo un buon periodo di inattività delle rilevazioni meteo causate dal malfunzionamento della vecchia stazione meteo, Cinzia mi regala un sistema completo nuovo sotto il 150 Euro una La Crosse Technology WS1640
Dopo aver installato la stazione sul balcone arriva la parte più interessante ovvero creare una app web e collegarci in tempo reale i risultati della stazione.
L'uscita usb della stazione è connesso ad un raspberry in wifi e alimentato da rete.
La stazione utilizza il cavo usb del raspberry per alimentarsi
Per prelevare i dati dalla stazione attraverso una piccola app in java sul Raspberry PI utilizzo questa libreria comoda e senza tanti fronzoli. La app in java preleva i dati e li invia ad una web-app sul server in formato json ogni tot minuti, oltre che alla sera scaricare tutto l'archivio sul dispositivo e rispedirlo al server in modo da prevedere eventuali buchi di rete durante la giornata.
La app è sul github.
Per la parte server il sitarello è realizzato con NodeJs compreso il servizio in ascolto del posto da parte del Raspberry PI qui il sorgente.
Seconda applicazione presente sul server è un piccolo batch per la generazione dei grafici con jfreechart. Visto che i dati sono molto non è possibile renderizzare tutto in tempo reale in javascript.
Naturalmente i dati sono tutti archiviati su MongoDB.
Questo è il sorgente del batch per i grafici.
Dopo aver installato la stazione sul balcone arriva la parte più interessante ovvero creare una app web e collegarci in tempo reale i risultati della stazione.
L'uscita usb della stazione è connesso ad un raspberry in wifi e alimentato da rete.
La stazione utilizza il cavo usb del raspberry per alimentarsi
Per prelevare i dati dalla stazione attraverso una piccola app in java sul Raspberry PI utilizzo questa libreria comoda e senza tanti fronzoli. La app in java preleva i dati e li invia ad una web-app sul server in formato json ogni tot minuti, oltre che alla sera scaricare tutto l'archivio sul dispositivo e rispedirlo al server in modo da prevedere eventuali buchi di rete durante la giornata.
La app è sul github.
Per la parte server il sitarello è realizzato con NodeJs compreso il servizio in ascolto del posto da parte del Raspberry PI qui il sorgente.
Seconda applicazione presente sul server è un piccolo batch per la generazione dei grafici con jfreechart. Visto che i dati sono molto non è possibile renderizzare tutto in tempo reale in javascript.
Naturalmente i dati sono tutti archiviati su MongoDB.
Questo è il sorgente del batch per i grafici.
Ubicazione:
13048 Santhià VC, Italia
Iscriviti a:
Post (Atom)
