Publication:
Graphical development interface and stream analyzer for Apache Spark

Thumbnail Image
Authors
Sharma, Arun
Embargoed Until
Advisor
Rodríguez-Martínez, Manuel
College
College of Engineering
Department
Department of Electrical and Computer Engineering
Degree Level
M.E.
Publisher
Date
2018
Abstract
Technology advances and doubles itself every two years. According to Moore’s law [1], number of transistors on an integrated circuit design, doubles every two years. With this increase, increases the processing power of the devices. But the hurdle comes in when we human beings are not able to find apt solutions to fully utilize this number-crunching power of the devices. To solve this big problem, the solution needs to be big as well. Throughout the history of computing devices, researchers and programmers worldwide have been trying to solve this issue by making computing devices work together in a networked fashion, and this has been termed as Distributed Processing. Apache TM a non-profit corporation, that develops and distributes free and open source frameworks, tools and SDKs, has been constantly trying to come up with a better solution to help achieve maximum processing speeds over a cluster of computing devices interconnected on a network. There are many widely used tools such as Apache Spark, Apache Storm, Apache Flink, Twitter’s Heron, Alluxion Open Foundation’s “Alluxion” framework. All these tools help in solving big data processing problems. Based on these tools, an analyst with prior knowledge of programming, can analyze huge database sets consisting of millions and billions of data rows. But it needs hands on knowledge of programming and most of the times very deep understanding of big data processing algorithms. In this work, we developed a graphical development interface (GDI) that is aimed to minimize the effort required to use these available tools when analyzing big data. We name the system as “Stream Analyzer”. But more than just minimizing that effort for the typical user, this system will also allow these analysis tools to be used by individuals with little, or even none, experience in software development. Stream Analyzer is a collection of tools that allows a novice user to quickly setup a stream processing environment. It is a system based on plugins/components which can be dragged dropped on to the topology design area and can be interconnected. These components serve as basis for doing the main processing work behind the scenes. No prior knowledge of programming is required as the plugins/components can be installed from the plugin management area. It is a multiuser system with ability to provide topology and project management. Furthermore, at the end of the processing end point components, user can attach a report generation plugin, provide configuration parameters and finally run the topology to actually see the live report generation in the report view area of the GDI. The core idea behind this GDI is to let any user quickly learn the tools and use them to analyze the big data present in the huge world of internet without any need to code.

La tecnología avanza y se duplica cada dos años. De acuerdo con la ley de Moore [1], el número de transistores en un diseño de circuito integrado se duplica cada dos años. Con este aumento, aumenta la potencia de procesamiento de los dispositivos. Pero el obstáculo se produce cuando los seres humanos no somos capaces de encontrar soluciones aptas para utilizar por completo este poder numérico de los dispositivos. Para resolver este gran problema, la solución también debe ser grande. A lo largo de la historia de los dispositivos informáticos, los investigadores y programadores de todo el mundo han estado tratando de resolver este problema haciendo que los dispositivos informáticos trabajen juntos en una red, y esto se ha denominado procesamiento distribuido. Apache TM, una corporación sin fines de lucro, que desarrolla y distribuye frameworks, herramientas y SDK de código abierto y gratuito, ha estado constantemente tratando de encontrar una mejor solución para ayudar a alcanzar velocidades de procesamiento máximas sobre un grupo de dispositivos informáticos interconectados en una red. Hay muchas herramientas ampliamente utilizadas como Apache Spark, Apache Storm, Apache Flink, Twitter's Heron, Alluxion Open Foundation, el marco "Alluxion". Todas estas herramientas ayudan a resolver problemas de procesamiento de big data. Con base en estas herramientas, un analista con conocimiento previo de programación puede analizar enormes conjuntos de bases de datos que consisten en millones y miles de millones de filas de datos. Pero necesita conocimientos prácticos de programación y la mayoría de las veces una comprensión muy profunda de los algoritmos de procesamiento de big data. Para aliviar el dolor de las personas que desean analizar los datos en la mano y tomar decisiones basadas en la salida sin tener una experiencia de programación, desarrollamos una interfaz gráfica de desarrollo (GDI) denominada "Stream Analyzer". Stream Analyzer es una colección de herramientas que permite a un usuario novato configurar rápidamente un entorno de procesamiento de flujo. Es un sistema basado en complementos / componentes que se puede arrastrar al área de diseño de topología y se puede interconectar. Estos componentes sirven de base para realizar el trabajo principal de procesamiento detrás de escena. No se requiere ningún conocimiento previo de programación ya que los complementos / componentes se pueden instalar desde el área de administración de complementos. Es un sistema multiusuario con capacidad para proporcionar topología y gestión de proyectos. Además, al final de los componentes del punto final de procesamiento, el usuario puede adjuntar un plugin de generación de informes, proporcionar parámetros de configuración y finalmente ejecutar la topología para ver realmente la generación de informes en vivo en el área de visualización de informes del GDI. La idea central detrás de este GDI es permitir que cualquier usuario aprenda rápidamente las herramientas y las use para analizar los grandes datos presentes en el enorme mundo de internet sin necesidad de codificar.
Keywords
Graphical Development,
Stream Analyzer,
Apache Spark
Cite
Sharma, A. (2018). Graphical development interface and stream analyzer for Apache Spark [Thesis]. Retrieved from https://hdl.handle.net/20.500.11801/1685