GitHubじゃ!Pythonじゃ!

GitHubからPython関係の優良リポジトリを探したかったのじゃー、でも英語は出来ないから日本語で読むのじゃー、英語社会世知辛いのじゃー

Yelp

mrjob – HadoopまたはAmazon Web ServicesでMapReduceジョブを実行する

投稿日:

HadoopまたはAmazon Web ServicesでMapReduceジョブを実行する http://packages.python.org/mrjob/

mrjob:Python MapReduceライブラリ

mrjobはPython 2.7 / 3.3 +パッケージで、Hadoop Streamingジョブの作成と実行に役立ちます。

安定版(v0.6.2)のドキュメント

開発バージョンのドキュメント

mrjobは、AmazonのElastic MapReduce(EMR)サービスを完全にサポートしています。これにより、Hadoopクラスタで時間単位で時間を購入することができます。 mrjobはGoogle Cloud Dataproc(Dataproc)を基本的にサポートしています。これにより、分単位でHadoopクラスタで時間を購入できます。 また、独自のHadoopクラスタでも動作します。

いくつかの重要な機能:

  • EMR、Google Cloud Dataproc、独自のHadoopクラスタ、またはローカル(テスト用)でジョブを実行します。
  • 複数ステップジョブを作成する(1つのマップ削減ステップが次のステップにフィード)
  • EMRまたは独自のHadoopクラスタでSparkジョブを簡単に起動
  • Hadoop内での本番環境の複製
    • あなたのソースツリーをアップロードし、あなたの仕事の$PYTHONPATH入れてください
    • makeやその他の設定スクリプトを実行する
    • 環境変数を設定する(例: $TZ
    • tarballsから簡単にpythonパッケージをインストールする(EMRのみ)
    • セットアップはmrjob.conf設定ファイルによって透過的に処理されmrjob.conf
  • エラーログを自動的に解釈する
  • SSHトンネルからhadoopジョブトラッカー(EMRのみ)
  • 最小限のセットアップ
    • EMRで実行するには、 $AWS_ACCESS_KEY_ID$AWS_SECRET_ACCESS_KEY設定し$AWS_SECRET_ACCESS_KEY
    • Dataprocを実行するには、 $GOOGLE_APPLICATION_CREDENTIALS設定し$GOOGLE_APPLICATION_CREDENTIALS
    • 独自のHadoopクラスタでmrjobを使用するためのセットアップが不要

インストール

PyPIから:

pip install mrjob

ソースから:

python setup.py install

シンプルマップによるジョブの削減

この例以上のコードはmrjob/examplesます。

"""The classic MapReduce job: count the frequency of words.
"""
from mrjob.job import MRJob
import re

WORD_RE = re.compile(r"[\w']+")


class MRWordFreqCount(MRJob):

    def mapper(self, _, line):
        for word in WORD_RE.findall(line):
            yield (word.lower(), 1)

    def combiner(self, word, counts):
        yield (word, sum(counts))

    def reducer(self, word, counts):
        yield (word, sum(counts))


if __name__ == '__main__':
     MRWordFreqCount.run()

やってみて!

# locally
python mrjob/examples/mr_word_freq_count.py README.rst > counts
# on EMR
python mrjob/examples/mr_word_freq_count.py README.rst -r emr > counts
# on Dataproc
python mrjob/examples/mr_word_freq_count.py README.rst -r dataproc > counts
# on your Hadoop cluster
python mrjob/examples/mr_word_freq_count.py README.rst -r hadoop > counts

AmazonでEMRを設定する

GoogleでDataprocを設定する

高度な設定

他のAWSリージョンで実行make 、ソースツリーをアップロードし、 make実行make 、その他の高度なmrjob機能を使用するには、mrjob.confを設定する必要があります。 mrjobはconfファイルを次の場所から探します:

  • $MRJOB_CONFの内容
  • ~/.mrjob.conf
  • /etc/mrjob.conf

詳細については、mrjob.confのマニュアルを参照しください。

プロジェクトリンク

参照

詳しくは

ロゴのGreg KillionROMEO ECHO_DELTA )に感謝します。







-Yelp

執筆者: