Big Data la tendenza del momento: approccio preliminare per la configurazione dell’ ambiente di sviluppo

web developer umbriaSe devi elaborare una grandissima quantità di dati, accumulati ad altissima velocità e caratterizzati da un’ altissima varietà (pensiamo solo a quello che sta facendo il covid-19 o il traffico dati sui social) allora hai un piede nel settore ipertecnologico del momento, il BIG DATA. Volume , varietà e velocita. La regola delle tre V definisce i big data! I contenuti possono essere dati numerici o altro, misurazioni o media come video, qualsiasi tipo di content che può essere immagazzinato nella rete. Ma i Big Data quando entrano in gioco? Quale è il volume di prossimità? Quando i sistemi tradizionali entrano in crisi allora siamo di fronte alle tecnologie Big Data. Quando mysql o sql server o oracle non bastano più ed esplodono come limite di capienza allora deve entrare in gioco dalla panchina mr Big Data! Una macchina da sola non è in grado di gestire i dati. E la potenza di calcolo ed elaborazione che viene rallentata? Forse servono diverse macchine che distribuiscono il carico. Gli esseri umani generano dati a valanga, ma anche le applicazioni che memorizzano le statistiche e trasferiscono dati e anche i microdispositivi come i sensori elettronici. Internet oggi si è evoluta con l’uso di oggetti di uso quotidiano. Pensiamo alla domotica. Chi ha dato impulso allo sviluppo dei Big Data? Soprattutto l’invenzione moderna del Cloud. I social, lo sviluppo del mobile, le reti cresciute con la connettività, la fibra, tutto un contesto che aiuta a generare dati. Ok ma se non ho una grande quantità di dati come posso sperimentare i Big Data? Con il mio modesto singolo computer posso anche analizzare una piccola quantità di dati? Bè un dataset con miliardi di righe e una interrogazione fatta da parte nostra con una query produrrebbe un invecchiamento precoce. Diverso è il caso di avere venti numeri dove posso sperimentare subito se la mia operazione è giusta in funzione del risultato ottenuto in funzione dell’ unità di tempo. In questo modi sperimentiamo anche il principio di SCALABILITA’, dove le tecniche non vengono penalizzate con il crescere o il diminuire dei dati. Quindi i Big Data hanno a che fare con i database, i framework di raccolta dati, tools per l’analisi, e nuove tecnologie dedicate. I Big Data passano per una serie di processi, esattamente come un percorso di lavaggio avviato in lavatrice dove prima raccolgo gli abiti e li metto nel cestello (quindi abbiamo già acquisizione e posizionamento, immagazzinamento) , poi abbiamo una fase di preparazione, posso mettere nella macchina l’ammorbidente o la mia capuslina di detersivo , quindi integrazione e arricchimento e infine subentra il lavaggio vero e proprio, uscendo dalla metafora l’analisi. con tutte le sue fotografie sul trend dati e tendenze. Sono in circolazione due strumenti framework per supportare i Big Data che sono Hadoop e SPARK. Hadoop è uno strumento antico se vogliamo definire il periodo intorno al 2005 così. Si divide in due strati per concezione, un lato immagazzina e un altro elabora. Immagazzina in HDFS un file system distribuito su vari nodi che ha numerose funzionalità tra cui quella di preservare i dati. Per l’elaborazione usa MapReduce algoritmo, dove i dati vengono mappati , contrassegnati con delle etichette, per venire poi estrapolati. SPARK è un’ alternativa più moderna ed efficiente, è un argomento cresciuto tantissimo nell’ ultimo periodo grazie alla sua velocità di esecuzione che gli consente di cachare i dati. SPARK è espandibile a moduli ed è semplice da usare, familiare anche per i programmatori tradizionali. Inoltre ha API per diversi linguaggi e si svincola da Java come unico sistema di lavoro e quindi si propone come strumento multilinguaggio senza penalizzare le prestazioni. Per lavorare nei Big Data non devo saper programmare per forza, è un lavoro molto simile a un amministratore di database o di sitemi o di sistemi operativi. C’è anche il semplice tecnico bravo in sistemi rappresentazionali come grafici o altro. I linguaggi più usati per lavorare con SPARK sono quindi Java, Scala (origine Hadoop), R (un linguaggio appositamente nato per la statistica, nato per supportare scienziati come biologi e medici e altro) e infine Python, linguaggio estremamente sintetico e potente che assolve ai compiti in maniera incisiva. Quindi la risposta alla domanda cosa mi conviene usare in SPARK? Sicuramente Python che è la tendenza del momento richiesta dalle aziende. A questo punto fedeli alla filosofia di Umbriaway Consulting che mira a ottenere risultati concreti dalle sue lunghe ponzate filosofiche sporcandosi le mani, andiamo ad esplorare https://spark.apache.org/ . Una cosa ci colpisce subito al volo nella home, la frase: Apache Spark is a unified analytics engine for large-scale data processing. Spark nasce con una mentalità aperta. Ipotizziamo di essere meccanici e di dover aspettare un motore da una azienda, la parte elettrica da un’ altra, la carrozzeria in lavorazione in altra sede prima di assemblare tutti i componenti. Grazie a un approccio modulare, l’officina SPARK mette a disposizioni con arbitrarie implementazioni tutto ciò di cui ha bisogno. Spark che nasce nel 2010 per il pubblico, ti aviluppa nel suo sistema e ti costringe a non uscirne più, sia se vuoi lavorare sui cluster, sia se vuoi lavorare sull’ esportazione del formato dei file etc etc. Ha una community che si muove a macchia d’olio per sviluppare senza soste il progetto. Filtrare i dati è molto semplice, anche il profano con esperienza minima informatica sa come districarsi per filtrare i dati, curva di apprendimento per poter utilizzare la tecnologia non dispendiosa. Spark mette a disposizione moduli per SQL, per lo Streaming, per il Machine Learning, per i grafici. La piattaforma si integra in qualunque sistema e eredita alcune funzionalità di Hadoop, è estremamente adattabile e lavora bene con i cluster, reti di computer che distribuiscono compiti specifici. La sua capacità di cachare i dati, gestita dal Cluster Manager, ottimizza la ram e quindi consente prestazioni in velocità ottimizzate sui nodi. Le API in Python sono conosciute con il progetto PySpark che ci consentono di lavorare in SPARK usando Python. L’installazione avviene digitando il comando pip install pyspark. Pyspark si può usare in due modi o tramite console per eseguire comandi PySpark in modalità interattiva o in formato standalone (che funziona in maniera indipendente con altre unità di elaborazione), scrivendo uno script Python da lanciare con il programma spark-submit. In windows potrebbero esserci commplicazione ad esempio noi durante l’isntallazione abbiamo rilevato la necessità di upgradare la versione con il comando python -m pip install –upgrade pip alla versione pip-20.1 ; inoltre nella versione windows durante l’esecuzione di script si richiede la presenza dell’ eseguibile winutils.exe, i binari della versione Hadoop per Windows, scaricabili all’ indirizzo https://github.com/steveloughran/winutils . Qui dobbiamo estrapolare dalla libreria winutils la cartella Hadoop nella versione che preferiamo e accodare il percorso della cartella bin all’ interno di Hadoop al path di sistema (variabili di ambiente di windows). Occorre anche creare una variabile di sistema HADOOP_HOME che punti alla cartella Hadoop estratta da winutils (ma non alla cartella BIN che contiene). In pratica prendiamo il file zippato, lo scompattiamo, copiamo solo la cartella di interesse e la copiamo da qualche parte il risultato ottenuto per noi arbitrariamente è:

