1

将来のプロジェクトの1つとして、HadoopとPIGを(過去2日間から!)学び始めました。

実験のために、Hadoop(デフォルトのlocalhost:9000ではHDFS)を疑似分散モードおよびPIG(map-reduceモード)としてインストールしました。

./bin/pigコマンドを入力してPIGを初期化すると、GRUNTコマンドラインが起動し、pigがHDFS(localhost:9000)に接続しているというメッセージが表示され、後でpigを介してHDFSに正常にアクセスできました。

PIGがHDFSにアクセスするための手動構成を実行することを期待していました(さまざまなインターネット記事に従って)。

私の質問は、PIGがデフォルトのHDFS構成(localhost:9000)をどこから特定したかということです。pig.propertiesを確認しましたが、何も見つかりませんでした。将来、デフォルトのHDFS構成を変更する可能性があるため、この情報が必要です。

ところで、OSPATH変数にHADOOP_HOMEとPIG_HOMEが定義されています。

4

2 に答える 2

1

Pig(v0.10.0を想定)をインストールするときは、Pigがにどのように接続するかを指示する必要がありHDFSます。これをどのように行ったかはわかりませんが、通常、これは、hadoopconfdirパスをPIG_CLASSPATH環境変数に追加することによって行われます。設定することもできHADOOP_CONF_DIRます。

gruntシェルを起動している場合、PigはHadoop構成XMLのディレクトリを検索し、fs.default.name(core-site.xml)とmapred.job.tracker(mapred-site.xml)の値、つまりNamenodeとJobTrackerの場所を取得します。

参考までに、Pigシェルスクリプトを見て、envがどのようになっているのかを確認してください。変数が収集され、評価されます。

于 2012-11-18T09:15:01.640 に答える
0

PIGは3つの方法で基盤となるHDFSに接続できます

1- Pigは、実行するHADOOPクライアントを見つけるためにHADOOP_HOMEを使用します。HADOOP_HOMEは、bash_profileエクスポートですでに設定されている必要がありますHADOOP_HOME =〜/ myHadoop / hadoop-2.5.2

2-または、HADOOP_CONF_DIRがすでにセットアップされている可能性があります。このファイルにはHadoop構成のエクスポートHADOOP_CONF_DIR = $ HADOOP_HOME / etc /hadoop/のxmlファイルが含まれています。

3-これらが設定されていない場合は、PIG_HOME / confディレクトリにあるpig.propertiesを変更して、基盤となるhdfsに接続することもできます。

于 2016-01-22T11:36:48.700 に答える