Hadoop es excelente para el proceso de grandes cantidades de datos y para colocar esa información en categorías más pequeñas de información que será posible consultar. Sin embargo, el tiempo de procesamiento puede ser muy largo. Al integrarse con el servidor de Couchbase, es posible consultar en vivo y reportar información mientras continúa trabajando con Hadoop para el gran conjunto de datos y para el pesado proceso del conjunto de datos. Couchbase Server usa un sistema de búsqueda MapReduce, lo que hace que a usted le facilita la migración e integración de sus sistemas de índices y búsqueda para extraer y manipular la información eficientemente.

Martin Brown, VP de publicaciones técnicas, Couchbase

Martin BrownMartin Brown, un escritor profesional con más de 15 años de experiencia, es autor y colaborador en más de 26 libros que cubren un conjunto de temas, incluido el recientemente publicado "Getting Started with CouchDB". La extensión de su especialidad incluye miles de lenguajes en desarrollo y plataformas Perl, Python, Java, JavaScript, Basic, Pascal, Modula-2, C, C++, Rebol, Gawk, Shellscript, Windows, Solaris, Linux, BeOS, Microsoft® WP, Mac OS y más. Fue editor de tecnologías LAMP para la revista LinuxWorld y colaborador regular en ServerWatch.com, LinuxPlanet, ComputerWorld y IBM developerWorks. Tiene antecedentes ricos y variados como miembro fundador de una empresa ISP líder en el Reino Unido, gestor de sistemas y consultor TI para una agencia de publicidad y un grupo de soluciones de Internet, también ha sido especialista técnico para una red ISP intercontinental, diseñador de bases de datos y programador y ha confesado ser comprador compulsivo de hardware y software para ordenadores. MC es actualmente el vicepresidente de publicacines técnicas y educación para Couchbase y es responsable por toda la documentación publicada, programas de capacitación y contenido, y por la Techzone de Couchbase.



19-11-2012

Hadoop y procesamiento de datos

Hadoop combina un número de características esenciales que, en última instancia, hacen que el proceso de grandes cantidades de datos sea exitoso al crear trozos más pequeños.

El componente principal es el sistema de archivos HDFS, que permite que la información sea distribuida a través de un clúster. La información almacenada en este formato de distribución puede ser procesada también en forma individual en cada nodo de clúster a través de un sistema llamado MapReduce. El proceso MapReduce convierte la información guardada en el sistema de archivos HDFS en trozos más pequeños, procesados y más manejables.

Ya que Hadoop trabaja en múltiples nodos, puede utilizarse para procesar grandes cantidades de información de entrada y para simplificarla en bloques de información más utilizables. El procesamiento se maneja utilizando un sistema MapReduce simple.

MapReduce es una forma de dirigir la información entrante, que puede o no estar en formato estructurado, y convertirla a una estructura que es más fácil de usar, buscar y procesar.

Por ejemplo, un uso típico es el procesamiento de información de registro de cientos de aplicaciones diferentes para que así sea posible identificar los problemas específicos, los conteos y otros eventos. Al usar el formato MapReduce, es posible comenzar a medir y buscar tendencias — traduciendo lo que de otra forma sería una cantidad muy significativa de información a un tamaño más pequeño. Cuando ve los registros de un servidor web, por ejemplo, quizá quiera ver los errores que ocurren dentro de un intervalo específico en páginas específicas. Es posible escribir una función MapReduce para identificar errores específicos en páginas individuales y luego generar esa información en la salida. Al usar este método, es posible reducir muchas líneas de información de los archivos de registro a una colección mucho más pequeña de registros que contengan solo la información sobre los errores.

Entender MapReduce

MapReduce funciona en dos fases. El proceso de mapa toma la información entrante y la correlaciona en un formato estandarizado. Para algunos tipos de información, esta correlación puede ser directa y explícita. Por ejemplo, si usted está procesando datos de entrada tales como un registro web, extraerá una única columna del texto del registro web. Para otros datos, la correlación puede ser más compleja. Al procesar información textual, como papers de investigación, quizás extraiga frases o datos más complejos.

