ホームページ データベース 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
ログイン後にコピー

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

Configuration conf = context.getConfiguration();
Path[] localCacheFiles = DistributedCache.getLocalCacheFiles(conf);
readCacheFile(localCacheFiles[0]);
ログイン後にコピー

其中,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();
}
ログイン後にコピー

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

job.addCacheFile(new Path(inputFileOnHDFS).toUri());
ログイン後にコピー

在mapper的setup()方法中:

Configuration conf = context.getConfiguration();
URI[] localCacheFiles = context.getCacheFiles();
readCacheFile(localCacheFiles[0]);
ログイン後にコピー

其中,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();
}
ログイン後にコピー

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

このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。

ホットAIツール

Undresser.AI Undress

Undresser.AI Undress

リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover

AI Clothes Remover

写真から衣服を削除するオンライン AI ツール。

Undress AI Tool

Undress AI Tool

脱衣画像を無料で

Clothoff.io

Clothoff.io

AI衣類リムーバー

AI Hentai Generator

AI Hentai Generator

AIヘンタイを無料で生成します。

ホットツール

メモ帳++7.3.1

メモ帳++7.3.1

使いやすく無料のコードエディター

SublimeText3 中国語版

SublimeText3 中国語版

中国語版、とても使いやすい

ゼンドスタジオ 13.0.1

ゼンドスタジオ 13.0.1

強力な PHP 統合開発環境

ドリームウィーバー CS6

ドリームウィーバー CS6

ビジュアル Web 開発ツール

SublimeText3 Mac版

SublimeText3 Mac版

神レベルのコード編集ソフト(SublimeText3)

Java エラー: Hadoop エラー、処理方法と回避方法 Java エラー: Hadoop エラー、処理方法と回避方法 Jun 24, 2023 pm 01:06 PM

Java エラー: Hadoop エラー、対処方法と回避方法 Hadoop を使用してビッグ データを処理する場合、タスクの実行に影響を与え、データ処理の失敗を引き起こす可能性のある Java 例外エラーが頻繁に発生します。この記事では、一般的な Hadoop エラーをいくつか紹介し、それらに対処および回避する方法を示します。 Java.lang.OutOfMemoryErrorOutOfMemoryError は、Java 仮想マシンのメモリ不足によって発生するエラーです。 Hadoop の場合

Beego で Hadoop と HBase を使用してビッグ データ ストレージとクエリを実行する Beego で Hadoop と HBase を使用してビッグ データ ストレージとクエリを実行する Jun 22, 2023 am 10:21 AM

ビッグデータ時代の到来に伴い、データの処理と保存の重要性がますます高まっており、大量のデータをいかに効率的に管理、分析するかが企業にとっての課題となっています。 Apache Foundation の 2 つのプロジェクトである Hadoop と HBase は、ビッグ データのストレージと分析のためのソリューションを提供します。この記事では、ビッグデータのストレージとクエリのために Beego で Hadoop と HBase を使用する方法を紹介します。 1. Hadoop と HBase の概要 Hadoop は、オープンソースの分散ストレージおよびコンピューティング システムです。

ビッグデータ処理に PHP と Hadoop を使用する方法 ビッグデータ処理に PHP と Hadoop を使用する方法 Jun 19, 2023 pm 02:24 PM

データ量が増加し続けるにつれて、従来のデータ処理方法ではビッグデータ時代がもたらす課題に対処できなくなります。 Hadoop は、ビッグ データ処理において単一ノード サーバーによって引き起こされるパフォーマンスのボトルネック問題を、分散ストレージと大量のデータの処理を通じて解決する、オープン ソースの分散コンピューティング フレームワークです。 PHP は、Web 開発で広く使用されているスクリプト言語であり、迅速な開発と容易なメンテナンスという利点があります。この記事では、ビッグデータ処理に PHP と Hadoop を使用する方法を紹介します。 HadoopとはHadoopとは

変更された MD5 はオリジナル コンテンツとみなされますか? 変更された MD5 はオリジナル コンテンツとみなされますか? Feb 19, 2024 pm 08:04 PM

