#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/).
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