Jesgargardon

El sitio web de Jesús García García-Doncel.

Ejercicios con Arrays en Java

Os propongo algunos ejercicios con arrays en Java para practicar lo explicado en el post anterior en el que contaba como trabajar con los arrays. Como siempre digo, existen varias soluciones posibles para resolver un mismo problema, unas más eficientes que otras. Aquí podéis ver una solución posible para cada ejercicio propuesto.

Ejercicio 1

Arrays en Java

Continuando con las notas de Java, voy a explicar como trabajar con los Arrays en Java. Un array es un grupo de varias variables del mismo tipo, que son referenciadas por el mismo nombre.

Los arrays son usados para almacenar multitud de variables en una única variable, en lugar de declarar separadamente cada una de ellas.

Las variables en un array están ordenadas. Cada una de ellas ocupa una posición indicada por el índice del array. El índice del array empieza con el valor 0 para la posición 1, el valor 1 para la posición 2 y así sucesivamente.

Accedemos a cada elemento del array utilizando el índice que indica la posición del elemento. Por ejemplo, si queremos acceder al elemento del array que ocupa la posición 5, tendríamos que referenciarlo usando el valor 4 para el índice.

Declaración de un array en Java

Curado de Datos

Ya hemos visto como en Big Data manejamos una gran cantidad de datos que se generan de manera constante a gran velocidad. Datos que además provienen de distintas fuentes, con distintas estructuras, organizadas de distintas maneras. El curado de datos es la actividad por la que organizamos todos estos datos de la misma manera, dejándolos preparados para su posterior análisis y extracción de información.

Curado de datos

Procesos ETL

Cuando nos planteamos el tratamiento de los datos, nos vemos en la necesidad de definir algún tipo de metodología que nos ayude a estructurar el trabajo y evite que nos perdamos entre tanto dato. Estos son los procesos ETL, del inglés: E: extract, T: transform y L: load.

Los nombres de las fases de este proceso ya nos dan una ligera idea de la acción a realizar en cada una de ellas. En cualquier caso, veámoslas con un poco más de detalle.

Hadoop

Hadoop es un ecosistema, es decir, un conjunto de componentes que implementan las distintas funciones necesarias para trabajar en entornos Big Data. Esta pensado para trabajar con Clusters de ordenadores de bajo coste. Y es un proyecto de la fundación Apache, por lo que cuenta con una licencia de software libre, lo que significa que cualquiera puede usarlo sin tener que pagar por ello.

Hay dos componentes fundamentales en el ecosistema Hadoop:

  • El sistema de ficheros distribuidos HDFS (Hadoop Distributed File System): Basado en la Big Table de Google que fue el primer sistema de ficheros distribuidos para trabajar con Big Data. Es el sistema de ficheros para trabajar con los ordenadores del clusters, realizando todas las funciones clásicas de un sistema de ficheros: guardar datos, localizar y acceder a ellos.
  • El sistema de procesamiento MapReduce: Es el sistema para procesar los datos en el Cluster, que también está tomado de Google, quien lo desarrollo para procesar la información de las distintas páginas web que recogía para las búsquedas.

La clave del éxito de Hadoop es que divide el almacenamiento de los datos y el trabajo de procesamiento entre los distintos ordenadores del cluster, realizando varias operaciones en paralelo, pudiendo así manejar muchos datos en menor tiempo.

Arquitectura Big Data

En posts anteriores he hablado de la aparición del Big Data y de las famosas Vs. De repente, se hizo necesario ser capaz de manejar muchísimos más datos con una afluencia muchísimo mayor. Las arquitecturas tradicionales no podían lidiar con esta nueva situación, y se desarrollaron las arquitecturas Big Data. Estas últimas enfocadas a trabajar con los datos en las nuevas condiciones.

Antes de la aparición del Big Data, con un buen servidor y un RAID de discos era suficiente para procesar y almacenar todos los datos que manejábamos. Esta arquitectura era además escalable y las necesidades de ampliación eran asumibles. Sin embargo, con la llegada del Big Data, y la gran cantidad y variedad de datos que tenemos que manejar y almacenar, las arquitecturas tradicionales basadas en un servidor resultan insuficientes. Se hace inviable procesar toda esta información en un único ordenador, y se desarrollan arquitectura Big Data basadas en Clusters de ordeanadores (un conjunto de ordenadores trabajando de manera coordinada para resolver una misma tarea).

Por tanto, en una arquitectura Big Data, vamos a trabajar con múltiples ordenadores y tendremos nuestras capacidades de computación distribuidas. Para aprovechar eficientemente estas capacidades, recurrimos a algoritmos de procesamiento paralelo que distribuyen la carga de procesamiento entre los distintos ordenadores del Cluster. Esto también nos ayudará a procesar los datos más rápidamente, que es otro de los requerimientos de una arquitectura Big Data, como por ejemplo con las queries de un buscador web.

Página 1 de 5

Funciona con WordPress & Tema de Anders Norén