Maison base de données tutoriel mysql [原创] Hadoop 2.x的DistributedCache无法工作的问题

[原创] Hadoop 2.x的DistributedCache无法工作的问题

Jun 07, 2016 pm 04:34 PM
hadoop 原创

转载请注明出处: http://www.codelast.com/ 现象:和 这个 帖子描述的一样,简单说来就是,在Hadoop 2.x上,用新的DistributedCache的API,在mapper中会获取不到这个cache文件。 下面就详细地描述一下新旧API的用法区别以及解决办法。 『1』 旧API 将HDFS文

转载请注明出处:http://www.codelast.com/

现象:和这个帖子描述的一样,简单说来就是,在Hadoop 2.x上,用新的DistributedCache的API,在mapper中会获取不到这个cache文件。
下面就详细地描述一下新旧API的用法区别以及解决办法。

『1』旧API
将HDFS文件添加到distributed cache中:

Configuration conf = job.getConfiguration();
DistributedCache.addCacheFile(new URI(inputFileOnHDFS), conf);  // add file to distributed cache
Copier après la connexion

其中,inputFileOnHDFS是一个HDFS文件的路径,也就是你要用作distribute cache的文件的路径,例如 /user/codelast/123.txt
在mapper的setup()方法中:

Configuration conf = context.getConfiguration();
Path[] localCacheFiles = DistributedCache.getLocalCacheFiles(conf);
readCacheFile(localCacheFiles[0]);
Copier après la connexion

其中,readCacheFile()是我们自己的读取cache文件的方法,可能是这样做的(仅举个例子):

private static void readCacheFile(Path cacheFilePath) throws IOException {
  BufferedReader reader = new BufferedReader(new FileReader(cacheFilePath.toUri().getPath()));
  String line;
  while ((line = reader.readLine()) != null) {
    //TODO: your code here
  }
  reader.close();
}
Copier après la connexion

文章来源:http://www.codelast.com/
『2』新API
上面的代码中,addCacheFile() 方法和 getLocalCacheFiles() 都已经被Hadoop 2.x标记为 @Deprecated 了。
因此,有一套新的API来实现同样的功能,这个链接里有示例,我在这里再详细地写一下。
将HDFS文件添加到distributed cache中:

job.addCacheFile(new Path(inputFileOnHDFS).toUri());
Copier après la connexion

在mapper的setup()方法中:

Configuration conf = context.getConfiguration();
URI[] localCacheFiles = context.getCacheFiles();
readCacheFile(localCacheFiles[0]);
Copier après la connexion

其中,readCacheFile()是我们自己的读取cache文件的方法,可能是这样做的(仅举个例子):

private static void readCacheFile(URI cacheFileURI) throws IOException {
  BufferedReader reader = new BufferedReader(new FileReader(cacheFileURI.getPath()));
  String line;
  while ((line = reader.readLine()) != null) {
    //TODO: your code here
  }
  reader.close();
}
Copier après la connexion

但是就像文章开头的那个链接里所描述的问题一样,你可能会发现 context.getCacheFiles() 总是返回null,也就是你无法读到cache文件。
这个问题有可能是这个bug造成的,你可以对比一下你的Hadoop版本。
文章来源:http://www.codelast.com/
『3』解决办法
(1)打patch
(2)升级Hadoop版本
(3)使用旧的DistributedCache API,经测试OK
文章来源:http://www.codelast.com/

Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn

Outils d'IA chauds

Undresser.AI Undress

Undresser.AI Undress

Application basée sur l'IA pour créer des photos de nu réalistes

AI Clothes Remover

AI Clothes Remover

Outil d'IA en ligne pour supprimer les vêtements des photos.

Undress AI Tool

Undress AI Tool

Images de déshabillage gratuites

Clothoff.io

Clothoff.io

Dissolvant de vêtements AI

AI Hentai Generator

AI Hentai Generator

Générez AI Hentai gratuitement.

Article chaud

R.E.P.O. Crystals d'énergie expliqués et ce qu'ils font (cristal jaune)
3 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Meilleurs paramètres graphiques
3 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Comment réparer l'audio si vous n'entendez personne
3 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
WWE 2K25: Comment déverrouiller tout dans Myrise
4 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌

Outils chauds

Bloc-notes++7.3.1

Bloc-notes++7.3.1

Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise

SublimeText3 version chinoise

Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1

Envoyer Studio 13.0.1

Puissant environnement de développement intégré PHP

Dreamweaver CS6

Dreamweaver CS6

Outils de développement Web visuel

SublimeText3 version Mac

SublimeText3 version Mac

Logiciel d'édition de code au niveau de Dieu (SublimeText3)

Erreurs Java : erreurs Hadoop, comment les gérer et les éviter Erreurs Java : erreurs Hadoop, comment les gérer et les éviter Jun 24, 2023 pm 01:06 PM

Erreurs Java : erreurs Hadoop, comment les gérer et les éviter Lorsque vous utilisez Hadoop pour traiter des données volumineuses, vous rencontrez souvent des erreurs d'exception Java, qui peuvent affecter l'exécution des tâches et provoquer l'échec du traitement des données. Cet article présentera quelques erreurs Hadoop courantes et fournira des moyens de les gérer et de les éviter. Java.lang.OutOfMemoryErrorOutOfMemoryError est une erreur provoquée par une mémoire insuffisante de la machine virtuelle Java. Quand Hadoop est

Utilisation de Hadoop et HBase dans Beego pour le stockage et les requêtes Big Data Utilisation de Hadoop et HBase dans Beego pour le stockage et les requêtes Big Data Jun 22, 2023 am 10:21 AM