La fase de reducción es usada para recopilar y resumir los datos juntos. De hecho, la reducción puede ocurrir de varias formas pero el proceso típico es llevar a cabo un conteo básico, suma u otras estadísticas basadas en los datos individuales de la fase de correlación.

Menciono un ejemplo simple como el conteo de palabras que se usa como muestra en MapReduce en Hadoop: la fase de correlación separa el texto en bruto para identificar palabras individuales y para genera un bloque de datos resultado cada palabra. La función de reducción toma luego estos bloques de información correlacionada y los reduce para incrementar el conteo por cada palabra única que detecte. Si tomamos un único archivo de texto de 100 palabras, el proceso de correlación generaría 100 bloques de datos pero la fase de reducción los resumiría para brindar un conteo por cada palabra única a, digamos, 56 palabras, con un conteo de la cantidad de veces que aparece cada palabra.

En el caso de los registros web, la correlación tomaría los datos de entrada, crearía un registro para cada error dentro del archivo de registro y generaría un bloque para cada error que contenga fecha, hora y página que haya causado el problema.

Con Hadoop, las fases de MapReduce se llevan a cabo en nodos individuales en los que se almacenan los bloques individuales de información fuente. Esto es lo que permite que Hadoop funcione con conjuntos de datos de información tan grandes — ya que permite que múltiples nodos funcionen de manera simultánea con los datos. Con 100 nodos, por ejemplo, puede procesar 100 archivos de registro simultáneamente y simplificar muchos gigabytes (o terabytes) de información mucho más rápido de lo que se podría lograr a través de un solo nodo.

Las limitaciones de Hadoop

Una de las limitaciones principales del producto Hadoop principal es que no hay ninguna forma de almacenar y buscar la información en la base de datos. Los datos se agregan al sistema HDFS pero se le puede pedir al sistema que devuelva una lista de todos los datos que coinciden con un conjunto de datos específicos. La principal razón de esto es que Hadoop no almacena, estructura o comprende la estructura de los datos que se almacenan dentro de HDFS. Este es el motivo de que sea necesario que el sistema MapReduce analice y procese la información en un formato más estructurado.

Sin embargo, podemos combinar el poder de procesamiento de Hadoop con una base de datos más tradicional para que así podamos buscar los datos que Hadoop ha generado a través de su propio sistema MapReduce. Hay muchas posibles soluciones disponibles, incluyendo muchas bases de datos SQL tradicionales pero podemos mantener el tema MapReduce, que es muy efectivo para grandes conjuntos de datos, si usamos Couchbase Server.

La Ilustración 1 muestra la estructura básica de los datos que se comparten entre sistemas.

Figura 1. Estructura básica de los datos que se comparten entre los sistemas
Basic structure of the data sharing between the systems

Instalar Hadoop

Si aún no ha instalado Hadoop, la manera más fácil es usar una de las instalaciones Cloudera. Para lograr la compatibilidad entre Hadoop, Sqoop y Couchbase, la mejor solución es usar la instalación CDH3 (consulte Recursos). Para hacer esto, necesitará usar Ubuntu 10.10 a 11.10. Los últimos lanzamientos de Ubuntu presentan una incompatibilidad porque ya no soportan uno de los paquetes que es necesario para la instalación de Cloudera Hadoop.

Antes de la instalación, asegúrese de haber instalado una Java™ Virtual Machine y asegúrese de haber configurado el directorio de inicio correcto de su JDK en la variable JAVA_HOME. Note que debe tener un kit de desarrollo completo de Java disponible, no solamente el Java Runtime Environment (JRE) ya que Sqoop compila el código para exportar e importar datos entre el Couchbase Server y Hadoop.

