Análise Mahout utilizando Spark, para as entradas de 10, 25, 50, 100M utilizando 0, 1, 2, 3 e 7 slaves.

# Carrregando bibliotecas
library(dplyr)
library(ggplot2)

# Carregando dados
mahout <- read.csv("~/Projetos/AnaliseDSL/spark-mahout.csv")

# Transformando em númerico
mahout$time_in_minute <- as.numeric(gsub(",", ".", mahout$time_in_minute))
mahout$time_in_hour <- as.numeric(gsub(",", ".", mahout$time_in_hour))

# Agrupando por input size e slaves
mahout <- group_by(mahout, input_size,slaves)

# Média dos minutos por slaves
data_byMin <- summarise(mahout, mean(time_in_minute))
colnames(data_byMin) <- c("input_size","slaves","time_in_minute")
data_byMin$slaves <- as.factor(data_byMin$slaves)
data_byMin$input_size <- as.factor(data_byMin$input_size)

ggplot(data=data_byMin, aes(x=slaves, y=time_in_minute, group=input_size, colour=input_size)) +
  geom_line() + 
  geom_point() +
  labs(y='Média dos tempos em minutos', x='Número de slaves', title = "Mahout-Spark") +
  coord_cartesian(ylim = c(0, 550))  +
  theme(panel.background=element_blank())

ggplot(data=data_byMin, aes(x=slaves, y=time_in_minute, group=input_size, colour=input_size)) +
  geom_line() + 
  geom_point() +
  labs(y='Média dos tempos em minutos', x='Número de slaves', title = "Mahout-Spark") +
  coord_cartesian(ylim = c(0, 75))  +
  theme(panel.background=element_blank())

Análise DSL, para as entradas de 10, 25, 50, 100M utilizando 0, 1, 2, 3 e slaves.

# Carregando dados
dsl <- read.csv("~/Projetos/AnaliseDSL/dsl.csv")

# Transformando em númerico
dsl$time_in_minute <- as.numeric(gsub(",", ".", dsl$time_in_minute))
dsl$time_in_hour <- as.numeric(gsub(",", ".", dsl$time_in_hour))

# Agrupando por input size e slaves
dsl <- group_by(dsl, input_size,slaves)

# Em minutos 
data_byMin_dsl <- summarise(dsl, mean(time_in_minute))
colnames(data_byMin_dsl) <- c("input_size","slaves","time_in_minute")
data_byMin_dsl$slaves <- as.factor(data_byMin_dsl$slaves)
data_byMin_dsl$input_size <- as.factor(data_byMin_dsl$input_size)

# Gráfico com todas as entradas
ggplot(data=data_byMin_dsl, aes(x=slaves, y=time_in_minute, group=input_size, colour=input_size)) +
  geom_line() + 
  geom_point() + 
  labs(y='Média dos tempos em minutos', x='Número de slaves', title = "DSL") +
  coord_cartesian(ylim = c(0, 550))  +
  theme(panel.background=element_blank())

# Gráfico com as entradas 10, 25, 50M
ggplot(data=data_byMin_dsl, aes(x=slaves, y=time_in_minute, group=input_size, colour=input_size)) +
  geom_line() + 
  geom_point() + 
  labs(y='Média dos tempos em minutos', x='Número de slaves', title = "DSL") +
  coord_cartesian(ylim = c(0, 75))  +
  theme(panel.background=element_blank())

Essa análise foi criada com o intuito de comparar as execuções utilizando a DSL com a execução utilizando Mahout-Spark.

# Criando nova coluna 
mahout$execução <- "Mahout"
dsl$execução <- "DSL"

# Criando novos data frames. Um para cada número de slaves
dsl_0 <- dsl %>%
  filter(input_size == 10) %>%
  filter(slaves == 0)

mahout_0 <- mahout %>%
  filter(input_size == 10)  %>%
  filter(slaves == 0)

dsl_1 <- dsl %>%
  filter(input_size == 10) %>%
  filter(slaves == 1)

mahout_1 <- mahout %>%
  filter(input_size == 10)  %>%
  filter(slaves == 1)

dsl_2 <- dsl %>%
  filter(input_size == 10) %>%
  filter(slaves == 2)

mahout_2 <- mahout %>%
  filter(input_size == 10)  %>%
  filter(slaves == 2)

dsl_3 <- dsl %>%
  filter(input_size == 10) %>%
  filter(slaves == 3)

mahout_3 <- mahout %>%
  filter(input_size == 10)  %>%
  filter(slaves == 3)

