Yelp/mrjob là dự án Python với 2.6k sao. Run MapReduce jobs on Hadoop or Amazon Web Services
Tóm tắt dựng từ metadata GitHub của chính dự án — chưa có bài review TopGit. Trang sẽ tự động cập nhật khi bài review đầy đủ được xuất bản.
VÌ SAO CHƯA CÓ REVIEW
TopGit viết bài đầy đủ cho repo có nhiều sao nhất và được yêu cầu nhiều nhất. Trang này là snapshot trong thời gian chờ — xem README gốc ở tab READ ME.
mrjob fully supports Amazon's Elastic MapReduce (EMR) service, which allows you
to buy time on a Hadoop cluster on an hourly basis. mrjob has basic support for Google Cloud Dataproc (Dataproc)
which allows you to buy time on a Hadoop cluster on a minute-by-minute basis. It also works with your own
Hadoop cluster.
Some important features:
Run jobs on EMR, Google Cloud Dataproc, your own Hadoop cluster, or locally (for testing).
Write multi-step jobs (one map-reduce step feeds into the next)
Easily launch Spark jobs on EMR or your own Hadoop cluster
Duplicate your production environment inside Hadoop
Upload your source tree and put it in your job's $PYTHONPATH
Run make and other setup scripts
Set environment variables (e.g. $TZ)
Easily install python packages from tarballs (EMR only)
Setup handled transparently by mrjob.conf config file
Automatically interpret error logs
SSH tunnel to hadoop job tracker (EMR only)
Minimal setup
To run on EMR, set $AWS_ACCESS_KEY_ID and $AWS_SECRET_ACCESS_KEY
To run on Dataproc, set $GOOGLE_APPLICATION_CREDENTIALS
No setup needed to use mrjob on your own Hadoop cluster
Installation
pip install mrjob
As of v0.7.0, Amazon Web Services and Google Cloud Services are optional
depedencies. To use these, install with the aws and google targets,
respectively. For example:
pip install mrjob[aws]
A Simple Map Reduce Job
Code for this example and more live in mrjob/examples.
.. code-block:: python
"""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()
Try It Out!
::
# 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
Setting up EMR on Amazon
create an Amazon Web Services account <http://aws.amazon.com/>_
Get your access and secret keys (click "Security Credentials" on
your account page <http://aws.amazon.com/account/>_)
Set the environment variables $AWS_ACCESS_KEY_ID and
$AWS_SECRET_ACCESS_KEY accordingly
Setting up Dataproc on Google
Create a Google Cloud Platform account <http://cloud.google.com/>_, see top-right
Learn about Google Cloud Platform "projects" <https://cloud.google.com/docs/overview/#projects>_
Select or create a Cloud Platform Console project <https://console.cloud.google.com/project>_
Enable billing for your project <https://console.cloud.google.com/billing>_
Go to the API Manager <https://console.cloud.google.com/apis>_ and search for / enable the following APIs...
Google Cloud Storage
Google Cloud Storage JSON API
Google Cloud Dataproc API
Under Credentials, Create Credentials and select Service account key. Then, select New service account, enter a Name and select Key type JSON.
Install the Google Cloud SDK <https://cloud.google.com/sdk/>_
Advanced Configuration
To run in other AWS regions, upload your source tree, run make, and use
other advanced mrjob features, you'll need to set up mrjob.conf. mrjob looks
for its conf file in:
The contents of $MRJOB_CONF
~/.mrjob.conf
/etc/mrjob.conf
See the mrjob.conf documentation <https://mrjob.readthedocs.io/en/latest/guides/configs-basics.html>_ for more
information.
Introduction to Recommendations and MapReduce with mrjob <http://aimotion.blogspot.com/2012/08/introduction-to-recommendations-with.html>_
(source code <https://github.com/marcelcaraciolo/recsys-mapreduce-mrjob>__)
Social Graph Analysis Using Elastic MapReduce and PyPy <http://postneo.com/2011/05/04/social-graph-analysis-using-elastic-mapreduce-and-pypy>_
Thanks to Greg Killion <mailto:[email protected]>_
(ROMEO ECHO_DELTA <http://www.romeoechodelta.net/>_) for the logo.
Trang TopGit này là một snapshot — tab "Readme" hiển thị nguyên văn README của repo (đã bỏ link, giữ ảnh). Repo GitHub ở github.com/Yelp/mrjob là nguồn chính thức.
Yelp/mrjob có bao nhiêu sao?
Yelp/mrjob có 2.6k sao GitHub — tải lại trang để xem số mới nhất, hoặc xem trực tiếp github.com/Yelp/mrjob. TopGit phản chiếu số sao của GitHub nhưng không cam kết đến từng phút.
Yelp/mrjob có tag gì không?
Bản đồng bộ chưa ghi nhận topic GitHub nào cho Yelp/mrjob. GitHub topics hiển thị ở thanh bên phải trang repo — đó là nơi đáng kiểm tra nhất.
Yelp/mrjob có trang demo không?
Dự án có trang chủ ở http://packages.python.org/mrjob/. Tab "Readme" ở trang này thường có ảnh chụp và hướng dẫn bắt đầu nhanh.
Yelp/mrjob còn đang phát triển không?
Commit gần nhất trên Yelp/mrjob là 4 tháng trước (theo timestamp GitHub). Repo có 580 fork — một chỉ báo về mức độ quan tâm của cộng đồng.
Yelp/mrjob viết bằng ngôn ngữ gì?
Yelp/mrjob chủ yếu viết bằng Python. Trường "language" của GitHub dựa trên phần lớn byte ở nhánh mặc định.
Đọc đầy đủ README ở tab phía trên.
mrjob có đáng để bạn bỏ thời gian?
ChatGPT, Claude và Perplexity đều đọc được trang này. Hỏi thử xem họ nghĩ gì về mrjob.