Author: afages Date: 2010-02-11 10:00:09 +0100 (Thu, 11 Feb 2010) New Revision: 72 Added: trunk/src/site/doc/analyse/ trunk/src/site/doc/analyse/HowToHbase.rst trunk/src/site/doc/analyse/analyseBT.rst trunk/src/site/doc/analyse/hbase-files.png trunk/src/site/doc/analyse/msm.zargo trunk/src/site/doc/analyse/projetHBase.rst Log: Deplacement des docs dans src/site/doc Copied: trunk/src/site/doc/analyse/HowToHbase.rst (from rev 70, trunk/docs/analyse/HowToHbase.rst) =================================================================== --- trunk/src/site/doc/analyse/HowToHbase.rst (rev 0) +++ trunk/src/site/doc/analyse/HowToHbase.rst 2010-02-11 09:00:09 UTC (rev 72) @@ -0,0 +1,71 @@ + +How to Hbase +============ + +Préparation de l'environnement de travail +----------------------------------------- + +prérequis : (nous travaillerons sur linux) + - SSH doit être installé. + +Télécharger Hadoop : +ftp://ftp.inria.fr/pub/Apache/hadoop/core/hadoop-0.20.1/hadoop-0.20.1.tar.gz +Télécharger Hbase : +ftp://ftp.inria.fr/pub/Apache/hadoop/hbase/hbase-0.20.2/hbase-0.20.2.tar.gz + +Dézipper les archives... + +Variables d'environnement +------------------------- + +Créer deux variables d'environnement "Hadoop_HOME" et "HBase_HOME" localisant les dossiers Hadoop-0.20.1 et HBase-0.20.2. +Ouvrir les fichiers ${Hadoop_Home}/conf/hadoop-env.sh et ${HBase_Home}/conf/hbase-env.sh et modifier/ajouter la variable d'environnement JAVA_HOME. + +Lancement des daemons +--------------------- + +Lancement du daemon hadoop : +${Hadoop_HOME}/bin/start-dfs.sh + +Lancement du daemon hbase : +${HBase_HOME}/bin/start-hbase.sh + +Lancement du shell Hbase +------------------------ + +${HBase_HOME}/bin/hbase shell + +Exemple +------- + +hbase> # Type "help" to see shell help screen +hbase> help +hbase> # To create a table named "mylittletable" with a column family of "mylittlecolumnfamily", type +hbase> create "mylittletable", "mylittlecolumnfamily" +hbase> # To see the schema for you just created "mylittletable" table and its single "mylittlecolumnfamily", type +hbase> describe "mylittletable" +hbase> # To add a row whose id is "x", to the column "mylittlecolumnfamily:x" with a value of 'x', do +hbase> put "mylittletable", "x" +hbase> # To get the cell just added, do +hbase> get "mylittletable", "x" +hbase> # To scan you new table, do +hbase> scan "mylittletable" + +Arrêt des daemons +----------------- + +Lancement du daemon hadoop : +${HADOOP_HOME}/bin/stop-dfs.sh +(On va dire que l'action n'est pas très rapide... Si elle marche.. ?) + +Lancement du daemon hbase : +${HBASE_HOME}/bin/stop-hbase.sh +${HBASE_HOME}/bin/stop-all.sh +(??? pour le premier il faut renseigner le nom du node ? Pour le second, je doute fort qu'il éteigne bien le daemon..) +---> Problème de port à la fac, je suppose. + + + + +So It's done +Now you have to work ! \ No newline at end of file Copied: trunk/src/site/doc/analyse/analyseBT.rst (from rev 70, trunk/docs/analyse/analyseBT.rst) =================================================================== --- trunk/src/site/doc/analyse/analyseBT.rst (rev 0) +++ trunk/src/site/doc/analyse/analyseBT.rst 2010-02-11 09:00:09 UTC (rev 72) @@ -0,0 +1,92 @@ +Analyse de BigTable (de google Inc.) +===================================== + +But de l'analyse +---------------- + +Permettre la compréhension de Big Table et de ses diverses implémentations +ainsi que l'extraction d'interface pour le projet MSM. + +Introduction : Qu'est-ce que BigTable ? +--------------------------------------- + +BigTable est la spécification d'un système de stockage distribué permettant +de gérer des données. Il est conçu pour s'adapter fiablement à des tailles +de contenu allant jusqu'au "Peta". BigTable est utilisé pour plusieurs raisons : + +- Toucher un large ensemble d'applications +- Mise à l'échelle +- Très bonnes performances (temps de réponse...) +- Forte disponibilité + +Le modèle de données de BigTable +-------------------------------- + +Le modèle de données de BigTable se comporte comme un dictionnaire +multidimensionnel (matrice) indexé par le triplet +<row key, column key, timestamp>. Chaque valeur de ce dictionnaire +est un table d'octets. + +Les clés pour une rangée du dictionnaire sont des chaînes de charactères +arbitraires et BigTable maintient les données dans un ordre lexicographique +grâce à ce type de clé. + +ex de clé de rangée : "com.google.maps/index.html" (reversed URL) + +La portée d'une rangée est appelée "tablet", unité de distribution et d'équilibrage +de charge. + +Les clés de colonne sont groupées en ensembles appelés "famille de colonnes". +Une clé de colonne est nommé suivant le schéma : family:qualifier. +Les noms de famille doivent être lisibles facilement mais les qualificateurs peuvent +être des chaînes de charactères arbitraires + +ex de famille de colonne : "contents:" + +Ainsi, le contenu d'une cellule indexée par <com.google.maps/index.html, contents:, ?> +serait le contenu de la page "index.html" (le code html). +Une cellule peut contenir plusieurs versions de la même donnée via le mécanisme de timestamp. +Chaque cellule stocke plusieurs timestamp en ordre décroissant si bien que : + +- <com.google.maps/index.html, contents:, ts1> donne la version la plus récente du contenu. +- <com.google.maps/index.html, contents:, ts2> donne une version plus ancienne du contenu. + +Stockage +-------- + +BigTable utilise le système de fichier google GFS (Google File System) +pour stocker les logs et fichiers de données. + +Le format de fichier google SSTable est utilisé pour stocker les données +internes à BigTable. + +API BigTable (client) +--------------------- + +Voici les fonctionnalités prévues par la spécification BigTable : + +- Création de tables. +- Création de familles de colonne. +- Suppression de tables. +- Suppression de familles de colonne. +- Changement de cluster (?). +- Changement de table. +- Changement de méta données sur une famille de colonne (droits d'accès...). +- Ecriture des données dans une table. +- Suppression des données dans une table. +- Recherche des données dans une table depuis des rangées individuelles. +- Itération sur un sous-ensemble de données d'une table. +- Manipulation avancée des données : Transactions "Lecture - Modification - Ecriture" +sur une rangée simple (BigTable ne supporte pas les transactions par rangées multiples). +- Utilisation des cellules comme compteurs d'entier. +- Excécution de scripts clients dans l'espace d'adressage des serveurs (langage : sawzall). +- Calcul parallèle avec le framework MapReduce. + +Source +------ + +Cette analyse est une synthèse des éléments utiles dans le cadre du projet, issue de la +spécification même de Google Inc. +"BigTable: A Distributed Storage System for Structured Data" + +lien : labs.google.com/papers/bigtable-osdi06.pdf Copied: trunk/src/site/doc/analyse/hbase-files.png (from rev 71, trunk/docs/analyse/hbase-files.png) =================================================================== (Binary files differ) Copied: trunk/src/site/doc/analyse/msm.zargo (from rev 70, trunk/docs/analyse/msm.zargo) =================================================================== (Binary files differ) Copied: trunk/src/site/doc/analyse/projetHBase.rst (from rev 70, trunk/docs/analyse/projetHBase.rst) =================================================================== --- trunk/src/site/doc/analyse/projetHBase.rst (rev 0) +++ trunk/src/site/doc/analyse/projetHBase.rst 2010-02-11 09:00:09 UTC (rev 72) @@ -0,0 +1,40 @@ +// mardi 12 janvier 2010 + +Technologies +------------ + + - UML + - JAVA + - JMX + - Jaxx / Swing + - HBase + - XML + - SVN + - RST + - Maven + +Contraintes +------------ + +- L'encodage des fichiers doit être en UTF-8. +- La norme checkstyle de sun doit être utilisée pour le code java (http://java.sun.com/docs/codeconv/html/CodeConvTOC.doc.html). +- Pour les diagrammes UML, l'outil ArgoUML (v 0.28.1) doit être employé. +- Utilisation de Maven2 pour la construction, génération du site web… +- Couverture du code à 80% +- Environnement de développement libre (Eclipse, Netbeans, Vim) +- Utilisation de rst (ReStructuredText) pour la documentation +- Projet sous licence GPL v3 +- Code source en anglais + +Définitions +----------- + +HBase + +HMap + +RST + + + +
participants (1)
-
afages@users.nuiton.org