Considérer les données de journal des serveurs, Amazon doit avoir une énorme quantité de données. Les données du journal sont généralement stockées telles qu'elles sont reçues, c'est-à-dire triées en fonction du temps. Ainsi, si vous voulez trier par produit, vous devrez trier l'ensemble des données.
Un autre problème est que plusieurs fois les données doivent être triées en fonction des besoins de traitement, ce qui peut ne pas être connu à l'avance. Par exemple: Bien qu'il ne s'agisse pas d'un téraoctet, j'ai récemment trié environ 24 Go de données de réseau suiveur Twitter en utilisant le tri par fusion. L'implémentation que j'ai utilisée était celle du Prof Dan Lemire.
http://www.daniel-lemire.com/blog/archives/2010/04/06/external-memory-sorting-in-java-the-first-release/
Les données ont été classées d'après les userids et chaque ligne contenait userid suivie userid de la personne qui le suit. Cependant, dans mon cas, je voulais des données sur qui suit qui. J'ai donc dû trier à nouveau par second ID utilisateur dans chaque ligne. Cependant, pour le tri de 1 To, j'utiliserais map-reduce avec Hadoop. Le tri est l'étape par défaut après la fonction de carte. Ainsi, je choisirais la fonction de carte pour être identité et NONE pour réduire la fonction et configurer les tâches de streaming.
Hadoop utilise HDFS qui stocke les données dans des blocs énormes de 64 Mo (cette valeur peut être modifiée). Par défaut, il exécute une carte unique par bloc. Une fois la fonction map exécutée, la sortie de map est triée, je suppose par un algorithme similaire au tri par fusion.
Voici le lien vers le mappeur d'identité: http://hadoop.apache.org/common/docs/r0.16.4/api/org/apache/hadoop/mapred/lib/IdentityMapper.html
Si vous voulez trier un élément dans ces données puis je faire de cet élément une clé dans XXX et la ligne en tant que valeur en sortie de la carte .
Pour beaucoup d'organisations, un téraoctet ne représente pas beaucoup de données. N'allez pas à une réunion de groupe d'utilisateurs Oracle et parlez de votre grande base de données de téraoctets. C'est vraiment un changement par rapport à il y a dix ans, quand les gens pensaient généralement qu'un téraoctet était grand. –
Merci à des réponses formidables pour celui-ci de tout le monde dans le monde. Vraiment étonné par la communauté Stackoverflow. – user373215
J'ai couru un robot d'exploration Web qui, à son apogée, triait régulièrement deux téraoctets de données. Et c'était une très petite opération par rapport à une entreprise comme Amazon ou Google. –