Para realizar la instalación utilizando el CDH3 en Ubuntu y sistemas similares, es necesario hacer lo siguiente

  1. Descargue el paquete de configuración CDH3. Esto agrega la configuración para que los archivos fuente de CDH3 vayan al repositorio apto.
  2. Actualice el caché del repositorio. $ apt-get update.
  3. Instale el paquete principal de Hadoop: $ apt-get install hadoop-0.20.
  4. Instale los componentes de Hadoop (consulte el Listado 1).
    Listado 1. Instalar los componentes Hadoop
    $ for comp in namenode datanode secondarynamenode jobtracker tasktracker
    do
    apt-get install hadoop-0.20-$comp
    done
  5. Edite los archivos de configuración para asegurarse de que ha configurado los componentes principales.
  6. Edite /etc/hadoop/conf/core-site.xml para leer como se muestra en el Listado 2.
    Listado 2. Archivo /etc/hadoop/conf/core-site.xml editado
    <configuration>
      <property>
        <name>fs.default.name</name>
        <value>hdfs://localhost:9000</value>
      </property>
    </configuration>

    Esto configura la ubicación hdfs predeterminada para el almacenamiento de datos.
    Edite /etc/hadoop/conf/hdfs-site.xml (consulte el Listado 3).
    Listado 3. Archivo /etc/hadoop/conf/hdfs-site.xml editado
    <configuration>
      <property>
        <name>dfs.replication</name>
        <value>1</value>
      </property>
    </configuration>

    Esto habilita la replicación de los datos almacenados.
    Edite /etc/hadoop/conf/mapred-site.xml (consulte el Listado 4).
    Listado 4. Archivo /etc/hadoop/conf/mapred-site.xml editado
    <configuration>
      <property>
        <name>mapred.job.tracker</name>
        <value>localhost:9001</value>
      </property>
    </configuration>

    Esto habilita el seguimiento de trabajos para MapReduce.
  7. Por último, edite el entorno Hadoop para que indique correctamente el directorio de su instalación JDK dentro de /usr/lib/hadoop/conf/hadoop-env.sh. Habrá un resumen comentado para la variable JAVA_HOME. Deberá desactivar los comentarios y colocarlo en su ubicación JDK. Por ejemplo: export JAVA_HOME=/usr/lib/jvm/java-1.6.0-openjdk.
  8. Ahora inicie Hadoop en su propio sistema. La forma más fácil de hacerlo es usar el script start-all.sh: $ /usr/lib/hadoop/bin/start-all.sh.

Si asumimos que todo está configurado correctamente, ahora deberíamos tener un sistema Hadoop ejecutándose.


Visión general del Couchbase Server

Couchbase Server es un sistema de base de datos en clúster basado en documentos que usa la capa de caché para brindar un acceso muy rápido a sus datos ya que almacena la mayor parte de sus datos en RAM. El sistema utiliza múltiples nodos y capas de caché con particionamiento automático a través del clúster. Esto permite una naturaleza elástica para que sea posible agrandar y reducir el clúster para aprovechar más RAM o disco de E/S para ayudar a mejorar el rendimiento.

Todos los datos que se encuentran en Couchbase Server se almacenan eventualmente en el disco pero inicialmente las escrituras y las actualizaciones operan a través de la capa del caché que es la que brinda el alto rendimiento y es la que podemos explotar cuando procesemos datos Hadoop para poder obtener información en vivo y contenidos de búsqueda.

En su forma básica, Couchbase Server permanece como un documento básico y un almacenamiento basado en key/value. Solo es posible recuperar la información del clúster siempre que usted conozca la ID del documento. En el Couchbase Server 2.0, es posible guardar documentos en formato JSON, y luego utilizar el sistema de vista para crear una vista en los documentos JSON guardados. Una vista es una combinación de MapReduce que se ejecuta sobre los documentos guardados en la base de datos. La salida de una vista es un índice que combina la estructura que usted ha definido a través de las funciones de MapReduce. La existencia del índice le otorga la habilidad de consultar los datos del documento fundamental.

Podemos utilizar esta funcionalidad para tomar los datos procesados del Hadoop, guardar esa información dentro del Couchbase Server y utilizarla como nuestra base para la consulta de dichos datos. El Couchbase Server utiliza en forma conveniente un sistema MapReduce para el procesamiento de documentos y la creación de índices. Esto otorga algún nivel de compatibilidad y consistencia con los métodos para el procesamiento de datos.

