MapReduce e sua utilidade

Um dos grandes desafios computacionais da atualidade é a manipulação inteligente de grande quantidade de dados. Sistemas corporativos, serviços e sistemas Web, mídias sociais e entre outros, produzem um volume impressionante de dados.

A maioria desses dados são armazenados de forma não-estruturada, além de linguagens e formatos diversos, em muitos casos, incompatíveis entre si. Esses se tornaram uma valiosa fonte de informação. Um exemplo de manipulação de grande quantidade de dados é a empresa Google, que não possui um alto valor agregado somente por seu poderoso algoritmo de busca de páginas Web e seus inúmeros serviços disponíveis, mas também por manter um grande volume de dados de seus usuários.

São esses dados que, ao passarem por análises, tendem a se tornar valiosos, permitindo a criação de soluções inteligentes. Neste artigo será abordado o modelo MapReduce e sua utilização para a manipulação de grande quantidade de dados. Esse foi proposto primeiramente pela empresa citada no exemplo anterior: a Google, no ano de 2004.

O funcionamento do MapReduce

O MapReduce possui um conjunto de informações único, que é dividido em unidades e estas unidades são mapeadas paralelamente. Logo após, possuem-se as etapas de sort e shuffle: o sort ordena esses dados e o shuffle é a distribuição dos dados organizados em grupos para serem atribuídos aos nós de Redução.

Esse modelo demonstrou ser adequado para trabalhar com problemas que podem ser particionados ou fragmentados em subproblemas. As funções Map e Reduce podem ser aplicadas separadamente a um conjunto de dados. Se os dados forem suficientemente grandes, podem ainda ser divididos para serem executados em diversas funções Map ao mesmo tempo.

MapReduce processo de contagem de palavras

Figura 1

Para entendermos melhor vamos analisar a Figura 1 com um grupo de palavras a serem analisadas: Leia mais

JHipster – Um grande aliado no desenvolvimento de aplicações Java e Angular

Hoje, há uma crescente demanda de software no mercado. Cada vez mais empresas necessitam de um produto específico para seu negócio, e para empresas acima de médio porte, possuir soluções customizadas é quase que inevitável.

Do outro lado, as empresas de software buscam soluções que aumentem a produtividade do desenvolvimento, mas por muitas vezes, estas soluções acabam se tornando mais custosas do que produtivas.

Passei quase sete anos da minha carreira, trabalhando com ferramentas que prometiam produtividade, mas quando surgia a necessidade de sair do padrão da ferramenta… pronto! Toda produtividade do início do projeto com as automações de configuração e geração de CRUDs ia por água abaixo.

Em 2015, quando conheci o JHipster através de um amigo, de cara já pensei: lá vem mais uma ferramenta que engessa o código e que no final vai me trazer mais prejuízos do que benefícios. Foi aí que me enganei. Leia mais

A importância da Integração Contínua, utilizando Jenkins e SonarQube

concept of DevOps, illustrates software delivery automation through collaboration and communication between software development and information technology operations  in agile development process

Produzir software de qualidade é uma tarefa difícil, que exige um constante monitoramento para mantê-lo íntegro.

A integração contínua é uma técnica de desenvolvimento que busca diagnosticar os bugs (defeitos) e problemas de integração mais rapidamente, utilizando um repositório de código único e executando o build (construção) do software diariamente.

 

Qual o principal ganho nos projetos com a Integração Contínua?

Imagine vários desenvolvedores codificando módulos de um mesmo projeto, é natural que colisões de código possam surgir. É bem provável que, em algum momento, um desses módulos seja alterado, simultaneamente, por dois ou mais desenvolvedores ocasionando problemas

A integração contínua atua exatamente antecipando tais situações, permitindo que o time reaja imediatamente e garanta uma evolução muito mais segura do produto. Afinal, “é melhor prevenir que remediar”’. Leia mais

Saúde DB1 possibilita acompanhamento 24 Horas pelo celular

Young woman  doctor holding a tablet pc .

Utilizado em Maringá desde 2008, o sistema Saúde DB1 é referência em todo o Brasil, sendo recomendado pelo Ministério da Saúde. Aplicado em Pará de Minas este ano, o software já mostra avanços na celeridade dos serviços. Prova disso é a Unidade de Pronto Atendimento – UPA 24 horas, que desde a inauguração já trabalha utilizando o Saúde DB1 e tem diagnósticos mais precisos e ágeis.

Elias Diniz, prefeito de Pará de Minas, interessou-se no Saúde DB1 com o objetivo de qualificar e aumentar a eficiência do atendimento aos pacientes da rede pública. Hoje, Elias e o secretário municipal e interno da Saúde, Paulo Duarte, monitoram os atendimentos realizados na UPA 24 horas em forma de dados estatísticos e gráficos, mostrados pelo aplicativo de celular. Leia mais

Container, DockerFile e Docker Compose

A manutenção em ambientes de Desenvolvimento, Homologação e Produção gera grande impacto no ciclo de vida de uma aplicação.  Para mitigar os riscos neste cenário são utilizadas tecnologias com o intuito de aumentar a produtividade e facilitar a criação dos ambientes citados anteriormente. A tecnologia que melhor atendia era a Máquina Virtual, porém atualmente o conceito de Container ganhou um enorme espaço.

Que conceito seria esse? Como funciona?

Leia mais

Processo de integração contínua DB1 IT Services

O processo de integração contínua se inicia no planejamento das funcionalidades, que são cadastradas como Features na ferramenta VSTS (Visual Studio Team Services), que são elaboradas pelo Analista de Negócios da equipe, e documentadas formalmente como requisitos.

Após a análise da funcionalidade, é feita a separação da feature em Product Backlog Items (PBI), que se referem a pedaços menores e entregáveis de uma funcionalidade.

Leia mais