Maison  >  Questions et réponses  >  le corps du texte

hadoop - Utilisez le module python hdfs ou d'autres modules similaires pour filtrer le contenu du journal sur HDFS

Actuellement, la société utilise HDFS pour stocker les journaux téléchargés par chaque serveur de nœud. En raison de problèmes historiques, les rapports sont assez mitigés. Autrement dit, toutes sortes de données seront stockées dans le journal. Un fichier journal fait environ 200 Mo. Parfois, pour filtrer certains contenus, vous devez utiliser la commande cat de hdfs en fonction de l'horodatage, puis saisir le mot-clé. Saisissez-le ensuite dans un script Python via stdin pour effectuer un traitement sur les données pertinentes.
Maintenant, je veux faire en sorte que je puisse saisir l'heure, le nœud, le mot-clé et le modèle de correspondance à interroger, puis terminer la tâche en une seule étape. De cette façon, ce gadget peut être proposé à toutes les personnes qui ont besoin de données, au lieu de demander aux opérations et à la maintenance de les interroger à chaque fois.
J'ai donc commencé à étudier les modules liés à Python. Ce hdfs peut être téléchargé et téléchargé, et le contenu des fichiers de répertoire peut être interrogé. Mais quand il s’agit de lire cette partie, cela devient plus gênant.
avec client.read(hdfs_path=....., autres paramètres) comme lecteur :

content = reader.read()
然后再对content处理

Cette méthode n'est pas réalisable car il y a trop de contenu à faire correspondre en même temps, probablement plusieurs gigaoctets de données, et il est impossible de tout lire puis de le traiter. Vous devez les filtrer et les traiter pendant le processus de lecture

J'ai essayé d'insérer une ligne dans le contenu, mais cela ne correspondait pas au contenu.
Comment résoudre ce problème ? Est-il possible d'utiliser Python pour enregistrer les chemins de fichiers qui remplissent les conditions, puis d'exécuter la commande HDFS, puis de transférer les données correspondantes vers Python ? Cela semble trop gênant et la stabilité n'est certainement pas bonne

Plus tard, j'ai jeté un œil et j'ai découvert que lors de la création du client du module hdfs, il était connecté à la page de gestion web de hadoop 50070. Je me suis demandé si ce module lui-même n'était pas utilisé pour l'analyse des données ? J'espère que vous pourrez m'aider

淡淡烟草味淡淡烟草味2706 Il y a quelques jours1002

répondre à tous(1)je répondrai

  • 曾经蜡笔没有小新

    曾经蜡笔没有小新2017-06-13 09:26:45

    Qu'en est-il du multithreading et du calcul parallèle ? Lire plusieurs Go à la fois est naturellement lent. Puisqu'il s'agit d'un framework hadoop, il devrait suffire de bien utiliser mapreduce. Cette chose n'est probablement pas conçue pour la vitesse.

    répondre
    0
  • Annulerrépondre