El proyecto comenzo como funcionalidad de Nutch pero rapidamente se convirtio en un proyecto aparte; basado en Google GFS y MapReduce. Iniciado por Doug Cutting.
Apache Hadoop es un framework para computación distribuida y persistencia distribuida el cual tiene las siguientes características:
Permite montas fácilmente y de manera fiable clusters con multitud de nodos
Implementa Map/Reduce y sistema de archivos distribuido (HDFS)
y es Open Source!!
Buenísimo pero que es MapReduce? Es un modelo de programación aplicable a problemas en los que la solución de una subparte no sea dependiente de las soluciones de las demás subpartes. Es un estilo "divide y vencerás"; se divide el problema e subproblemas independientes y se soluciona cada uno de forma independiente. El MapReduce de hadoop tiene una arquitectura maestro/esclavo.
Un único maestro (JobTracker): Responsable de la gestión de tareas asignadas a esclavos, las monitoriza y se encarga de re-ejecutarlas si han fallado.
N esclavos (TaskTracker) : Ejecutan la tarea asignada.
En principio pensado para Java, pero con Hadoop Pipes para C++ y se esta implementando Hadoop Streaming para el resto de los lenguajes.
HDFS: Hadoop Distributed File System. Es el framework encargado de simular un file system como si estuviera en un equipo pero este esta distribuido.
HDFS tiene una arquitectura maestro/esclavo, hay un maestro que tiene la responsabilidad de administrar y nodos que se guardan los archivos. Existen estrategias para recuperar el maestro, para eliminar el punto de fallo. Todos los protocolos que usa se implementan sobre TCP/IP.
Además cuenta con una serie de comandos que permiten utilizarlo:
get: Copia a local el archivo de HDFS
put: Copia desde local múltiples ficheros HDFS
strep: Cambia el factor de replicación
Comandos típicos: ls, mkdir, cp, cat, etc...
Bueno este fue un pequeño resumen sobre un gran proyecto.
IBM nos regala un libro sobre Big Data; por Big Data Nos referimos al tratamiento y análisis de enormes repositorios de datos, tan desproporcionadamente grandes que resulta imposible tratarlos con las herramientas de bases de datos y analíticas convencionales. La tendencia se encuadra en un entorno que no nos suena para nada extraño: la proliferación de páginas web, aplicaciones de imagen y vídeo, redes sociales, dispositivos móviles, apps, sensores, internet de las cosas, etc.
El libro es una introducción al tratamiento de estos datos y hace una introducción a Apache Hadoop
No les pasa que cuando escriben hql les da miedo de equivocarse en el nombre de alguna propiedad o algo que pueda hacer explotar la aplicación? Cuando escriben consultas con criterios de hibernate, no les pasa que no saben como se deben hacer ciertas cosas o tienen que mirar el manual? No les parece poco intuitiva la API de Critera de hibernate?
Si a todo contestaste que si Querydsl es para vos. Querydsl es un framework el cual permite construir consultas type-safe muy similares a Sql para multiples formas de acceder a datos JPA, JDO y SQL.
En lugar de escribir consultas en texto lo escribimos con este dsl de forma fluida y segura.
Que ventajas tiene usar Querydsl?
Nos puede ayudar la IDE a escribir nuestras consultas, porque son propiedades.
Contamos con la seguridad por tipo
Si refactorisamos nos permite refactorisar la consulta y si se rompe alguna consulta no compila.
Es más fácil escribir consultas complejas
Podemos escribir SQL o usarlo con Hibernate y también con MongoDB
Quiero compartir una pagina que explica como configurar Spring mediante ejemplos. Si bien esta basada en Spring 2, de a poco están escribiendo ejemplos de spring 3.
Estuve leyendo un articulo sobre 10 lenguajes que podrían influir en el futuro. Los lenguajes son: Dart, Ceylon, Go, F#, Opa, Fantom, Zimbu, X10, haXe, chapel.
La verdad es que a Opa, Zimbu, X10, haXe, chapel no los conozco; pero por lo que veo creo que los demás lenguajes no dejan muchas cosas nuevas. Me parece que el que falta es Scala que es un gran lenguaje la innovación es tener lo bueno de muchos lenguajes. Erlang otro que falta.
La necesidad de afianzar una industria informática nacional, escapar de la dependencia tecnológica de la infraestructura informática pública, especialmente de los sistemas de Microsoft va a permitir ahorros milmillonarios a las arcas públicas.
Según el analista Román Dórojov en principio se han previsto 4 distribuciones principales cuyo desarrollo principal será a cargo de la empresa PingWin Software. El derroche y la insostenibilidad de la dependencia tecnológica en el área informática fue denunciado por el Programa Estatal “Comunidad de Información” aprobado en octubre de 2010 y concebido para el período 2011-2020. El plan va cumpliendo plazos y el prototipo de la plataforma del software nacional (PSN), que sustituirá a Windows en los ordenadores de las Administraciones Púlicas y escuelas de enseñanza media obligatoria, ya ha sido aprobado por el Ministerio de Comunicación. Las inversiones durante los primeros dos años de funcionamiento del programa en empresas locales alcanzará los 490 millones de rublos.
Argentina y todos los países deberías seguir por el mismo camino!!
Bio4j seria como grafo bioinformatico basado en base de dato que incluye la mayor cantidad de datos de UniProt KB(SwissProt + Trembl), Gene Ontology (GO), UniRef (50,90,100), RefSeq, and NCBI taxonomy. (Manuscript in preparation). La verdad es que esto es chino básico para mi pero creo que mi hermano que es bioinformatico le va interesar.
Neo4j permite acceder a un nodo mediante una clave la cual contiene un valor. También tenemos una API para acceder a los datos y un lenguaje de consulta llamado Cypher.
Una de las características de Neo4j es que es una base transaccional y por lo tanto soporta ACID. Esto es bastante inusual para una base de datos NoSQL.
Podemos agregar a un estro proyecto Neo4j (si utilizamos maven) con la siguiente entrada en el pom:
org.neo4jneo4j1.5
Trabajar con la Api de Neo4j puede ser un trabajo duro por lo tanto Spring framework nos provee un modulo que nos permite trabajar con Neo4j de forma más fácil y elegante.
A concise and balanced mix of principles and pragmatics. I loved the tutorial-style game-like program development. This book rekindled my earliest joys of programming. Plus, JavaScript! —Brendan Eich, the man who gave us JavaScript