Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

  1. #1
    Futur Membre du Club
    Hadoop : transférer des fichier volumineux sous Hadoop
    Bonjour,

    J'ai plusieurs fichiers volumineux sous ubuntu dans un path précis, je veux chaque fois quand j'ajoute un fichier sous ce path un crontab ou un job envoie ce fichier sous hadoop.

    1- Comment envoyer un fichier ( dans mon fichier systeme) vers Hadoop.
    2- Comment automatiser cette tache par un crontab chaque fois qu'il trouve un fichier.

    Merci

  2. #2
    Expert Oracle confirmé

    Bonjour,

    Tout d'abord, il y a 2 cas de figure :
    1) votre serveur Ubuntu est un Edge Node. En clair, il fait parti du cluster Hadoop
    2) à l'inverse, votre serveur Ubuntu est hors du cluster


    Dans le premier cas, il suffit de pousser votre fichier depuis le FS local dans l'HDFS, avec la commande :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    hdfs dfs -put /path/mon_fichier_local /path_HDFS
    A vous de préciser le chemin local avec votre fichier comme source, et le chemin dans l'HDFS comme cible.


    Dans le second cas, il faut passer par la Gateway Apache Knox qui est le point d'entrée unique dans un cluster Hadoop lorsque l'on est à l'extérieur, et utiliser l'outi Curl pour pousser son fichier.

    Je vous conseille vivement de vous rapprocher de votre administrateur du cluster Hadoop pour avoir un exemple ainsi que tout ce qui va bien en terme d'authentification (LDAP et Kerberos), car cela ne s'invente pas.

  3. #3
    Membre éprouvé
    utiliser le client HDFS et Apache Knox
    Bonjour ahmed_2020,

    1- pour transférer ton fichier du local vers Hadoop, il faut que ta machine locale fasse partie du cluster Hadoop. Si c'est le cas, alors utilise la commande Shell CopyFromLocal du client HDFS pour transférer ton fichier sur Hadoop.

    Par exemple : hdfs dfs -CopyFromLocal /monrepertoirelocal/mon_fichier /repertoire_hdfs/nom_fichier


    2 - pour automatiser, tu peux programmer en shell un crontab sur la commande CopyFromLocal ou alors tu peux utiliser Apache Knox ou encore tu peux utiliser Oozie.

    Voilà,

    Juvénal
    Mes cours et tutoriels bases de données et Hadoop : https://juvenal-chokogoue.developpez.com

  4. #4
    Membre éprouvé
    Hello, de mon expérience personnelle le plus simple pour transférer un fichier d'une machine lambda vers un cluster HDFS est de passer par WebHDFS (à condition de l'activer: dfs.webhdfs.enabled dans le hdfs-site.xml)

    Après ça les transferts se font à base de curl, ce qui est quand même plus simple que d'installer les librairies hadoop sur tous les postes

    https://hadoop.apache.org/docs/r1.0.4/webhdfs.html

    Edit: en effet Knox fournit un point d'entrée plus user friendly vers HDFS, mais il n'est pas indispensable
    Veuillez agréer nos sentiments les plus distingués. Soyez assurés de notre entière collaboration, bien à vous pour toujours et à jamais dans l'unique but de servir l'espérance de votre satisfaction, dis bonjour à ton père et à ta mère, bonne pétanque, mets ton écharpe fais froid dehors.

  5. #5
    Expert Oracle confirmé

    Bonjour,

    Edit: en effet Knox fournit un point d'entrée plus user friendly vers HDFS, mais il n'est pas indispensable
    Heu, ce n'est pas une question d'être User Friendly. C'est qu'en entreprise, les clusters sont sécurisés via Kerberos. Et donc, lorsque l'on utilise une machine lambda qui est hors du cluster, on doit passer par la Gateway Knox. Cela est pour moi le 2ième cas de figure dont je parlais, à savoir être hors du cluster.

    ce qui est quand même plus simple que d'installer les librairies hadoop sur tous les postes
    Oui c'est vrai. Mais que fait-on en installant les librairies Hadoop sur une machine Lambda ?

    Et bien on la transforme en quelque sorte en Edge Node. C'est le premier cas de figure dont je parlais : la machine Lambda devient partie intégrante du cluster.

    Je dis en quelque sorte parce que normalement, on installe le client entier de sa distribution Hadoop, pas seulement les quelques librairies dont on a besoin.

    De plus, il faut installer les clients pour l'authentification, à savoir :
    - le client LDAP
    - le client Kerberos


    En fait, un Edge Node n'est ni plus ni moins qu'une machine qui fait partie du cluster, avec ses 3 clients (distribution Hadoop, LDAP et Kerberos), mais qui n'est ni un Namenode, ni un Datanode / Compute Node.

    En règle générale, on se sert de l'Edge Node pour installer des logiciels tiers d'éditeurs divers.