md5 を修正した後はオリジナルとみなされますか? インターネット時代では、オリジナルのコンテンツを作成することが重要な価値とリソースになりました。ただし、その後は独創性と侵害が問われます。著作権侵害や盗作を防ぐために、多くの人がさまざまな方法を使ってオリジナルの作品を保護しようとしています。一般的な方法の 1 つは、MD5 アルゴリズムを使用して作業を変更し、「アルゴリズム保護」の効果を達成することです。 MD5 (MessageDigestAlgorithm5) は、一般的に使用されるメッセージ ダイジェスト アルゴリズムです。

ビッグデータの分野での Java の応用を探る: Hadoop、Spark、Kafka、その他のテクノロジー スタックについて理解する ビッグデータの分野での Java の応用を探る: Hadoop、Spark、Kafka、その他のテクノロジー スタックについて理解する Dec 26, 2023 pm 02:57 PM

Java ビッグ データ テクノロジ スタック: Hadoop、Spark、Kafka などのビッグ データ分野における Java のアプリケーションを理解します。データ量が増加し続けるにつれて、今日のインターネット時代ではビッグ データ テクノロジが注目のトピックになっています。ビッグデータの分野では、Hadoop、Spark、Kafka などのテクノロジーの名前をよく耳にします。これらのテクノロジーは重要な役割を果たしており、広く使用されているプログラミング言語である Java もビッグデータの分野で大きな役割を果たしています。この記事では、Java のアプリケーション全般に​​焦点を当てます。

ASUS Flying Fortress 7--オリジナル ASUS Flying Fortress 7--オリジナル Jul 14, 2023 pm 10:09 PM

ASUSのゲーミングノートPCというとRepublic of Gamersが真っ先に思い浮かびますが、Republic of GamersのハイエンドゲーミングノートPCに加えて、ASUSにはFlying FortressシリーズのメインストリームゲーミングノートPCもあります。ゲーマーの間で最も人気のあるASUS Flying Fortress 7はいかがでしょうか。 ASUS フライング フォートレス 7 ASUS のフライング フォートレス シリーズ ノートブックは、大規模なゲームを簡単にプレイできるように設計されており、頑丈さと耐久性に重点が置かれており、ゲーマーや学生の間で常に人気があります。基本構成 まず、このFlying Fortress 7のコア構成のいくつかを見てみましょう。構成表で最も注目すべきはAMD Ryzen73750H+NVIDIA GeForceGTX1660Tiです。

Linux に Hadoop をインストールする方法 Linux に Hadoop をインストールする方法 May 18, 2023 pm 08:19 PM

1: JDK1のインストール 以下のコマンドを実行して、JDK1.8のインストールパッケージをダウンロードします。 wget--no-check-certificatehttps://repo.huaweicloud.com/java/jdk/8u151-b12/jdk-8u151-linux-x64.tar.gz2. 次のコマンドを実行して、ダウンロードした JDK1.8 インストール パッケージを解凍します。 。 tar-zxvfjdk-8u151-linux-x64.tar.gz3. JDK パッケージを移動して名前を変更します。 mvjdk1.8.0_151//usr/java84. Java 環境変数を設定します。エコー'

PHP を使用して大規模なデータ処理を実現します: Hadoop、Spark、Flink など。 PHP を使用して大規模なデータ処理を実現します: Hadoop、Spark、Flink など。 May 11, 2023 pm 04:13 PM

データ量が増加し続けるにつれ、大規模なデータ処理が企業が直面し、解決しなければならない問題となっています。従来のリレーショナル データベースではもはやこの需要を満たすことができず、大規模データの保存と分析には、Hadoop、Spark、Flink などの分散コンピューティング プラットフォームが最適な選択肢となっています。データ処理ツールの選択プロセスでは、開発と保守が簡単な言語として、PHP が開発者の間でますます人気が高まっています。この記事では、大規模なデータ処理に PHP を活用する方法とその方法について説明します。

See all articles