Summary: | Big Data analysis has been a very hot and active research during the past few years. It is getting hard to efficiently execute data analysis task with traditional data warehouse solutions. Parallel processing platforms and parallel dataflow systems running on top of them are increasingly popular. They have greatly improved the throughput of data analysis tasks. The trade-off is the consumption of morecomputation resources. Tens or hundreds of nodes run together to execute one task. However, it might still take hours or even days to complete a task. It is very important to improve resource utilization and computation efficiency. According to research conducted by Microsoft, there exists around 30% of common sub-computations in usual workloads. Computation redundancy is a waste of time and resources. Apache Pig is a parallel dataflow system runs on top of Apache Hadoop, which is a parallel processing platform. Pig/Hadoop is one of the most popular combinations used to do large scale data processing. This thesis project proposed a framework which materializes and reuses previous computation results to avoid computation redundancy on top of Pig/Hadoop. The idea came from the materialized view technique in Relational Databases. Computation outputs were selected and stored in the Hadoop File System due to their large size. The execution statistics of the outputs were stored in MySQL Cluster. The framework used a plan matcher and rewriter component to find the maximally shared common-computation with the query from MySQL Cluster, and rewrite the query with the materialized outputs. The framework was evaluated with the TPC-H Benchmark. The results showed that execution time had been significantly reduced by avoiding redundant computation. By reusing sub-computations, the query execution time was reduced by 65% on average; while it only took around 30 ˜ 45 seconds when reuse whole computations. Besides, the results showed that the overhead is only around 25% on average. === Big Data analys har vart ett attraktivt samt aktivt forskningsområde under de senaste åren. Det börjar bli svårt att effektivt exekvera dataanalytiska arbetsuppgifter med traditionella lösningar via datalager. Parallella process plattformar samt parallella dataflödes system blir allt mer populära för att bryta trenden. De har tillsammans ökat genomströmningen av analytiska uppgifter drastiskt. Detta sker dock på en kostnad av konsumtion av beräkningsresurser. Fastän allt mellan 10 och 100 noder arbetar tillsammans för att exekvera en uppgift, så kan det fortfarande ta dagar för att slutföra denna uppgift. Det är av stor vikt att förbättra denna resursförbrukning samt att öka beräkningseffektiviteten. Enligt uppgifter från Microsoft så finns det kring 30% gemensamma subkomponenter i en typisk arbetsuppgift. Detta kan leda till slöseri av både tid och resurser. Apache Pig är ett parallellt dataflödes system som körs på Apache Hadoop, som är en parallell prossecerings plattform. Pig och Hadoop är tillsammans ett av de populäraste kombinationer var det gäller storskalig data processering. Detta examensarbete föreslår en ram som tar fram och återanvänder uträkningar för att förhindra redundans med Pig/Hadoop. Denna idé kom från materialized view technique i Relaterade Databaser. Beräkningsresultat utvaldes och sparades i Hadoop File System på grund av deras stora storlek. Exekveringsstatistiken av resultaten sparades i sin tur i MySQL Cluster. Ramen använde sig utav en plan matcher och rewriter component för att hitta den minsta gemensamma nämnaren för beräkningarna med query från MySQL Cluster, varav ramen modifierar denna beroende på resultat. Ramen evaluerades med TPC-H Benchmark. Som resultat så visar det sig att exekveringstiden minskade drastiskt genom att undvika onödiga uträkningar. Genom att återanvända gemensamma beräkningar såminskade query-tiden i medel med 65%, varav det enbart tog 30 till 45 sekunder när hela beräkningen återanvändes. Resultaten visade trots allt att overhead tiden i medel enbart var 25%.
|