2016-07-05 3 views
1

私はJavaアプリケーションを開発しています。このアプリケーションは結果データをHDFSに保存しています。 Javaアプリケーションは、私のWindowsマシンで実行する必要があります。hadoop設定を読むJavaプログラムのUnixパスからファイル

現在、core-site、hdfs-site.xmlなどのHadoop設定ファイルをWindowsマシンにコピーしてテストしました。以下は私の設定のコードスニペットです。

config.addResource(new Path("C:\\Hadoop\\core-site.xml")); 
config.addResource(new Path("C:\\Hadoop\\hdfs-site.xml")); 
config.addResource(new Path("C:\\Hadoop\\mapred-site.xml")); 
config.addResource(new Path("C:\\Hadoop\\yarn-site.xml")); 

私のWindowsマシンから以下のように設定ファイルをunixサーバーから直接ロードする方法はありますか?

config.addResource(new Path("/opt/hdp/2.3.4.7-4/hadoop/conf/core-site.xml")); 
config.addResource(new Path("/opt/hdp/2.3.4.7-4/hadoop/conf/hdfs-site.xml")); 
config.addResource(new Path("/opt/hdp/2.3.4.7-4/hadoop/conf/mapred-site.xml")); 
config.addResource(new Path("/opt/hdp/2.3.4.7-4/hadoop/conf/yarn-site.xml")); 

親切に私を助けてください。

+1

あなたのWindowsマシンにはUnixサーバーのディスクがマウントされていますか(たとえばSamba経由)ですか?そうでない場合、答えはノーです。 –

+0

No.:私のローカルWindowsマシンにはUNIXサーバディスクはマウントされていません。 –

+1

あなたが何を求めているのかははっきりしていません。 Windows上のUnixサーバからファイルを読み込む魔法はありません。 –

答えて

1

理論的には、これをいくつかの作業で行うことができます。 SAMBAまたはNFSの2つの可能性があります。どちらの場合も、Unixサーバはサーバコンポーネントを実行して、必要なファイルシステムをエクスポートするように設定する必要があり、エクスポートされたファイルシステムへのアクセスを許可する認証証明書が必要になります。

SAMBAについては、this questionの提案を使用してネットワークドライブをマッピングできる場合があります。ドライブが既にマップされているかどうかを検出するコードを記述し、ドライブ文字の割り当てに対処する必要があります。

NFSの場合、Java用のNFSクライアントライブラリが必要です。

3番目の可能性は、FTPまたは(より良い)SCP経由でUnixサーバーからファイルをコピーすることです。

0

hadoop/hdfsインスタンスを埋め込むようです。ほとんどのhdfsインスタンスはおそらくデータセンター内ではおそらくマルチボックスである可能性があります。あなたは適切なjarファイル、および設定の権限を含める場合は、URLを使って名前ノードを経由してHDFSと相互作用することができるようになります。

HDFS://名前ノード:ポート/パス/あなた/ファイル/へ

それがある場合テストのためにプロードクラスターから独立したローカルインスタンスをスピンアップするのは意味をなさないが、それはおそらく自身の独立した設定を必要とするだろう。

関連する問題