2015-05-20

8) História do Big Data, Geração 1 e Geração 2

#bigdata #hadoop #spark

Entenda-se “Big Data” como a tecnologia de computação que baseia-se em sistema de arquivos distribuído, e que usa arquitetura de software baseado em Map Reduce. O resumo da história do Big Data assim definido é descrito a seguir. Em junho de 2003 houve uma demonstração do nutch (http://nutch.apache.org/), que é um software open source para busca na web, escrito por Doug Cutting e Mike Cafarella. Em 2004 a Google publicou um white paper a respeito do sistema de arquivos distribuído Google File System (GFS) e da arquitetura software Map Reduce (http://static.googleusercontent.com/media/research.google.com/en//archive/mapreduce-osdi04.pdf). Em 2005, Yahoo patrocinou um projeto spin off do nutch – open source e hospedado pela Apache – baseado no paper da Google. Para isso contratou Doug Cutting e Mike Cafarella. O software foi chamado de Hadoop. Uma curiosidade é que o nome “Hadoop” é o som que o filho pequeno do Doug Cutting fazia para referir-se a um boneco de elefante, que é um dos símbolos de Big Data. O Hadoop, assim como o nutch é escrito em Java originalmente, mas admite ser usado com outras linguagens também. O site http://hadoop.apache.org/ disponibiliza todas as versões de Hadoop. A mais antiga é a versão 0.14.1 de setembro de 2007. O site mostra diversas versões de Hadoop, que segue em contínua evolução. Pode-se considerar Hadoop como a primeira geração de Big Data. Em 2009 Matei Zaharia iniciou o projeto Spark na universidade UC Berkeley, que pode ser considerado como a segunda geração de Big Data. No site http://spark.apache.org/ são disponibilizadas versões de Spark desde 2013. Em 2014 foi publicada uma demonstração em que o Spark bateu de longe o desempenho do Hadoop (http://www.datanami.com/2014/10/10/spark-smashes-mapreduce-big-data-benchmark/).

Spark é escrito na linguagem Scala, que foi desenvolvida inicialmente por Martin Odersky, na École Polytechnique Fédérale de Lausanne (EPFL), Suiça, em 2001. A linguagem Scala foi projetada para ser compatível em código compilado com a máquina virtual java. O código fonte *.scala é compilado com scalac, e gera bytecodes, da mesma forma que código fonte *.java compilado com javac. Todo código compilado com scalac pode ser usado numa máquina virtual java sem nem mesmo requerer que se avise ao administrador do computador que se está fazendo isso. Em outras palavras, Scala é o eterno “amigo” compatível perfeitamente com Java. Scala pode usar classes Java dentro do seu código, assim como bibliotecas Java compiladas *.jar. Com essa compatibilidade total e eterna, o Spark (compilado de Scala) pode conviver lado a lado com Hadoop (compilado de Java). Ou seja, para as empresas que instalaram algum sistema com Hadoop no passado, e que desejam expandir as funcionalidades, é possível instalar Spark na mesma máquina e ir acrescentando novas funcionalidades aos poucos, sem precisar parar com o Hadoop. Isso é muito conveniente.

Para as empresas e profissionais que estão entrando no desenvolvimento Big Data agora, recomendo que usem Spark, sem “perder tempo” com Hadoop. Spark é melhor em tudo que Hadoop. É melhor em desempenho de execução, o que é uma vantagem evidente. Mas é também melhor em desempenho de manutenção de código. O código Java do Hadoop, com base em orientação a objetos, torna-se muito “burocrático” ou “verborrágico”. Há quem diga que com Java “há muito código para encanamento, e pouco código para o algoritmo”. Em comparação, a linguagem Scala é funcional, e adapta-se muito bem para a finalidade de escrever algoritmos para Big Data. Para quem tem base em Java e orientação a objetos, o uso de linguagem funcional pode parecer um pouco complexa ao início, mas nas aulas tenho observado que os alunos aprendem rápido e em pouco tempo conseguem entender e escrever código muito bom com Scala/Spark.

Há grandes usuários de processamento digital, incluindo grandes empresas, setores governamentais e outros. Essas entidades são especialmente interessadas na existência de um saudável e vigoroso mercado a lhes suprir hardware e software, para que os sistemas digitais efetivamente possam entrar em produção. Desde 1983, Richard Stallman iniciou o projeto GNU, e ajudou muito a expandir o conceito de software open source. Muitos desconfiaram de que esse modelo pudesse prosperar. Hoje em dia, inclusive em função do uso massivo de cloud computing, o uso de software open source já ganhou enorme aceitação. Um cliente que adote uma solução de software closed source privado precisa aceitar o risco de que a empresa proprietária do software eventualmente no futuro imponha seu produto de forma desvantajosa (e.g. aumente o preço), ou que corte o suporte. O software open source não tem esse problema. Muitas empresas adotam software open source, e pagam por profissionais de suporte, o que resulta em muitas situações em soluções mais econômicas e melhores que as alternativas closed source privadas. Sendo a tecnologia de Big Data toda ela open source, todas as vantagens desse modelo de software são presentes. Para as empresas, é excelente implantar sistemas baseado em tecnologia open source, e poder contratar profissionais que sejam treinados nessa tecnologia. Quanto mais vigoroso o mercado, tanto melhor para todos.

A economia do Brasil ganha muito por uso massivo de open source em geral. Isso porque quanto mais se usa open source, mais se moderniza a sociedade sem que essa modernização implique em transferência maciça de recursos para o exterior. Big Data, pelo seu enorme potencial de processamento e implantação de sistemas modernos e eficientes, sendo open source como é, será um fator de modernização da sociedade ao mesmo tempo em que se reduz o fluxo de capitais para o exterior. As pessoas que desenvolvem software ou prestam suporte são em geral profissionais que moram no Brasil, e. portanto, reforçam a economia local. Com o dinheiro sendo mantido dentro do Brasil, cria-se um fator adicional de prosperidade para toda a nação.

Outro dinheiro que pode ser mantido dentro do Brasil é o de treinamento. Eu fiz o curso da Cloudera University de Spark Developer. O curso é excelente. Mas ressalte-se que o material é licenciado, e que cada aluno deve pagar pelo material, transferindo dinheiro para o exterior. Mas a licença não impede que o material de curso seja reinventado com um novo formato, novos exemplos e aplicações, e com isso se criar um novo curso. Quanto mais se criam cursos sobre um assunto, mais conhecimento se tem sobre o tal assunto. É sinal claro de vigor intelectual a multiplicação de numerosos cursos. Educação é o melhor investimento.


--------------------------------------------------------------------------------
Sergio Barbosa Villas-Boas (sbVB), Ph.D.
software development, Big Data, cloud, mobile, IoT, HPC, optimization
sbvillasboas@gmail.com, sbvb@poli.ufrj.br
Skype: sbvbsbvb
http://www.sbVB.com.br
https://www.linkedin.com/in/sbvbsbvb
+55-21-97699-1337



Nenhum comentário:

Postar um comentário