¿Cuál es la ventaja técnica de LexisNexis HPCC sobre Hadoop?

@Anónimo: déjame abordar algunos elementos específicos de tu publicación:

El mantenimiento es una pérdida de tiempo. Sin pruebas unitarias, sin verificación de tiempo de compilación en las interfaces. Oh sí, no hay interfaces. Puede elegir entre una macro, un módulo o una función. Eso es.

La INTERFAZ se documenta aquí (Estructura de la INTERFAZ) en la Referencia del lenguaje, y también hay artículos de la Guía del programador que analizan su uso. Estos documentos se pueden descargar aquí: Learning ECL | Sistemas HPCC

Solo puedes usar dos idiomas. O ECL (apuñalarme en el ojo) o C incrustado en ECL.

NO es cierto, ya que la versión 4.0 se lanzó en junio de 2013, con soporte para incrustar otros idiomas, comenzando con Java, Javascript, Python y R.

Pierde su naturaleza “declarativa” cuando tiene que describir cada paso minuto a ejecutar. Por ejemplo: quiero deducir un conjunto de resultados:
datos únicos: = dedup (mydata, alguna clave).

Esto no funciona Tienes que hacer esto:
sortedData: = sort (mydata, someKey)
distData: = distribuir (sortedData, someKey)
uniqueData: dedup (distData, somekey)

1: ¿Por qué tuve que decirle que clasificara los datos? ¿Dedup no declara implícitamente que quiero que eso suceda?
2: ¿Por qué tuve que distribuir los datos? WTF ?! Es una maldita super computadora! Sí, quiero que se distribuyan los datos.
3: ¡Oh, ahora puedo deducir los datos! Gracias LexisNexis Eso es tan “declarativo”.

Este DEDUP (DEDUP | HPCC Systems) simplemente podría codificarse como:

datos únicos: = DEDUP (mydata, somekey, ALL);

La opción ALL en DEDUP especifica que se verifique la duplicidad de todos los pares de registros conmutativos posibles, en lugar de verificar solo los pares contiguos. Esto puede ser costoso en grandes conjuntos de datos, por lo que SORT se usa más comúnmente junto con DEDUP en lugar de la opción ALL.

Además, en este ejemplo de código DEDUP, DISTRIBUTE es innecesario. Simplemente debe escribirse como:

sortedData: = SORT (mydata, someKey);
uniqueData: = DEDUP (sortedData, somekey);

El único propósito de definir el SORT por separado aquí es que puede ser útil en otros lugares. Si ese no es el caso, entonces podría escribirlo así:

uniqueData: = DEDUP (SORT (mydata, someKey), somekey);

Y para utilizar correctamente DISTRIBUTE en este ejemplo, la opción LOCAL debería estar presente en operaciones posteriores, como esta:

distData: = DISTRIBUTE (myData, HASH (someKey));
sortedData: = SORT (distdata, someKey, LOCAL);
uniqueData: = DEDUP (sortedData, somekey, LOCAL);

En un clúster HPCC, los datos ya están distribuidos en todos los nodos del clúster, por lo que la función DISTRIBUIR se usa realmente para redistribuir los datos de modo que todos los registros con los mismos valores HASH terminen en el mismo nodo, lo que permite la operación local en cada nodo en lugar de la operación global en todos los nodos. En algunos casos, esto podría proporcionar un beneficio de rendimiento al eliminar la diafonía global entre los nodos.

Todas estas formas posibles de lograr la misma tarea en ECL permiten un mayor control del programador sobre cómo se realiza exactamente la DEDUP.

Es caro. Sí, hay una versión gratuita, pero te encontrarás con tantos problemas que te verás obligado a comprar una licencia y pedirle a LexisNexis que pule su turd.

La edición comunitaria es gratuita y totalmente compatible con los foros en línea (página de índice de • Sistemas HPCC). Por ejemplo, una compañía de Fortune 500 desarrolló recientemente su nuevo sistema HPCC y lo puso en producción, utilizando completamente Community Edition, simplemente descargando y leyendo los documentos, y publicando preguntas en el Foro.

Su IDE integrado es una mierda. Ni siquiera entraré en esto, porque a la mayoría de los desarrolladores les gusta usar el IDE de su elección (eclipse, VIM, emacs, etc.)

La versión Beta del “Complemento ECL para Eclipse” está disponible para descargar aquí: Eclipse IDE para sistemas HPCC – Beta

El rendimiento es incompleto. He portado el código ECL en hadoop. Hadoop superó el código ECL original con un 20% menos de hardware. No digo que Hadoop sea más rápido, solo digo que el rendimiento recae principalmente en el desarrollador (en este caso)

Al igual que con todos los idiomas / plataformas, cuanto mejor conozca la herramienta, más probabilidades tendrá de escribir un código óptimo para ella. Crear una verdadera comparación de manzanas con manzanas de los dos sistemas requeriría una experiencia igual con ambos.

Por ejemplo, en octubre de 2011, SGI anunció sus resultados para un tipo de referencia “terasort”: Comunicados de prensa: SGI establece un nuevo récord mundial Apache Hadoop Benchmark
Entonces, en noviembre de 2011, HPCC Systems duplicó su esfuerzo de “terasort” en la plataforma HPCC (mismos algoritmos, datos del mismo tamaño, misma configuración de hardware y SGI probablemente conoce a Hadoop por igual, así como HPCC Systems conoce a HPCC). Aquí está la comparación de resultados:

Rendimiento SGI: 130 segundos
Rendimiento de HPCC: 98 segundos

Código SGI: 700 líneas de Java
Código HPCC: 3 líneas de ECL

Tamaño del clúster SGI: 20 nodos
Tamaño del clúster HPCC: 4 nodos

Sin soporte. Mira sus foros. Estan vacios Casi no hay actividad en absoluto.

No puedo responder una pregunta que no se ha hecho. Lea algunas publicaciones anteriores y encontrará que las respuestas a las publicaciones del Foro siempre han sido oportunas y completas.

No hay libros Busca en Amazon. ¡Ni un maldito libro sobre ECL!

Obviamente, una oportunidad que está esperando el autor correcto. Si algún autor me solicitara asistencia para un proyecto de libro de HPCC, me complacería mucho ayudarlo.

Sin embargo, hay cursos introductorios en línea GRATUITOS disponibles para que la gente comience a codificar con ECL en: Iniciar sesión o Crear una nueva cuenta

También hay clases de capacitación en línea, remotas (WebEx) y en el sitio a precios competitivos que van mucho más allá de lo básico: Clases de capacitación

Alguna entrevista reciente

“Pero si no abrimos el código en ese momento, nos dimos cuenta de que, en cinco años, podríamos estar buscando migrar nuestros servicios a algo como Hadoop. Por lo tanto, la idea del código abierto de nuestra plataforma HPCC era seguir siendo relevante al ofrecer un producto mucho más superior que el que tiene Hadoop “.

Como alguien que acaba de comenzar un pequeño proyecto para usar HPCC (agrupando conjuntos de documentos grandes) ya que alguien parece haber roto mahout.

Desde el primer vistazo, tener un IDE es una gran ventaja, al igual que las mejoras de rendimiento en comparación con hadoop.

Actualizaré la respuesta cuando obtenga resultados más concretos, y espero poder informar sobre la facilidad de configurar un pequeño grupo de prueba cuando obtengamos los binarios, una de las ventajas de trabajar para una empresa hermana 🙂