Cómo instalar el Couchbase Server

Instalar el Couchbase Server es sencillo. Descargue el Couchbase Server 2.0 release del sitio web para la plataforma que usted posea (consulte Recursos) e instale el paquete utilizando dpkg o RPM (según su plataforma).

Luego de la instalación, el Couchbase Server se iniciará de forma automática. Para realizar la configuración, abra un navegador web y defínalo para el localhost:8091 en su máquina (o acceda de forma remota utilizando la dirección IP de la máquina).

Siga las instrucciones para la configuración que se encuentran en la pantalla. Es posible hacer uso de la mayoría de las configuraciones predeterminadas del modo en el que se muestran durante la instalación, pero las configuraciones más importantes son la ubicación de los archivos de datos escritos en la base de datos y la cantidad de RAM que se asigna al Couchbase Server.


Cómo hacer que el Couchbase Server dialogue con el conector Hadoop

Couchbase Server usa el conector Sqoop para comunicar su clúster Hadoop. Sqoop brinda una conexión para transferir un gran volumen de datos entre Hadoop y Couchbase Server.

Técnicamente, Sqoop es una aplicación diseñada para convertir información entre bases de datos estructuradas y Hadoop. El nombre Sqoop, es de hecho un derivado de SQL y Hadoop.

Cómo instalar Sqoop

Si usted se encuentra utilizando la instalación CDH3, es posible instalar Sqoop utilizando su gestor de paquete. $ sudo apt-get install sqoop.

Esto instalará Sqoop en /usr/lib/sqoop.

Nota: Un error reciente en el Sqoop indica que algunas veces tratará de transferir conjuntos de datos erróneos. El arreglo es parte de la versión 1.4.2 de Sqoop. Si tiene problemas, pruebe la versión V1.4.2 o alguna anterior.

Cómo instalar el conector Couchbase Hadoop

El conector Couchbase Hadoop es una colección de archivos Java jar que soportan la conectividad entre Sqoop y Couchbase. Descargue el conector Hadoop del sitio web Couchbase (consultar Recursos). El archivo se encuentra empaquetado como archivo zip. Abra el zip y luego ejecute el install.sh script que se encuentra dentro y que proporciona la ubicación del sistema Sqoop. Por ejemplo: $ sudo bash install.sh /usr/lib/sqoop.

Eso instala todas las bibliotecas y los archivos de configuración necesarios. Ahora podemos comenzar el intercambio de información entre los dos sistemas.

Cómo importar datos del Couchbase Server a Hadoop

A pesar de que no es el tema que trataremos aquí, es bueno notar que podemos exportar datos desde el Couchbase Server dentro de Hadoop. Esto podría ser de utilidad en el caso de que usted haya cargado una gran cantidad de datos en el Couchbase Server y desee aprovechar Hadoop para procesarlos y simplificarlos. Para hacer esto, es posible cargar todo el conjunto de datos desde el Couchbase Server en un archivo Hadoop dentro de HDFS, utilizando: $ sqoop import --connect http://192.168.0.71:8091/pools --table cbdata.

La URL que proporcionamos aquí es la ubicación de la agrupación de almacenamiento intermedio de Couchbase Server. La tabla que aquí se especifica es, de hecho, el nombre del directorio dentro de HDFS donde se guardarán los datos.

Los datos en sí mismos se almacenan como información key/value volcada desde Couchbase Server. En el Couchbase Server 2.0, esto indica que los datos están escritos utilizando la ID única del documento y contienen el valor JSON del registro.

Cómo escribir datos JSON en Hadoop MapReduce

Para el intercambio de información entre Hadoop y el Couchbase Server, necesitamos manejar un lenguaje universal, en este caso JSON (consulte el Listado 5).

Listado 5. Cómo realizar la salida de JSON dentro de Hadoop MapReduce
package org.mcslp;

import java.io.IOException;
import java.util.*;

