Javaコードにhadoopファイルシステム操作(例:hdfs mkdir
)があります。 java -cp
を使ってJavaプログラムを実行しようとすると、ディレクトリはLinuxのローカルファイルシステムで作成されています。だから、私はhadoop jarコマンドでプログラムを実行し、ディレクトリはhdfsで作成されています。今私はhadoop jarコマンドを使用してJavaプログラム全体を実行する予定です。私は自分のHDFSのためのコードのスニペットは、ファイル操作場合、ローカルフォルダからファイルを読み込むか、下Runtime.getRuntime().exec(some linux command);
を実行するときに、特にのHadoop jarコマンドを使用して、任意の問題があるだろう疑問に思ってhadoop jarコマンドを使って通常のJavaプログラムを実行することはできますか?
Configuration conf = new Configuration();
FileSystem fs = FileSystem.get(conf);
boolean res = fs.mkdirs(directory path);
明らかに、hadoop jarコマンドを使用すると、外部依存jarを指定できないようです。私はマップを減らすコードはありません、私はいくつかのhdfsファイル操作を持っていることに注意してください。 –
はい、外部依存型ジャーは、hadoop環境で実行しているときにも使用できます。それはさまざまな方法で行うことができます。すべての依存関係を持つuber jarを作成するか、または各ノードに依存するjarを配布し、パスを$ HADOOP_CLASSPATH変数に定義します。 –
私は管理者権限を持っていないので、私は別の解決策を試していました。太った瓶を作りたいと思っていません。それは、私の展開の瓶が大きくなり、冗長になるからです。私はHDFSに直接書き込むことができるように新しいConfiguration()オブジェクトの設定を指定することができますか? –