# Teste de hipotese
testdsl <- t.test(dsl_0$time_in_minute)
testmahout <- t.test(mahout_0$time_in_minute)

# Intervalo de confiança 
ic_1 = c(testdsl$conf.int[1],testdsl$conf.int[2])
ic_2 = c(testmahout$conf.int[1],testmahout$conf.int[2])

samples <- rbind(dsl_0,mahout_0)

# Criando tabela para o gráfico 
toPlot <- summarise(group_by(samples, execução, input_size,slaves), mean = mean(time_in_minute))
toPlot$lower <- c(ic_1[1],ic_2[1])
toPlot$upper <- c(ic_1[2],ic_2[2])

# Teste de hipotese
testdsl <- t.test(dsl_1$time_in_minute)
testmahout <- t.test(mahout_1$time_in_minute)

# Intervalo de confiança 
ic_1 = c(testdsl$conf.int[1],testdsl$conf.int[2])
ic_2 = c(testmahout$conf.int[1],testmahout$conf.int[2])

samples <- rbind(dsl_1,mahout_1)

# Criando tabela para o gráfico 
toPlot_1 <- summarise(group_by(samples, execução, input_size,slaves), mean = mean(time_in_minute))
toPlot_1$lower <- c(ic_1[1],ic_2[1])
toPlot_1$upper <- c(ic_1[2],ic_2[2])

toPlot <- rbind(toPlot,toPlot_1)

# Teste de hipotese
testdsl <- t.test(dsl_2$time_in_minute)
testmahout <- t.test(mahout_2$time_in_minute)

# Intervalo de confiança 
ic_1 = c(testdsl$conf.int[1],testdsl$conf.int[2])
ic_2 = c(testmahout$conf.int[1],testmahout$conf.int[2])

samples <- rbind(dsl_2,mahout_2)

# Criando tabela para o gráfico 
toPlot_1 <- summarise(group_by(samples, execução, input_size,slaves), mean = mean(time_in_minute))
toPlot_1$lower <- c(ic_1[1],ic_2[1])
toPlot_1$upper <- c(ic_1[2],ic_2[2])

toPlot <- rbind(toPlot,toPlot_1)

testdsl <- t.test(dsl_3$time_in_minute)
testmahout <- t.test(mahout_3$time_in_minute)

# Intervalo de confiança 
ic_1 = c(testdsl$conf.int[1],testdsl$conf.int[2])
ic_2 = c(testmahout$conf.int[1],testmahout$conf.int[2])

samples <- rbind(dsl_3,mahout_3)

# Criando tabela para o gráfico 
toPlot_1 <- summarise(group_by(samples, execução, input_size,slaves), mean = mean(time_in_minute))
toPlot_1$lower <- c(ic_1[1],ic_2[1])
toPlot_1$upper <- c(ic_1[2],ic_2[2])

toPlot <- rbind(toPlot,toPlot_1)


toPlot_new_x <- filter(toPlot, execução == "DSL")
toPlot_new_x$new_x <- toPlot_new_x$slaves  + 0.1

toPlot_new <- filter(toPlot, execução == "Mahout")
toPlot_new$new_x <- toPlot_new$slaves 

toPlot <- rbind(toPlot_new,toPlot_new_x)


ggplot(toPlot, aes(x = new_x, y=mean, colour = execução )) + 
  geom_point() +
  geom_errorbar(aes(ymin=lower, ymax=upper), width=.1) +
  labs(y='Média do tempo em min', x='Número de slaves', title = "Input 10M") +
  theme(panel.background=element_blank())

# Criando novos data frames. Um para cada número de slaves
dsl_1 <- dsl %>%
  filter(input_size == 25) %>%
  filter(slaves == 1)

mahout_1 <- mahout %>%
  filter(input_size == 25)  %>%
  filter(slaves == 1)

dsl_2 <- dsl %>%
  filter(input_size == 25) %>%
  filter(slaves == 2)

mahout_2 <- mahout %>%
  filter(input_size == 25)  %>%
  filter(slaves == 2)

dsl_3 <- dsl %>%
  filter(input_size == 25) %>%
  filter(slaves == 3)

mahout_3 <- mahout %>%
  filter(input_size == 25)  %>%
  filter(slaves == 3)

# Teste de hipotese
testdsl <- t.test(dsl_1$time_in_minute)
testmahout <- t.test(mahout_1$time_in_minute)

