Advertisement
Guest User

Untitled

a guest
Mar 18th, 2019
78
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 4.59 KB | None | 0 0
  1. # Devoir maison de données distribuées
  2.  
  3. ## Partitionnement
  4.  
  5. Tableau identifiants-valeurs trié par identifiant I
  6.  
  7. | I | N |
  8. | :-: |:-: |
  9. | 5 | a |
  10. | 9 | b |
  11. | 22 | h |
  12. | 38 | f |
  13. | 42 | c |
  14. | 51 | g |
  15. | 54 | d |
  16. | 666 | e |
  17.  
  18. ### Question 1 - Partionnement horizontal - round-robin
  19.  
  20. | Disque | Identifiant | Valeur |
  21. | :----- | :---------: | :----: |
  22. | Disque 0 | 5 | a |
  23. | | 42 | c |
  24. | Disque 1 | 9 | b |
  25. | | 51 | g |
  26. | Disque 2 | 22 | h |
  27. | | 54 | d |
  28. | Disque 3 | 38 | f |
  29. | | 666 | e |
  30.  
  31. ### Question 2 - Partionnement horizontal - hash par modulo
  32.  
  33. Nous choisissons un modulo 4
  34.  
  35. | Disque | Identifiant | Valeur |
  36. | :----- | :---------: | :----: |
  37. | Disque 0 | | |
  38. | Disque 1 | 5 | a |
  39. | | 9 | b |
  40. | Disque 2 | 22 | h |
  41. | | 38 | f |
  42. | | 42 | c |
  43. | | 54 | d |
  44. | | 666 | e |
  45. | Disque 3 | 51 | g |
  46.  
  47. ### Question 3 - Partionnement horizontal - intervalles
  48.  
  49. | Disque | intervalle | Identifiant | Valeur |
  50. | :----- | :--------- | :---------: | :----: |
  51. | Disque 0 | [0;10[ | 5 | a |
  52. | | | 9 | b |
  53. | Disque 1 | [10;40[ | 22 | h |
  54. | | | 38 | f |
  55. | Disque 2 | [40;52[ | 42 | c |
  56. | | | 51 | g |
  57. | Disque 3 | [52;1000[ | 54 | d |
  58. | | | 666 | e |
  59.  
  60. ### Question 4 - Jeu de données
  61.  
  62. Mail au prof
  63.  
  64. ### Question 5 - Recherche par identifiant - Tourniquet
  65.  
  66. Si le partionnement est par tourniquet, il est potentiellement nécessaire d'activer tous les disques pour trouver une valeur de I précise.
  67. Ceci car aucune opération préalable ne permet de déterminer quel disque contient ladite valeur.
  68. Il faut donc faire une recherche séquentielle jusqu'à atteindre l'identifiant voulu.
  69.  
  70. ### Question 6 - Recherche par identifiant - Hash
  71.  
  72. Si le partionnement est par hachage, un seul disque doit s'activer pour trouver une valeur de I précise.
  73. Il suffit pour cela de recalculer le hash, qui nous indiquera directement le disque à interroger.
  74.  
  75. ### Question 7 - Type de recherche activant tous les disques
  76.  
  77. Dans le cas d'une recherche sur la valeur et non sur la clé, il faut activer pratiquement tous les disques.
  78. Le hachage ne permet pas de calculer l'emplacement de la clé.
  79.  
  80.  
  81. ## Jointure
  82.  
  83. ### Question 1 - Algorithme PNL
  84.  
  85. 1. Envoi des données de la partition E1 (disque D1) vers le disque D3
  86. 2. Envoi des données de la partition E2 (disque D1) vers le disque D3
  87. 3. Concaténation de E1 et E2 sur le disque D3 - Table E3
  88. 4. Jointure de E3 et F1 sur le disque D3 - Table EF1
  89. 5. Envoi des données de la partition E1 (disque D1) vers le disque D4
  90. 6. Envoi des données de la partition E2 (disque D1) vers le disque D4
  91. 7. Concaténation de E1 et E2 sur le disque D4 - Table E4
  92. 8. Jointure de E4 et F1 sur le disque D3 - Table EF2
  93. 9. Concaténation des tables EF1 et EF2
  94.  
  95. ### Question 2 - Gains et pertes
  96.  
  97. Les gains de temps se font au niveau des jointures du fait d'opérer sur des fragments plutôt que sur l'ensemble complet (produits cartésiens plus petits), ainsi que sur le fait que plusieurs jointures sont réalisées en même temps.
  98.  
  99. Les pertes de temps se font au niveau de la réplication des données, ainsi que sur les concaténations.
  100.  
  101.  
  102. ## MapReduce
  103.  
  104. ### Question 1 - Résultat de la phase Map
  105.  
  106. | Clé | Valeur |
  107. | :-- | :----: |
  108. | (après, fait) | 1 |
  109. | (après, avoir) | 1 |
  110. | (après, fait) | 1 |
  111. | (avoir, fait) | 1 |
  112. | (avoir, fait) | 1 |
  113.  
  114. ### Question 2 - Résultat de la phase Shuffle
  115.  
  116. | Clé | Valeur |
  117. | :-- | :----: |
  118. | (après, avoir) | (1) |
  119. | (après, fait) | (1,1) |
  120. | (avoir, fait) | (1,1) |
  121.  
  122. ### Question 3 - Résultat de la phase Reduce
  123.  
  124. | Clé | Valeur |
  125. | :-- | :----: |
  126. | (après, avoir) | 1 |
  127. | (après, fait) | 2 |
  128. | (avoir, fait) | 2 |
  129.  
  130. ### Question 4 - Explication
  131.  
  132. Ce programme renvoie, pour chaque ligne, tous les couples de mots disctincts possibles ainsi que le nombre d'occurences de chacun de ces couples.
  133.  
  134. ## NoSQL
  135.  
  136. ### Question 1 - Pig
  137.  
  138. Pig est une plateforme haut niveau pour la création de programme MapReduce qui offre une syntaxe proche du SQL.
  139.  
  140. ### Question 2 - Spark
  141.  
  142. Spark possède une syntaxe de type lambda functions et permet d'effectuer des opérations de type MapReduce, sans être limité à cela.
  143.  
  144. ### Question 3 - Type de système
  145.  
  146. Les données sont très structurées et il y a une nécessité de cohérence forte.
  147. Une solution NoSQL ne semble donc pas adapté, et donc partir sur un SGBD relationnel classique.
  148. Le jeu de données n'est pas si grand, une solution de type Oracle suffit amplement.
  149. Si les performances sont primordiales, il existe la possibilité des "in-memory databases", permettant de conserver les propriétés ACID tout en améliorant drastiquement les temps d'accès.
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement