Volta e meia em eventos sobre Cloud Computing surge o termo Hadoop.
Já ouvi em uma palestra que o grande desafio de desenvolver aplicações para Cloud é exatamente a complexidade no uso do Hadoop.
O que gera a confusão é que o Hadoop, assim como o MapReduce, do qual ele se originou, vem sendo usado pelas empresas de Internet, que inspiraram o modelo de cloud computing, e que precisam de escala massiva para suas aplicações, como Yahoo, Google e Facebook. Mas dizer que o Hadoop é a base para todo projeto de Cloud absolutamente não é correto.
O Hadoop é usado para aplicações analíticas de dados massivos, que não é o dia a dia das empresas que usam ou pretendem usar cloud computing.
Foi criado pelo Yahoo, em 2005, e pode ser considerado uma das maiores invenções de data management desde o modelo relacional. Hoje, é um dos projetos da comunidade Apache e vem sendo adotado por empresas que precisam tratar volumes massivos de dados não estruturados. Já existe inclusive um ecossistema ao seu redor, mas ainda vai demandar algum tempo para se disseminar de forma mais ampla pelo mercado.
Neste artigo vamos debater um pouco mais o que é e o que não é o Hadoop, seu mercado e tentar visualizar algumas tendências. Quem sabe acertamos algumas?
O que é o Hadoop?
É, na prática, uma combinação de dois projetos separados: o Hadoop MapReduce (HMR), que é um framework para processamento paralelo e o Hadoop Distributed File System (HDFS).
O HMR é um spinoff do MapReduce, software que Google usa para acelerar as pesquisas endereçadas ao seu buscador. O HDFS é um sistema de arquivos distribuídos otimizados para atuar em dados não estruturados e é também baseado na tecnologia do Google, neste caso o Google File System. Existe também o Hadoop Common, conjunto de bibliotecas e utilitários que suportam os projetos Hadoop.
Na prática, para que o HMR processe os dados, eles devem estar armazenados no HDFS.
O Hadoop é um projeto Open Source, com licenciamento Apache e, portanto, permite a criação de um ecossistema de negócios baseado em distribuições específicas. E o surgimento de serviços em nuvem, como o Amazon Elastic MapReduce, permite às empresas tratarem dados massivos sem demandar aquisição de servidores físicos. Neste modelo, o usuário escreve a aplicação Hadoop e a roda em cima da nuvem da Amazon.
A base das distribuições Hadoop é a comunidade Apache. Diversas empresas vem contribuindo com código para seu desenvolvimento, como Yahoo, Facebook, Cloudera, IBM e outras. Em torno do código base, surgem as distribuições, como Cloudera e DataStax, que agregam valor com utilitários e serviços de suporte e educação no mesmo modelo das distribuições Linux. Interessante que a distribuição da DataStax, chamado de Brisk, substituiu o HDFS por um sistema de arquivos distribuídos baseados no software NoSQL Cassandra, chamado agora de CassandraFS.
Mas, em torno do Hadoop, a comunidade Apache mantém diversos projetos relacionados, como o Hbase, um banco de dados NoSQL que trabalha em cima do HDFS. Este banco de dados é usado pelo Facebook para suportar seu sistema de mensagens e os seus serviços de informações analíticas em tempo real.
Existe também o Hive, criado pelo Facebook, que é uma camada de data warehouse que roda em cima do Hadoop. Ele utiliza uma linguagem chamada Hive SQL, similar à SQL, o que facilita sua utilização pois desenvolvedores acostumados com SQL não encontram maiores dificuldades em trabalhar com o Hive SQL.
Um outro projeto, também muito interessante, é o Pig, criado pelo Yahoo. É uma plataforma que permite análises de arquivos muito grandes usando uma linguagem de alto nível chamada de Pig Latin. Olhando-se o stack de softwares do Hadoop, o Pig se situa entre o Hive e o HMR e é uma tentativa de fornecer uma linguagem de alto nível para se trabalhar com o Hadoop.
Outros projetos menos conhecidos são o Avro (sistema de serialização de dados), o Chukwa (monitoramento de sistemas distribuídos) e o Hama (para computações científicas massivas).
A IBM usa intensamente o Hadoop em diversos projetos, e o integra com outros de seus softwares como o Cognos, criando soluções para tratamento analítico de dados massivos e não estruturados, como o InfoSphere BigInsights, que agrega um conjunto de tecnologias open source como o próprio Hadoop, Nutch e Pig, com as tecnologias próprias da IBM como InfoSphere e ManyEyes. Vejam em http://www-01.ibm.com/software/data/bigdata. A IBM também desenvolveu uma variante do HDFS chamado de IBM General Parallel File System (GPFS), que pode ser visto em http://www-03.ibm.com/systems/software/gpfs/.
OK, e quem usa Hadoop?
Existem os casos emblemáticos como Facebook, Yahoo, Twitter e Netflix (na nuvem da Amazon), mas também já começamos a ver seu uso em ambientes corporativos brick-and-mortar. Recentemente uma pesquisa mostrou que pelo menos umas 20 empresas da lista da Fortune 1000 assumiram publicamente que usam Hadoop de alguma forma. A adoção do Hadoop em aplicações analíticas corporativas, como as ofertadas pela IBM, vão ajudar na sua disseminação. Só para lembrar, quando a IBM anunciou seu apoio ao Linux, em 2001, o Linux passou a ser visto sob outra ótica pelo ambiente corporativo.
Nem todo usuário de Hadoop demanda uma escala massiva de dados ao nível do Facebook ou Yahoo. Mas, empresas com razoável volume de informações não estruturadas, como bancos, varejo, empresas aéreas e outras vão encontrar no Hadoop uma boa alternativa para o tratamento analítico dos seus dados. Vejam alguns exemplos em ftp://public.dhe.ibm.com/common/ssi/ecm/en/imb14103usen/IMB14103USEN.PDF.
O Hadoop ainda está nos primeiros passos de sua evolução e disseminação pelo mercado. Mas, tenho certeza de que em poucos anos ele será bem mais conhecido e utilizado. Uma pesquisa pelo termo Hadoop no Google Trends já aponta um crescimento significativo no interesse pela tecnologia.
Na minha opinião, vale a pena investir tempo estudando a tecnologia. Um dos problemas com o Hadoop é realmente a sua complexidade de uso, demandando desenvolvedores altamente qualificados.
A sua curva de aprendizado é bastante íngreme e praticamente inexiste gente habilitada para usar o Hadoop adequadamente.
Bem, temos aí uma boa oportunidade para as universidades inserirem seu estudo e prática em seus cursos de ciência da computação. Uma sugestão para quem quer estudar Hadoop mais a fundo: acesse www.ibm.com/developerworks e pesquise pela keyword Hadoop. Você vai encontrar milhares de artigos muito interessantes.
(*) Cezar Taurion é diretor de novas tecnologias aplicadas da IBM Brasil.
Diogo Cortiz, professor da PUC-SP e doutor em Tecnologias da Inteligência e Design Digital, tem…
DJ Sampath chegou aos Estados Unidos há 30 anos com oito dólares no bolso e…
A evolução da inteligência artificial nos serviços financeiros ainda esbarra em desafios relacionados à experiência…
A Motorola Solutions anunciou a assinatura de um acordo definitivo para adquirir a D-Fend Solutions,…
Nesta terça-feira (2), a Meta anunciou a expansão global de configurações de conteúdo para contas…
por Bruno Paiuca Dentro da jornada de digitalização dos ecossistemas de segurança, a validação e…