Ouvi falar de muitas ferramentas / estruturas para ajudar as pessoas a processar seus dados (ambiente de big data).
Um é chamado Hadoop e o outro é o conceito noSQL. Qual é a diferença no ponto de processamento?
Eles são complementares?
Comentários
- Votado por falta de esforço de pesquisa. Hadoop e noSQL são bem definidos em outro lugar.
- @Spacedman, eu concordo, mas esse foi um exemplo de pergunta da Area51 então se fosse não excluído antes, acho que é válido, e até eu sabia a resposta quando postava a pergunta (pelo menos genericamente).
Resposta
Hadoop não é um banco de dados , hadoop é um ecossistema completo.
A maioria das pessoas se refere a trabalhos de mapreduce ao falar sobre hadoop . Um trabalho mapreduce divide grandes conjuntos de dados em alguns pequenos pedaços de dados e os espalha por um cluster de nós para continuar. No final, o resultado de cada nó será reunido novamente como um conjunto de dados.
Vamos supor que você carregue no hadoop um conjunto de <String, Integer>
com a população de alguns bairros de uma cidade e você deseja obter a população média de todos os bairros de cada cidade (figura 1).
figura 1
[new york, 40394] [new york, 134] [la, 44] [la, 647] ...
Agora o hadoop mapeará primeiro cada valor usando as chaves (figura 2)
figura 2
[new york, [40394,134]] [la, [44,647]] ...
Após o mapeamento, ele reduzirá os valores de cada chave para um novo valor (neste exemplo, a média sobre o conjunto de valores de cada chave) (figura 3)
figura 3
[new york, [20264]] [la, [346]] ...
agora o hadoop seria feito com tudo. Agora você pode carregar o resultado no HDFS ( hadoop sistema de arquivos distribuído) ou em qualquer DBMS ou arquivo.
Isso é apenas um muito básico e simples ex amplo do que o hadoop pode fazer. Você pode executar tarefas muito mais complicadas no hadoop.
Como você já mencionou em sua pergunta, o hadoop e o noSQL são complementares. Eu conheço algumas configurações onde, por exemplo, bilhões de conjuntos de dados de sensores são armazenados no HBase e passam pelo hadoop para finalmente serem armazenados em um DBMS.
Resposta
NoSQL é uma forma de armazenar dados que não requer que haja algum tipo de relação. A simplicidade de seu design e capacidade de escala horizontal, uma maneira de armazenar dados é o key : value
design de pares. Isso se presta a um processamento semelhante ao Hadoop. O uso de um banco de dados NoSQL realmente depende do tipo de problema que se busca.
Aqui está um bom link da wikipedia NoSQL
Hadoop é um sistema criado para armazenar e processar grandes blocos de dados. É um dfs de sistema de arquivos distribuído. A razão de fazer isso é que, fundamental para seu design, ele pressupõe que as falhas de hardware são comuns, fazendo assim várias cópias da mesma informação e espalhando-a por várias máquinas e racks, portanto, se um cair, não há problema, nós tenho mais duas cópias. Aqui está um ótimo link para Hadoop da wikipedia também. Você verá que, em minha opinião, é mais do que apenas armazenamento, mas também processamento: Hadoop