mrjob ساده ترین راه برای نوشتن برنامه های پایتون است که روی Hadoop اجرا می شوند. اگر از mrjob استفاده میکنید، میتوانید کد خود را به صورت محلی بدون نصب Hadoop آزمایش کنید یا آن را روی خوشه مورد نظر خود اجرا کنید.
علاوه بر این، mrjob دارای ادغام گسترده با Amazon Elastic MapReduce است. پس از راهاندازی، اجرای کار در فضای ابری به همان اندازه که اجرای آن روی لپتاپ آسان است، آسان است.
در اینجا تعدادی از ویژگی های mrjob وجود دارد که نوشتن مشاغل MapReduce را آسان تر می کند:
- تمام کدهای MapReduce را برای یک کار در یک کلاس نگه دارید
- به راحتی کدها و وابستگی های داده را در زمان اجرا آپلود و نصب کنید
- فرمت های ورودی و خروجی را با یک خط کد تغییر دهید
- لاگ های خطا را برای ردیابی پایتون به طور خودکار دانلود و تجزیه کنید
- فیلترهای خط فرمان را قبل یا بعد از کد پایتون خود قرار دهید
اگر نمیخواهید یک متخصص Hadoop باشید اما به قدرت محاسباتی MapReduce نیاز دارید، mrjob ممکن است برای شما مناسب باشد.
چرا به جای X از mrjob استفاده کنیم؟
جایی که X هر کتابخانه دیگری است که به Hadoop و Python کمک می کند تا با یکدیگر ارتباط برقرار کنند.
mrjob بیش از هر چارچوب یا کتابخانه دیگری که ما از آن آگاه هستیم، مستندات بیشتری دارد. اگر در حال خواندن این مطلب هستید، احتمالاً این اولین تماس شما با کتابخانه است، به این معنی که در موقعیت عالی برای ارائه بازخورد ارزشمند در مورد اسناد ما هستید. اگر چیزی نامشخص یا سخت است به ما اطلاع دهید.
mrjob به شما امکان می دهد کد خود را بدون Hadoop اجرا کنید. سایر فریم ورک ها برای عملکرد به یک نمونه Hadoop نیاز دارند. اگر از mrjob استفاده می کنید، می توانید تست های مناسبی برای کد MapReduce خود بنویسید.
mrjob یک رابط سازگار در هر محیطی که پشتیبانی می کند فراهم می کند. مهم نیست که به صورت محلی اجرا میشوید، در فضای ابری یا در کلاستر خود، کد پایتون شما اصلاً تغییر نمیکند.
mrjob بسیاری از ماشین آلات دریافت کد و داده به و از کلاستری که کار شما روی آن اجرا می شود را کنترل می کند. برای نصب وابستگی ها یا آپلود فایل ها به یک سری اسکریپت نیاز ندارید.
mrjob اشکال زدایی را بسیار ساده تر می کند. به صورت محلی، میتواند یک پیادهسازی MapReduce ساده را در فرآیند اجرا کند، بنابراین شما به جای یک فایل لاگ مبهم، ردیابی را در کنسول خود دریافت میکنید. در یک خوشه یا در Elastic MapReduce، گزارشهای خطا را برای ردیابی پایتون و سایر دلایل احتمالی شکست تجزیه میکند.
mrjob به طور خودکار داده های وارد و خارج از هر کار را سریالی و غیر سریالی می کند، بنابراین نیازی به انجام مداوم json.loads()و json.dumps().
چرا به جای mrjob از X استفاده کنیم؟
جنبه دیگر سهولت استفاده mrjob این است که سطح دسترسی به Hadoop API را که Dumbo و Pydoop دارند را به شما نمی دهد. خیلی ساده شده است. اما این باعث نشده است که چندین شرکت از جمله Yelp از آن برای بلند کردن وسایل سنگین روزانه استفاده نکنند. برای موارد رایج (و بسیاری از موارد غیر معمول)، انتزاعات به جای اینکه مانع شوند کمک می کنند.
اگر از typedbytes استفاده کنید، سایر کتابخانه ها می توانند سریعتر باشند. چندین تلاش برای ادغام آن با mrjob صورت گرفته است، و ممکن است در نهایت فرود بیاید، اما هنوز وجود ندارد.
دیدگاهها (0)