terça-feira, 26 de julho de 2016

O que é Hadoop?

Fonte: https://www.airpair.com/hadoop/hadoop-expert-patrick-lie


Imagine que você está em uma biblioteca gigantesca e você precisa de dados que estão espalhados por seus livros. Como você faria isso? Esse era o problema das empresas: como analisar a colossal Big Data?

Voltemos ao nosso exemplo. Você poderia ler os livros de um por um, sozinho. Seria necessário muito tempo para leitura e queimar muitos neurônios para analisar tudo. Uma alternativa seria formar um grupo e dividir o trabalho entre os membros e depois cruzar os resultados que cada um obteve, o que economizaria muito tempo e aumentaria a capacidade de processamento das informações. Esse processo é chamado de MapReduce, que é a junção dos métodos Map() e Reduce().

Suponhamos que nós queremos saber qual foi a temperatura máxima em 5 cidades diferentes em um período de 30 dias. Cada um desses dias gerou uma tabela com a cidade e a temperatura correspondente, que serão distribuídas entre 30 servidores que farão análises individuais e informarão os resultados. O próximo passo (chamado de Shuffle) é organizar os dados e - através do Reduce() - finalmente serão unificados em um único resultado.

Fonte: http://blog.sqlauthority.com/2013/10/09/big-data-buzz-words-what-is-mapreduce-day-7-of-21/
Fonte: http://blog.sqlauthority.com/2013/10/09/big-data-buzz-words-what-is-mapreduce-day-7-of-21/


Mas onde ficam todos esses dados? Digamos que seu HD tem capacidade de armazenamento de 1Tb, mas você precisa de 10Tb. O que você faz? Poderia simplesmente comprar outros 9 HDs de 1Tb e distribuir seus arquivos. Mas e se quando você precisar de um deles, não conseguir encontrá-lo? Seria melhor então comprar outros 10 HDs de 1 Tb e fazer backup de todos os seus arquivos, pois se algo der errado com um HD, você pode contar com a cópia.

Esse conjunto de HDs garante maior capacidade de armazenamento, maior confiabilidade – devido à existência de cópias dos mesmos arquivos em nodes (HDs) diferentes – e maior velocidade de processamento, pois mais de um node é usado ao mesmo tempo. O Hadoop Distributed File System (HDFS) é esse conjunto de sistemas de armazenamento de dados (cluster).

Juntos, HDFS e MapReduce formam o Hadoop, framework utilizado para armazenamento e processamento de dados da Big Data que é open source, baseado em Java e gerenciado pela Apache Software Foundation. A ideia original veio de dois artigos do Google: Google File System e MapReduce: Simplified Data Processing on Large Clusters. Hadoop recebeu esse nome inspirado no elefante amarelo de brinquedo do filho de Doug Cutting, que junto com Mike Cafarella criou o serviço em 2005 enquanto ainda trabalhavam no Yahoo. Hoje, o Hadoop é utilizado por gigantes como Google, Facebook, Twitter, eBay, Microsoft, IBM e o próprio Yahoo, entre outros.



Fontes:
http://blog.sqlauthority.com/2013/10/09/big-data-buzz-words-what-is-mapreduce-day-7-of-21/
https://www-01.ibm.com/software/data/infosphere/hadoop/mapreduce/
https://en.wikipedia.org/wiki/MapReduce
https://en.wikipedia.org/wiki/Apache_Hadoop
http://www.sas.com/en_my/insights/big-data/hadoop.html
https://www.youtube.com/watch?v=9s-vSeWej1U
http://searchcloudcomputing.techtarget.com/definition/Hadoop
http://www.wired.com/2011/10/how-yahoo-spawned-hadoop/

O que é Big Data?


Imagine que você tem um diário. Nele você anota diariamente tudo o que você faz e como faz. Atividades, horários, trajetos e tudo mais fica registrado. Com o tempo, qualquer um que ler seu diário terá uma boa ideia de quem você é, como se comporta, o que faz.

Agora imagine que você guarda esse diário em uma biblioteca chamada Big Data que contém os diários de uma boa parte dos 7 bilhões de pessoas que habitam nosso planeta. Quer saber se o Tony Ramos realmente compra carne Friboi? Olhe o histórico de compras dele.

Vamos ser mais ambiciosos. Qual a porcentagem de pessoas que ao comprar goiabada também compram queijo no estado de Goiás? É pra responder questões como essa que a Big Data é utilizada. A soma das informações coletadas é analisada por empresas para entender melhor seu público e a partir daí traçar suas estratégias.