# Intervalo de confiança 
ic_1 = c(testdsl$conf.int[1],testdsl$conf.int[2])
ic_2 = c(testmahout$conf.int[1],testmahout$conf.int[2])

samples <- rbind(dsl_1,mahout_1)

# Criando tabela para o gráfico 
toPlot <- summarise(group_by(samples, execução, input_size,slaves), mean = mean(time_in_minute))
toPlot$lower <- c(ic_1[1],ic_2[1])
toPlot$upper <- c(ic_1[2],ic_2[2])

# Teste de hipotese
testdsl <- t.test(dsl_2$time_in_minute)
testmahout <- t.test(mahout_2$time_in_minute)

# Intervalo de confiança 
ic_1 = c(testdsl$conf.int[1],testdsl$conf.int[2])
ic_2 = c(testmahout$conf.int[1],testmahout$conf.int[2])

samples <- rbind(dsl_2,mahout_2)

# Criando tabela para o gráfico 
toPlot_1 <- summarise(group_by(samples, execução, input_size,slaves), mean = mean(time_in_minute))
toPlot_1$lower <- c(ic_1[1],ic_2[1])
toPlot_1$upper <- c(ic_1[2],ic_2[2])

toPlot <- rbind(toPlot,toPlot_1)

testdsl <- t.test(dsl_3$time_in_minute)
testmahout <- t.test(mahout_3$time_in_minute)

# Intervalo de confiança 
ic_1 = c(testdsl$conf.int[1],testdsl$conf.int[2])
ic_2 = c(testmahout$conf.int[1],testmahout$conf.int[2])

samples <- rbind(dsl_3,mahout_3)

# Criando tabela para o gráfico 
toPlot_1 <- summarise(group_by(samples, execução, input_size,slaves), mean = mean(time_in_minute))
toPlot_1$lower <- c(ic_1[1],ic_2[1])
toPlot_1$upper <- c(ic_1[2],ic_2[2])

toPlot <- rbind(toPlot,toPlot_1)

toPlot_new_x <- filter(toPlot, execução == "DSL")
toPlot_new_x$new_x <- toPlot_new_x$slaves  + 0.1

toPlot_new <- filter(toPlot, execução == "Mahout")
toPlot_new$new_x <- toPlot_new$slaves 

toPlot <- rbind(toPlot_new,toPlot_new_x)

ggplot(toPlot, aes(x = new_x, y=mean, colour = execução )) + 
  geom_point() +
  geom_errorbar(aes(ymin=lower, ymax=upper), width=.1) +
  scale_x_discrete(limits=c("1","2","3")) +
  labs(y='Média do tempo em min', x='Número de slaves', title = "Input 25M") +
  theme(panel.background=element_blank())

# Criando nova coluna 
mahout$execução <- "Mahout"
dsl$execução <- "DSL"

# Criando novos data frames. Um para cada número de slaves
dsl_1 <- dsl %>%
  filter(input_size == 50) %>%
  filter(slaves == 1)

mahout_1 <- mahout %>%
  filter(input_size == 50)  %>%
  filter(slaves == 1)

dsl_2 <- dsl %>%
  filter(input_size == 50) %>%
  filter(slaves == 2)

mahout_2 <- mahout %>%
  filter(input_size == 50)  %>%
  filter(slaves == 2)

dsl_3 <- dsl %>%
  filter(input_size == 50) %>%
  filter(slaves == 3)

mahout_3 <- mahout %>%
  filter(input_size == 50)  %>%
  filter(slaves == 3)


# Teste de hipotese
testdsl <- t.test(dsl_1$time_in_minute)
testmahout <- t.test(mahout_1$time_in_minute)

# Intervalo de confiança 
ic_1 = c(testdsl$conf.int[1],testdsl$conf.int[2])
ic_2 = c(testmahout$conf.int[1],testmahout$conf.int[2])

samples <- rbind(dsl_1,mahout_1)

# Criando tabela para o gráfico 
toPlot <- summarise(group_by(samples, execução, input_size,slaves), mean = mean(time_in_minute))
toPlot$lower <- c(ic_1[1],ic_2[1])
toPlot$upper <- c(ic_1[2],ic_2[2])

# Teste de hipotese
testdsl <- t.test(dsl_2$time_in_minute)
testmahout <- t.test(mahout_2$time_in_minute)

# Intervalo de confiança 
ic_1 = c(testdsl$conf.int[1],testdsl$conf.int[2])
ic_2 = c(testmahout$conf.int[1],testmahout$conf.int[2])

samples <- rbind(dsl_2,mahout_2)