import org.apache.hadoop.fs.Path;
import org.apache.hadoop.conf.*;
import org.apache.hadoop.io.*;
import org.apache.hadoop.mapred.*;
import org.apache.hadoop.util.*;
import com.google.gson.*;

public class WordCount {

    public static class Map extends MapReduceBase implements Mapper<LongWritable, 
Text, Text, IntWritable> {
        private final static IntWritable one = new IntWritable(1);
        private Text word = new Text();

        public void map(LongWritable key, Text value, OutputCollector<Text, 
IntWritable> output, Reporter reporter) throws IOException {
            String line = value.toString();
            StringTokenizer tokenizer = new StringTokenizer(line);
            while (tokenizer.hasMoreTokens()) {
                word.set(tokenizer.nextToken());
                output.collect(word, one);
            }
        }
    }

    public static class Reduce extends MapReduceBase implements Reducer<Text, 
IntWritable, Text, Text> {

        class wordRecord {
            private String word;
            private int count;
            wordRecord() {
            }
        }

        public void reduce(Text key,
                           Iterator<IntWritable> values,
                           OutputCollector<Text, Text> output,
                           Reporter reporter) throws IOException {
            int sum = 0;
            while (values.hasNext()) {
                sum += values.next().get();
            }

            wordRecord word = new wordRecord();
            word.word = key.toString();;
            word.count = sum;

            Gson json = new Gson();
            System.out.println(json.toJson(word));
            output.collect(key, new Text(json.toJson(word)));
        }
    }

    public static void main(String[] args) throws Exception {
        JobConf conf = new JobConf(WordCount.class);
        conf.setJobName("wordcount");

        conf.setOutputKeyClass(Text.class);
        conf.setOutputValueClass(IntWritable.class);

        conf.setMapperClass(Map.class);
        conf.setReducerClass(Reduce.class);

        conf.setInputFormat(TextInputFormat.class);
        conf.setOutputFormat(TextOutputFormat.class);

        FileInputFormat.setInputPaths(conf, new Path(args[0]));
        FileOutputFormat.setOutputPath(conf, new Path(args[1]));

        JobClient.runJob(conf);
    }
}

El código es una modificación de la muestra de conteo de palabras provista en la distribución de Hadoop.

Esta versión utiliza la biblioteca de Google Gson para escribir información JSON de la fase reducida del proceso. Para su conveniencia, se usa una nueva clase (wordRecord) que Gson convierte en un registro JSON. Este último es el formato que requerimos en una base documento a documento para Couchbase Server para poder procesar y clasificar los contenidos.

Note que no definimos una clase Combiner para Hadoop. Esto va a prevenir que Hadoop intente volver a reducir la información que fallaría con el código actual porque nuestra reducción toma la palabra en un dígito simple y la envía como valor JSON. Para la fase secundaria de reducción/combinación, necesitaremos analizar la entrada de JSON o definir una nueva clase Combiner que saque la versión JSON de la información. Esto simplifica la definición levemente.

Para utilizar esto dentro de Hadoop, primero necesitará copiar la biblioteca de Google Gson en el directorio de Hadoop (/usr/lib/hadoop/lib). Luego debe reiniciar Hadoop para asegurarse de que la biblioteca haya sido identificada en forma correcta por Hadoop.

A continuación, compile su código dentro de un directorio: $ javac -classpath ${HADOOP_HOME}/hadoop-${HADOOP_VERSION}-core.jar:./google-gson-2.2.1/gson-2.2.1.jar -d wordcount_classes WordCount.java .

Ahora cree un archivo jar en su biblioteca: $ jar -cvf wordcount.jar -C wordcount_classes/.

Una vez que esto esté completo, es posible copiar cierta cantidad de archivos de texto en un directorio y luego utilizar este archivo jar para procesar los archivos de texto en el conteo de las palabras individuales, con un registro JSON que contenga la palabra y el conteo. Por ejemplo, para procesar estos datos en algún texto de Project Gutenberg: $ hadoop jar wordcount.jar org.mcslp.WordCount /user/mc/gutenberg /user/mc/gutenberg-output.