Avec l'avènement de l'ère du Big Data, le traitement et le stockage des données sont devenus de plus en plus importants, et la gestion et l'analyse efficaces de grandes quantités de données sont devenues un défi pour les entreprises. Hadoop et HBase, deux projets de la Fondation Apache, proposent une solution de stockage et d'analyse du Big Data. Cet article explique comment utiliser Hadoop et HBase dans Beego pour le stockage et les requêtes Big Data. 1. Introduction à Hadoop et HBase Hadoop est un système informatique et de stockage distribué open source qui peut

Comment utiliser PHP et Hadoop pour le traitement du Big Data Comment utiliser PHP et Hadoop pour le traitement du Big Data Jun 19, 2023 pm 02:24 PM

Alors que la quantité de données continue d’augmenter, les méthodes traditionnelles de traitement des données ne peuvent plus relever les défis posés par l’ère du Big Data. Hadoop est un cadre informatique distribué open source qui résout le problème de goulot d'étranglement des performances causé par les serveurs à nœud unique dans le traitement du Big Data grâce au stockage distribué et au traitement de grandes quantités de données. PHP est un langage de script largement utilisé dans le développement Web et présente les avantages d'un développement rapide et d'une maintenance facile. Cet article explique comment utiliser PHP et Hadoop pour le traitement du Big Data. Qu'est-ce que HadoopHadoop ?

Le MD5 modifié sera-t-il considéré comme du contenu original ? Le MD5 modifié sera-t-il considéré comme du contenu original ? Feb 19, 2024 pm 08:04 PM

Est-il considéré comme original après la modification de md5 ? À l'ère d'Internet, la création de contenu original est devenue une valeur et une ressource importante. Cependant, ce qui s’ensuit est une remise en question de l’originalité et de la contrefaçon. Afin de prévenir le piratage et le plagiat, de nombreuses personnes tentent d'utiliser différentes méthodes pour protéger leurs œuvres originales. L'une des méthodes courantes consiste à utiliser l'algorithme MD5 pour modifier le travail afin d'obtenir l'effet de « protection par algorithme ». MD5 (MessageDigestAlgorithm5) est un algorithme de résumé de message couramment utilisé, qui peut

Explorez l'application de Java dans le domaine du big data : compréhension de Hadoop, Spark, Kafka et d'autres piles technologiques Explorez l'application de Java dans le domaine du big data : compréhension de Hadoop, Spark, Kafka et d'autres piles technologiques Dec 26, 2023 pm 02:57 PM

Pile technologique Java Big Data : Comprendre l'application de Java dans le domaine du Big Data, comme Hadoop, Spark, Kafka, etc. Alors que la quantité de données continue d'augmenter, la technologie Big Data est devenue un sujet brûlant à l'ère d'Internet d'aujourd'hui. Dans le domaine du big data, on entend souvent les noms de Hadoop, Spark, Kafka et d’autres technologies. Ces technologies jouent un rôle essentiel et Java, en tant que langage de programmation largement utilisé, joue également un rôle majeur dans le domaine du Big Data. Cet article se concentrera sur l'application de Java en général

ASUS Flying Fortress 7 - Original ASUS Flying Fortress 7 - Original Jul 14, 2023 pm 10:09 PM

Lorsqu'il s'agit d'ordinateurs portables de jeu d'ASUS, la première chose qui vient à l'esprit est Republic of Gamers. Mais en plus des ordinateurs portables de jeu haut de gamme de Republic of Gamers, ASUS propose également des ordinateurs portables de jeu grand public dans la série Flying Fortress. jetez-y un œil ensemble. Que diriez-vous d'ASUS Flying Fortress 7, qui est le plus populaire parmi les joueurs. ASUS Flying Fortress 7 Les ordinateurs portables de la série Flying Fortress d'ASUS sont positionnés pour jouer facilement à des jeux à grande échelle. Ils mettent l'accent sur la robustesse et la durabilité. Ils ont toujours été un choix populaire parmi les joueurs et les étudiants. Configuration de base Tout d'abord, jetons un coup d'œil à certaines des configurations de base de ce Flying Fortress 7. Dans le tableau de configuration, la plus remarquable est AMD Ryzen73750H+NVIDIA GeForceGTX1660Ti.

Comment installer Hadoop sous Linux Comment installer Hadoop sous Linux May 18, 2023 pm 08:19 PM

1 : Installez JDK1. Exécutez la commande suivante pour télécharger le package d'installation de JDK1.8. wget--no-check-certificatehttps://repo.huaweicloud.com/java/jdk/8u151-b12/jdk-8u151-linux-x64.tar.gz2 Exécutez la commande suivante pour décompresser le package d'installation JDK1.8 téléchargé. . tar-zxvfjdk-8u151-linux-x64.tar.gz3 Déplacez et renommez le package JDK. mvjdk1.8.0_151//usr/java84. Configurez les variables d'environnement Java. écho'

Utiliser PHP pour réaliser des traitements de données à grande échelle : Hadoop, Spark, Flink, etc. Utiliser PHP pour réaliser des traitements de données à grande échelle : Hadoop, Spark, Flink, etc. May 11, 2023 pm 04:13 PM

Alors que la quantité de données continue d’augmenter, le traitement des données à grande échelle est devenu un problème auquel les entreprises doivent faire face et résoudre. Les bases de données relationnelles traditionnelles ne peuvent plus répondre à cette demande pour le stockage et l'analyse de données à grande échelle, les plateformes informatiques distribuées telles que Hadoop, Spark et Flink sont devenues les meilleurs choix. Dans le processus de sélection des outils de traitement de données, PHP devient de plus en plus populaire parmi les développeurs en tant que langage facile à développer et à maintenir. Dans cet article, nous explorerons comment exploiter PHP pour le traitement de données à grande échelle et comment

See all articles