logo performance distributed hadoop shared-nothing

performance - logo - ¿Experiencia con Hadoop?



apache hbase download (9)

Como dijo Joe, puedes usar Hadoop sin HDFS. Sin embargo, el rendimiento depende de la capacidad del clúster para realizar cálculos cerca de donde se almacenan los datos. El uso de HDFS tiene 2 beneficios principales en mi humilde opinión 1) el cómputo se distribuye de manera más uniforme en todo el clúster (reduciendo la cantidad de comunicación entre nodos) y 2) el clúster es más resistente a fallas debido a la falta de disponibilidad de datos.

Si sus datos ya están particionados o trivialmente particionables, es posible que desee considerar el suministro de su propia función de particionado para su tarea de reducción de mapa.

¿Alguno de ustedes ha intentado Hadoop? ¿Se puede usar sin el sistema de archivos distribuido que lo acompaña, en una arquitectura de Share-nothing? ¿Eso tendría sentido?

También me interesan los resultados de rendimiento que tengas ...


Grandes respuestas teóricas arriba.

Para cambiar su sistema de archivos hadoop a local, puede cambiarlo en el archivo de configuración "core-site.xml" como se muestra a continuación para las versiones 2.do de hadoop.

<property> <name>fs.defaultFS</name> <value>file:///</value> </property>

para las versiones de hadoop 1.xx

<property> <name>fs.default.name</name> <value>file:///</value> </property>


Hadoop MapReduce puede ejecutarse ontop de cualquier cantidad de sistemas de archivos o incluso fuentes de datos más abstractas, como bases de datos. De hecho, hay un par de clases incorporadas para el soporte del sistema de archivos no HDFS, como S3 y FTP . También podría construir fácilmente su propio formato de entrada ampliando la clase básica InputFormat .

Sin embargo, usar HDFS trae ciertas ventajas. La ventaja más potente es que el planificador de tareas de MapReduce intentará ejecutar mapas y reducciones en las máquinas físicas que almacenan los registros que necesitan procesamiento. Esto brinda un aumento en el rendimiento ya que los datos se pueden cargar directamente desde el disco local en lugar de transferirse a través de la red, lo que dependiendo de la conexión puede ser de varios órdenes más lento.


La mejor forma de familiarizarse con Hadoop es descargarlo y comenzar a explorar los ejemplos de inclusión. Use una máquina / máquina virtual de Linux y su configuración será mucho más fácil que en Mac o Windows. Una vez que se sienta cómodo con las muestras y los conceptos, entonces comience a ver cómo su espacio problemático podría mapearse en el marco.

Un par de recursos que pueden serle útiles para obtener más información sobre Hadoop:

Vídeos y presentaciones de Hadoop Summit

Hadoop: The Definitive Guide: Versión de Rough Cuts : este es uno de los pocos (¿solo?) Libros disponibles en Hadoop en este momento. Diría que vale la pena el precio de la opción de descarga electrónica incluso en este punto (el libro está ~ 40% completo).

Hadoop: La guía definitiva: versión de los cortes ásperos http://oreilly.com/catalog/covers/9780596521998_cat.gif


Sí Puede usar el sistema de archivos local usando file: // mientras especifica el archivo de entrada, etc. y esto también funcionaría con pequeños conjuntos de datos. Pero el poder real de hadoop se basa en el mecanismo distribuido y compartido. Pero Hadoop se utiliza para procesar una gran cantidad de datos. Esa cantidad de datos no puede procesarse en una sola máquina local o, incluso si lo hace, llevará mucho tiempo finalizar el trabajo. Ya que su archivo de entrada está en una ubicación compartida (HDFS) ) múltiples mapeadores pueden leerlo simultáneamente y reducir el tiempo para terminar el trabajo. En pocas palabras, puede usarlo con el sistema de archivos local, pero para cumplir con los requisitos comerciales, debe usarlo con el sistema de archivos compartido.


Sí, puede usar Hadoop en un sistema de archivos local mediante el uso de URI de archivo en lugar de URI de HDF en varios lugares. Creo que muchos de los ejemplos que vienen con Hadoop hacen esto.

Esto probablemente esté bien si solo quiere saber cómo funciona Hadoop y el paradigma básico de reducción de mapas, pero necesitará múltiples máquinas y un sistema de archivos distribuido para obtener los beneficios reales de la escalabilidad inherente a la arquitectura.


Si solo te mojas los pies, comienza descargando CDH4 y ejecutándolo. Puedes instalarlo fácilmente en una máquina virtual local y ejecutarlo en "modo pseudo-distribuido", que imita de cerca cómo se ejecutaría en un clúster real.


sí, hadoop se puede usar muy bien sin HDFS. HDFS es solo un almacenamiento predeterminado para Hadoop. Puede reemplazar HDFS con cualquier otro almacenamiento como bases de datos. HadoopDB es un aumento sobre hadoop que usa bases de datos en lugar de HDFS como fuente de datos. Google it, lo obtendrás fácilmente.


Paralelo / Computación distribuida = VELOCIDAD << ¡Hadoop hace que esto sea realmente fácil y económico, ya que solo puedes usar un montón de máquinas básicas!

A lo largo de los años, la capacidad de almacenamiento en disco ha aumentado enormemente, pero las velocidades a las que lees los datos no se han mantenido. Cuantos más datos tenga en un disco, más lenta será la búsqueda.

Hadoop es una variante inteligente del enfoque de divide y vencerás para resolver problemas. Básicamente se divide el problema en pedazos más pequeños y se asignan los trozos a varias computadoras diferentes para realizar el procesamiento en paralelo para acelerar las cosas en lugar de sobrecargar una máquina. Cada máquina procesa su propio subconjunto de datos y el resultado se combina al final. Hadoop en un solo nodo no le dará la velocidad que importa.

Para ver el beneficio de hadoop, debe tener un clúster con al menos 4 a 8 máquinas básicas (según el tamaño de sus datos) en el mismo bastidor.

Ya no es necesario ser un ingeniero de sistemas en paralelo para aprovechar la informática distribuida. Solo sé hadoop con Hive y listo.