D:\hadoop-3.0.0

Ma adesso come faccio a impostare variabili di sistema e Path? Devo andare su Pannello di controllo > sistema e sicurezza > Sistema > Impostazioni di sistema avanzate e fare quanto detto sopra ossia addizionare al path D:\hadoop-3.0.0\bin e creare una nuova variabile di ambiente di nome HADOOP_HOME valorizzata a D:\hadoop-3.0.0 …se non si vuole tra virgolette sporcare il proprio sistema potremmo impostare una macchina virtuale come virtual box per esempio https://www.virtualbox.org/ . Le macchine virtuali occupano poche risorse e sono facilmente gestibili ma superato lo scoglio delle fobie tipiche (non l’ho mai fatto etc etc) siamo pronti per sperimentare i big data. In alternativa potremmo anche scaricarla da https://www.osboxes.org/ senza dover affrontare le proprie turbative di configurazione nei confronti di un nuovo sistema che non conosciamo. Python nei sistemi linux è già disponibile, quindi si consiglia di scaricare versioni virtual leggerissime come linux ubuntu o meglio lubuntu. Python (no sistemi linux), Pip tools e pySpark sono naturalmente da installare come abbiamo fatto sopra. A questo punto dopo aver sistemato il nostro ambiente di lavoro siamo pronti a cimentarci con i big data catapultandoci sulla console di PySpark, avventura che rimandiamo alla prossima puntata, per ora il nostro approccio preliminare ai Big Data si ferma qui!

Lascia un commento

close-alt close collapse comment ellipsis expand gallery heart lock menu next pinned previous reply search share star