apache spark - Fast Hadoop Analytics(Cloudera Impala vs Spark/Shark vs Apache Drill)
apache-spark bigdata (2)
Quiero hacer un análisis de datos "casi en tiempo real" (OLAP-like) sobre los datos en un HDFS.
Mi investigación mostró que los tres marcos mencionados reportan ganancias de rendimiento significativas en comparación con Apache Hive. ¿Alguien tiene alguna experiencia práctica con cualquiera de esos? No solo en relación con el rendimiento, sino también con respecto a la estabilidad.
Aquí hay una respuesta de "¿Cómo se compara Impala con Shark?" de Reynold Xin, el líder del esfuerzo de desarrollo de tiburones en UC Berkeley AMPLab.
La comparación entre Hive e Impala o Spark o Drill a veces me parece inapropiada. Los objetivos detrás del desarrollo de Hive y estas herramientas son diferentes. Hive nunca se desarrolló en tiempo real, en el procesamiento de memoria y está basado en MapReduce. Fue creado para el procesamiento por lotes sin conexión un poco de cosas. Se adapta mejor cuando se necesitan trabajos de larga ejecución que realizan operaciones pesadas de datos como uniones en conjuntos de datos muy grandes.
Por otro lado, estas herramientas se desarrollaron teniendo en cuenta el tiempo real-timeness
. Vaya por ellos cuando necesite consultar datos no muy grandes, que puedan caber en la memoria, en tiempo real. No estoy diciendo que no pueda ejecutar consultas en su BigData usando estas herramientas, pero estaría presionando los límites si está ejecutando consultas en tiempo real sobre los PB de datos, en mi humilde opinión.
Muy a menudo habría visto (o leído) que una empresa en particular tiene varios PB de datos y satisfacen con éxito las necesidades en tiempo real de sus clientes. Pero en realidad estas empresas no están consultando toda su información la mayor parte del tiempo. Entonces, lo importante es una planificación adecuada, when to use what
. Espero que entiendas el punto que intento.
Volviendo a su pregunta real, en mi opinión es difícil ofrecer una comparación razonable en este momento, ya que la mayoría de estos proyectos están lejos de completarse. Todavía no están listos para la producción, a menos que esté dispuesto a hacer un poco (o tal vez mucho) trabajo por su cuenta. Y, para cada uno de estos proyectos, hay ciertos objetivos que son muy específicos para ese proyecto en particular.
For example
, Impala fue desarrollado para aprovechar la infraestructura existente de Hive, para que no tenga que empezar desde cero. Utiliza los mismos metadatos que utiliza Hive. Su objetivo era ejecutar consultas en tiempo real sobre su almacén Hadoop existente. Mientras que Drill fue desarrollado para ser un proyecto not only Hadoop
. Y para proporcionarnos capacidades de consulta distribuida en múltiples plataformas de big data, incluidas MongoDB, Cassandra, Riak y Splunk. Shark es compatible con Apache Hive, lo que significa que puede consultarlo usando las mismas instrucciones HiveQL que lo haría a través de Hive. La diferencia es que Shark puede devolver resultados hasta 30 veces más rápido que las mismas consultas ejecutadas en Hive.
Impala está funcionando bien y algunos lo han estado usando, pero no estoy seguro del resto de 2. Todas estas herramientas son buenas, pero se puede hacer una comparación justa solo después de probar esto con sus datos y para su necesidades de procesamiento. Pero según mi experiencia, Impala sería la mejor apuesta en este momento. No digo que otras herramientas no sean buenas, pero aún no son lo suficientemente maduras. Pero si desea utilizarlo con su clúster Hadoop ya ejecutado (hadoop de Apache, por ejemplo), es posible que tenga que realizar un trabajo adicional ya que casi todo el mundo utiliza Impala como función CDH.
Nota: Todas estas cosas se basan únicamente en mi experiencia. Si encuentra algo incorrecto o inapropiado, hágamelo saber. Comentarios y sugerencias son bienvenidas. Y espero que esto responda algunas de sus consultas.