Big Data é qualquer coleção de informações grande demais para ser analisada por meios convencionais. Ela é definida por quatro características chamadas de ‘os quatro Vs’: volume, variedade, velocidade e veracidade.

  • Volume é a quantidade de informações. 
  • Velocidade é a rapidez com que os dados são processados. 
  • Variedade é a diversidade de informações e suas fontes. 
  • Veracidade diz respeito a quão relevantes e precisos os dados são.

Fonte: https://www-01.ibm.com/software/data/bigdata/images/4-Vs-of-big-data.jpg


O objetivo da Big data é gerar valor para as empresas. Através da análise dos dados é possível prever o comportamento do consumidor e do mercado, mapear focos de doenças e fazer uma previsão do tempo mais acurada, ente outras coisas.



domingo, 24 de julho de 2016

Algoritmos: O conjunto de regras que alimenta as grandes inteligências artificiais no controle de nossas vidas

 

 

Cada vez mais capazes de aprender, eles já controlam o que você vê na internet, influenciam processos seletivos e estão se espalhando cada vez mais em outras áreas.

 

Os algoritmos, ao que parece, estão em todos os lugares. Eles controlam o que aparece nas valiosas primeiras páginas do Google, o que é exibido na timeline de cada usuário do Facebook e coordenam tudo o que você vê de publicidade online. Com a quantidade cada vez maior de dados disponíveis na internet, os algoritmos se tornaram uma versão mais simples, mas cada vez mais sofisticada, de uma gigantesca inteligência artificial. Mas você sabe o que exatamente é um algoritmo?

As regras do jogo

Os algoritmos são estruturas básicas para a resolução de problemas. Em essência, são um conjunto de instruções, detalhadas passo a passo, que buscam obter um resultado verificando um determinado conjunto de variáveis em ordem específica. A ordem é fundamental para o funcionamento do algoritmo, já que vai influenciar diretamente o modo como o computador lida com o problema proposto. 
É como a receita de um bolo: Você não pode começar colocando a forma vazia no forno e aplicando o glacê na farinha. Cada passo precisa ser seguido em ordem para que você alcance o resultado desejado. 

Aprendizado robótico

Já reparou que, quando você entra no site de alguma loja, pesquisa algum termo no Google ou até mesmo posta sobre algum determinado assunto em alguma rede social, você começa a ver mais banners e outros anúncios com essa temática? Pode colocar a culpa nos algoritmos e em um conceito chamado machine learning (aprendizagem automática, em tradução livre), que usa o acúmulo de informações para que programas de computador consigam desenvolver novos padrões, com resultados cada vez mais precisos e customizados para o usuário. O próprio Facebook utiliza algoritmos baseados no conceito, filtrando o que você vê em sua timeline com base nas informações que levanta do seu perfil, como o teor de seus posts, pessoas com quem você interage, etc. 

  Esse princípio pode ser fundamental no desenvolvimento de inteligências artificiais sofisticadas, como as usadas em carros autônomos e, ainda mais no futuro, em androides que consigam, com o tempo, expandir a programação original pelo acúmulo de novas experiências.





Fonte: http://iq.intel.com.br/algoritmos

sábado, 9 de julho de 2016




Uma breve introdução à lógica de programação


A lógica de programação segue os mesmo princípios da lógica matemática. John McCarthy foi o primeiro autor a publicar um artigo relacionado a esse tema, no final da década de 1950.

Para podermos desenvolver um programa de computador é necessário que façamos o uso da lógica de programação, que basicamente consiste em organizar as ideias de uma maneira estruturada.

Funciona da seguinte forma: Todo programa de computador é escrito em uma determinada linguagem de programação, e essa linguagem, por sua vez, possui comandos e instruções, o conjunto de todos os comandos formam um algoritmo, para que um programa cumpra determinada função/tarefa as informações e instruções contidas nele devem estar escritas de uma maneira estruturada e devem seguir uma sequência lógica.
 
Exemplo: Calcular a média aritmética de um determinado aluno com base em duas notas, caso a média seja igual ou maior que 5: Informar que ele foi aprovado, caso contrário: Reprovado.

1° passo: Informar a primeira nota do aluno.
-
2° passo: Informar a segunda nota.
-
3° passo: Calcular a média aritmética.
-
4° passo: Informar a nota e a situação do aluno.


Perceba que todos os passos seguem uma sequência pré-determinada. Na programação o uso da lógica funciona basicamente da mesma maneira.



 Fonte: http://www.infoescola.com/informatica/logica-de-programacao/