# Criando tabela para o gráfico 
toPlot_1 <- summarise(group_by(samples, execução, input_size,slaves), mean = mean(time_in_minute))
toPlot_1$lower <- c(ic_1[1],ic_2[1])
toPlot_1$upper <- c(ic_1[2],ic_2[2])

toPlot <- rbind(toPlot,toPlot_1)

testdsl <- t.test(dsl_3$time_in_minute)
testmahout <- t.test(mahout_3$time_in_minute)

# Intervalo de confiança 
ic_1 = c(testdsl$conf.int[1],testdsl$conf.int[2])
ic_2 = c(testmahout$conf.int[1],testmahout$conf.int[2])

samples <- rbind(dsl_3,mahout_3)

# Criando tabela para o gráfico 
toPlot_1 <- summarise(group_by(samples, execução, input_size,slaves), mean = mean(time_in_minute))
toPlot_1$lower <- c(ic_1[1],ic_2[1])
toPlot_1$upper <- c(ic_1[2],ic_2[2])

toPlot <- rbind(toPlot,toPlot_1)

toPlot_new_x <- filter(toPlot, execução == "DSL")
toPlot_new_x$new_x <- toPlot_new_x$slaves  + 0.1

toPlot_new <- filter(toPlot, execução == "Mahout")
toPlot_new$new_x <- toPlot_new$slaves 

toPlot <- rbind(toPlot_new,toPlot_new_x)

ggplot(toPlot, aes(x = new_x, y=mean, colour = execução )) + 
  geom_point() +
  geom_errorbar(aes(ymin=lower, ymax=upper), width=.1) +
  scale_x_discrete(limits=c("1","2","3")) +
  labs(y='Média do tempo em min', x='Número de slaves', title = "Input 50M") +
  theme(panel.background=element_blank())

# Criando nova coluna 
mahout$execução <- "Mahout"
dsl$execução <- "DSL"

# Criando novos data frames. Um para cada número de slaves
dsl_2 <- dsl %>%
  filter(input_size == 100) %>%
  filter(slaves == 2)

mahout_2 <- mahout %>%
  filter(input_size == 100)  %>%
  filter(slaves == 2)

dsl_3 <- dsl %>%
  filter(input_size == 100) %>%
  filter(slaves == 3)

mahout_3 <- mahout %>%
  filter(input_size == 100)  %>%
  filter(slaves == 3)

# Teste de hipotese
testdsl <- t.test(dsl_2$time_in_minute)
testmahout <- t.test(mahout_2$time_in_minute)

# Intervalo de confiança 
ic_1 = c(testdsl$conf.int[1],testdsl$conf.int[2])
ic_2 = c(testmahout$conf.int[1],testmahout$conf.int[2])

samples <- rbind(dsl_2,mahout_2)

# Criando tabela para o gráfico 
toPlot <- summarise(group_by(samples, execução, input_size,slaves), mean = mean(time_in_minute))
toPlot$lower <- c(ic_1[1],ic_2[1])
toPlot$upper <- c(ic_1[2],ic_2[2])

testdsl <- t.test(dsl_3$time_in_minute)
testmahout <- t.test(mahout_3$time_in_minute)

# Intervalo de confiança 
ic_1 = c(testdsl$conf.int[1],testdsl$conf.int[2])
ic_2 = c(testmahout$conf.int[1],testmahout$conf.int[2])

samples <- rbind(dsl_3,mahout_3)

# Criando tabela para o gráfico 
toPlot_1 <- summarise(group_by(samples, execução, input_size,slaves), mean = mean(time_in_minute))
toPlot_1$lower <- c(ic_1[1],ic_2[1])
toPlot_1$upper <- c(ic_1[2],ic_2[2])

toPlot <- rbind(toPlot,toPlot_1)

toPlot_new_x <- filter(toPlot, execução == "DSL")
toPlot_new_x$new_x <- toPlot_new_x$slaves  + 0.1

toPlot_new <- filter(toPlot, execução == "Mahout")
toPlot_new$new_x <- toPlot_new$slaves 

toPlot <- rbind(toPlot_new,toPlot_new_x)

ggplot(toPlot, aes(x = new_x, y=mean, colour = execução )) + 
  geom_point() +
  geom_errorbar(aes(ymin=lower, ymax=upper), width=.1) +
  scale_x_discrete(limits=c("1","2","3")) +
  labs(y='Média do tempo em min', x='Número de slaves', title = "Input 100M") +
  theme(panel.background=element_blank())