Esto generará una lista de palabras en el directorio de salida una vez que hayan sido contadas por la función MapReduce dentro de Hadoop.

Cómo exportar datos del Hadoop al Couchbase Server

Para extraer los datos desde Hadoop y dentro del Couchbase Server, necesitamos utilizar Sqoop para extraer los datos: $ sqoop export --connect http://10.2.1.55:8091/pools --table ignored --export-dir gutenberg-output.

El argumento de --table se ha ignorado en este ejemplo, pero --export-dir es el nombre del directorio donde se encuentra la información para ser exportada.


Cómo escribir MapReduce en el Couchbase Server

Dentro de Hadoop, las funciones MapReduce se escriben utilizando Java. Con Couchbase Server, la funcionalidad de MapReduce está escrita en Javascript. Ya que estos son lenguajes interpretados, usted no necesita compilar la vista y esto le permite editar y refinar la estructura MapReduce.

Para crear una vista dentro de Couchbase Server, abra la consola del administrador (en http://localhost:8091) y luego haga clic en el botón Vista. Las vistas se van coleccionando en el documento de diseño. Es posible crear múltiples vistas en un solo documento de diseño y crear múltiples documentos de diseño. Para mejorar el rendimiento global del servidor, el sistema soporta además una vista de desarrollo que puede ser editada y una vista de producción que no puede ser editada. La vista de producción no puede ser editada porque al hacerlo se invalidaría la vista del índice y esto causaría que el índice tenga que desarrollarse nuevamente.

Haga clic en el botón Create Development View y póngale un nombre a su documento de diseño y vista.

En Couchbase Server existen las mismas dos funciones: map y reduce. La función map se utiliza para los datos de entrada a la tabla (documentos JSON). La función reduce se utiliza luego para resumir y reducir dichos datos. Las funciones de reducción son opcionales y no son necesarias para el índice de funcionalidad, por lo que ignoraremos las funciones reduce para los propósitos de este artículo.

Para la función map el formato de la función se muestra en el Listado 6.

Listado 6. Formato de la función map
map(doc) { 

}

El documento de argumento es cada uno de los documentos JSON guardados. El formato para el almacenamiento del Couchbase Server es en un documento JSON y para verlo se utiliza Javascript, por lo que podemos acceder al campo llamado conteo en JSON utilizando: doc.count.

Para emitir información desde nuestra función map, usted hará uso de la función emit(). La función emit() toma dos argumentos, el primero es fundamental y se utiliza para seleccionar y consultar información, y el segundo argumento es el valor correspondiente. Por ello, podemos crear una función map que imprime la palabra y el conteo utilizando el código en el Listado 7.

Listado 7. La función map que imprime la palabra y el conteo
function (doc) {
  if (doc.word) {
  	emit(doc.word,doc.count);
  }
}

Esto sacará una fila de datos para cada documento de entrada que contenga la ID del documento (de hecho, nuestra palabra), la palabra como fundamental y el conteo de incidencias de dicha palabra como el texto de origen. Es posible ver la impresión primaria de la salida de JSON en el Listado 8.

Listado 8. La impresión primaria de la salida de JSON
{"total_rows":113,"rows":[
{"id":"acceptance","key":"acceptance","value":2},
{"id":"accompagner","key":"accompagner","value":1},
{"id":"achieve","key":"achieve","value":1},
{"id":"adulteration","key":"adulteration","value":1},
{"id":"arsenic","key":"arsenic","value":2},
{"id":"attainder","key":"attainder","value":1},
{"id":"beerpull","key":"beerpull","value":2},
{"id":"beware","key":"beware","value":5},
{"id":"breeze","key":"breeze","value":2},
{"id":"brighteyed","key":"brighteyed","value":1}
]
}

En el resultado, id es el documento de identificación, key es la clave que usted especificó en la declaración de emisión y value es el valor especificado en el documento de emisión.


Cómo obtener datos en vivo

Ya que hemos procesado la información en Hadoop, la hemos importado dentro del Couchbase Server y hemos creado una vista de esos datos dentro del Couchbase Server, podemos comenzar a consultar la información que hemos procesado y almacenado. Las vistas se acceden utilizando un REST como API o, si está utilizando uno de los servidores Couchbase SDK, a través de la función correspondiente de la vista de consulta.

Las consultas son posibles por medio de tres selecciones principales:

  • Clave individual. Por ejemplo, al mostrar la información, que concuerde con una clave específica, como 'unkind'.
  • Lista de claves Es posible brindar una matriz de valores clave y esto devolverá todos los registros donde la vista de la clave concuerde con uno de los valores proporcionados. Por ejemplo, ['unkind','kind'] devolverá los registros que concuerdan con cualquiera de las palabras.
  • Intervalo de claves. Es posible especificar una clave de inicio y de finalización.

Por ejemplo, para encontrar el conteo para una palabra específica, usted utiliza el argumento clave para la vista.

http://192.168.0.71:8092/words/_design/dev_words/_view/byword?connection_timeout=
            60000&limit=10&skip=0&key=%22breeze%22

Couchbase Server naturalmente arroja los resultados de MapReduce en ordenados al estilo UTF-8, ordenados por clave específica. Esto indica que es posible obtener un intervalo de valores al especificar el valor de inicio y final. Por ejemplo, para obtener todas las palabras entre "breeze" y "kind":

http://192.168.0.71:8092/words/_design/dev_words/_view/byword?connection_timeout=
            60000&limit=10&skip=0&startkey=%22breeze%22&endkey=%22kind%22

La consulta es simple, pero muy poderosa, en especial cuando usted se da cuenta de que es posible combinarlo con el sistema de vista flexible para generar datos en el formato que desee.


Conclusión

Hadoop proporciona una plataforma de procesamiento muy eficiente en sí misma pero no hay ningún método para extraer información útil de los datos que se procesan. Al conectar Hadoop a otro sistema, es posible utilizarlo para consultar y extraer información. Ya que Hadoop utiliza MapReduce para el procesamiento, es posible aprovechar su conocimiento de MapReduce a través del sistema MapReduce en el Couchbase Server para brindar su plataforma de consulta. Al usar este método, procesa Hadoop, exporta desde Hadoop a Couchbase Server como un documento JSON y luego usa MapReduce en Couchbase Server para realizar una búsqueda de la información procesada.

Recursos

Aprender

Obtener los productos y tecnologías

Comentar

Comentarios

developerWorks: Ingrese

Los campos obligatorios están marcados con un asterisco (*).


¿Necesita un IBM ID?
¿Olvidó su IBM ID?


¿Olvidó su Password?
Cambie su Password

Al hacer clic en Enviar, usted está de acuerdo con los términos y condiciones de developerWorks.

 


La primera vez que inicie sesión en developerWorks, se creará un perfil para usted. La información en su propio perfil (nombre, país/región y nombre de la empresa) se muestra al público y acompañará a cualquier contenido que publique, a menos que opte por la opción de ocultar el nombre de su empresa. Puede actualizar su cuenta de IBM en cualquier momento.

Toda la información enviada es segura.

Elija su nombre para mostrar



La primera vez que inicia sesión en developerWorks se crea un perfil para usted, teniendo que elegir un nombre para mostrar en el mismo. Este nombre acompañará el contenido que usted publique en developerWorks.

Por favor elija un nombre de 3 - 31 caracteres. Su nombre de usuario debe ser único en la comunidad developerWorks y debe ser distinto a su dirección de email por motivos de privacidad.

Los campos obligatorios están marcados con un asterisco (*).

(Por favor elija un nombre de 3 - 31 caracteres.)

Al hacer clic en Enviar, usted está de acuerdo con los términos y condiciones de developerWorks.

 


Toda la información enviada es segura.


static.content.url=http://www.ibm.com/developerworks/js/artrating/
SITE_ID=90
Zone=Business analytics
ArticleID=846219
ArticleTitle=Uso de Hadoop con Couchbase
publish-date=11192012