2017-10-25 20 views
1

HadoopのはHadoopの分散ファイルシステム上のPythonのファイル(の.py)(HDFS)

hadoop jar <jar> 

は、今私が代わりにPythonスクリプトを持って使用して、クラスタ上で直接Javaアプリケーションを実行する可能性を提供するを実行する方法Javaアプリケーション。以下は

は、すべての機能なしの.pyファイルの構造体である、ちょうど左「を削除 - ファイル - からフォルダ」の部分

import os.path 

def transform(): 
    inputfolder = "input" 
    for filename in os.listdir(inputfolder): 
     path = inputfolder + "\\" + filename 
     os.remove(path) 
def main(): 
    transform() 
if __name__ == "__main__": main() 

同様の.pyファイルを実行する方法はあります私は.jarファイルを実行する方法に?

私はPythonとHadoopの新機能です。私のアプローチが完全に消えていて、意味をなさないと思われるなら、私はどんな種類の説明にも満足しています!

+0

'のHadoop jar'は、MapReduceジョブを実行するために特別であるため、地図削減ジョブを作成します。 Pythonを使用してHDFS上のファイルを操作したいようですか?その場合はhttps://pypi.python.org/pypi/hdfs/ –

答えて

2

Pythonスクリプトをクラスタ全体に配布する場合は、Hadoop Streamingを使用することをお勧めします。

コマンドの基本的な構文は、(https://hadoop.apache.org/docs/r1.2.1/streaming.htmlから)のようになります。

$HADOOP_HOME/bin/hadoop jar $HADOOP_HOME/hadoop-streaming.jar \ 
-input myInputDirs \ 
-output myOutputDir \ 
-mapper myPythonScript.py \ 
-file myPythonScript.py 

は、これは基本的に、あなたのPythonスクリプト

+0

http://www.michael-noll.com/tutorials/writing-an-hadoop-mapreduce-program-in-python/をご覧ください。これについての素晴らしいチュートリアルを提供します。 – tk421

+0

ありがとう、それは正しい軌道に私を得た。私はMapReduceジョブとして動作するように私のpythonスクリプトを調整する必要があります。 – Rob

+0

問題はありません。Rob、ちょうどHadoopがstdinを引っ張ってstdoutを出力することでPythonのストリーミングが動作することを覚えておいてください。 – mjrice04

関連する問題