9

分散キャッシュの実際の意味は何ですか? 分散キャッシュにファイルがあるということは、すべてのデータノードでファイルが利用可能であるため、そのデータのノード間通信がないことを意味しますか?それとも、ファイルがすべてのノードのメモリ内にあることを意味しますか? そうでない場合、どのような方法でジョブ全体のファイルをメモリに保持できますか? これは、map-reduce と UDF の両方で実行できますか?

(特に、UDFがハイブクエリに適用されるため、メモリに保持したい比較的小さい構成データがいくつかあります...?)

ありがとう、よろしく、Dhruv Kapur。

4

1 に答える 1

20

DistributedCache は、アプリケーションが必要とするファイルをキャッシュするために Map-Reduce フレームワークによって提供される機能です。ジョブのファイルをキャッシュすると、hadoop フレームワークは、マップ/リデュース タスクが実行されているすべてのデータ ノード (メモリ内ではなくファイル システム内) でそのファイルを使用できるようにします。その後、Mapper または Reducer ジョブでローカル ファイルとしてキャッシュ ファイルにアクセスできます。これで、キャッシュ ファイルを簡単に読み取って、コレクション (配列、ハッシュマップなど) をコードに入力できるようになりました。

https://hadoop.apache.org/docs/r2.6.1/api/org/apache/hadoop/filecache/DistributedCache.htmlを参照してください。

ご不明な点がございましたら、お気軽にお問い合わせください。

UDF コードでキャッシュ ファイルをローカル ファイルとして読み取ることができます。JAVA API を使用してファイルを読み取った後、任意のコレクションにデータを入力するだけです (メモリ内)。

参考URL http://www.lichun.cc/blog/2013/06/use-a-lookup-hashmap-in-hive-script/

-アシッシュ

于 2014-05-20T08:09:39.297 に答える