Comment puis-je copier des fichiers à partir de S3 d'Amazon EMR HDFS?
Je suis en cours d'exécution de la ruche de plus de DME,
et besoin de copier certains fichiers pour tous les EMR instances.
D'une façon que je comprends, c'est juste pour copier des fichiers sur le système de fichiers local sur chaque nœud de l'autre est de copier les fichiers sur le HDFS cependant, je n'ai pas trouvé un moyen simple de copier stright de S3 à HDFS.
Quelle est la meilleure façon d'aller à ce sujet?
Vous devez vous connecter pour publier un commentaire.
la meilleure façon de le faire est d'utiliser Hadoop est distcp de commande. Exemple (sur l'un des nœuds du cluster):
% ${HADOOP_HOME}/bin/hadoop distcp s3n://mybucket/myfile /root/myfile
Ce serait la copie d'un fichier nommé monfichier à partir d'un compartiment S3 nommé mybucket à
/root/myfile
dans HDFS. Notez que cet exemple suppose que vous utilisez le système de fichier S3 en "natif" de mode, ce qui signifie que Hadoop voit chaque objet dans S3 comme un fichier. Si vous utilisez S3 en mode bloc au lieu de cela, vous devez remplacer s3n avec s3 dans l'exemple ci-dessus. Pour plus d'informations sur les différences entre les indigènes S3 et en mode bloc, ainsi que des précisions sur l'exemple ci-dessus, voir http://wiki.apache.org/hadoop/AmazonS3.J'ai trouvé que distcp est un outil très puissant. En plus d'être en mesure de l'utiliser pour copier une grande quantité de fichiers dans et hors de la S3, vous pouvez également réaliser rapidement des cluster-cluster des copies de grands ensembles de données. Au lieu de pousser toutes les données par le biais d'un seul nœud, distcp utilise plusieurs nœuds en parallèle pour effectuer le transfert. Cela rend distcp considérablement plus rapide lors du transfert de grandes quantités de données, par rapport à l'alternative de la copie de tout le système de fichiers local comme un intermédiaire.
Maintenant, Amazon a lui-même un wrapper mis en œuvre sur distcp, à savoir : s3distcp .
Exemple Copier les fichiers journaux à partir d'Amazon S3 pour HDFS
L'exemple qui suit illustre comment copier des fichiers journaux stockés dans un compartiment Amazon S3 dans HDFS. Dans cet exemple, l' --srcPattern option est utilisée pour limiter les données copiées dans le démon de journaux.
Note que, selon Amazon, à http://docs.amazonwebservices.com/ElasticMapReduce/latest/DeveloperGuide/FileSystemConfig.html "Amazon Elastic MapReduce - Fichier de Configuration du Système", le S3 Bloc du système de fichiers est obsolète et son URI préfixe est maintenant s3bfs://et ils déconseillent vivement de l'utiliser, car "il peut déclencher une condition de concurrence qui pourrait causer à votre flux de travail à l'échec."
Selon la même page, HDFS est maintenant "première classe" système de fichiers sous S3 même si elle est éphémère (disparaît lorsque le Hadoop emplois se termine).