میثم پورگنجی
میثم پورگنجی
خواندن ۱ دقیقه·۵ سال پیش

چطور با اینتلیج جاب اسپارک رو دیباگ کنیم؟

انگشت کردن یک سوراخ

من چند وقتی هست که از بک‌اند سوئیچ کردم به دیتا و در این مسیر الان رسیدم به اسکالا و اسپارک. یکی از چیزایی که این وسط با گذشته تفاوت داره راه و روش دیباگ کردنه. قبلا توی php یا حتی Go، خیلی راحت متغیر رو چاپ می‌کردم و خودم خلاص و جونم آزاد :)) روشم درست نبود ولی جواب میداد و حداقل تو php از سر و کله زدن با اون xdebug لعنتی بهتر بود :)). ولی امروز به جایی رسیدم که واقعا دیگه نمیشد. باید بر می‌گشتم به راه و روشی که دکتر همتی برای سی++ مجبورمون می‌کرد: دیباگ کردن آدمی‌زادی.

خب؟

بعد از گشتن برای کانفیگ دیباگر به این لینک رسیدم؛ ماجرا خیلی ساده‌ست!

۱. اول برنامه رو پکیج کنید. طبعا من تو اسکالا از sbt استفاده می‌کنم و این کار با `sbt package` انجام میشه.

۲. موقع سابمیت کردن جاب، سوراخ رو برای دیباگر باز کنید. این کار با اجرای

export SPARK_SUBMIT_OPTS=-agentlib:jdwp=transport=dt_socket,server=y,suspend=n,address=5005


داخل خط فرمان انجام میشه.

۳. یه دیباگر ریموت ایجاد کنید. برای این کار از منوی Run گزینه‌ی Edit Configurations رو انتخاب کنید و با کلیک روی + گزینه‌ی Remote رو انتخاب کنید و اوکی کنید (تصویر زیر).

۴. پکیج رو با آدرس کامل و همه‌ی بند و بساطش سابمیت کنید. برای پکیج من اینطور چیزی میشه:

spark-submit --packages org.apache.spark:spark-streaming-kafka-0-10_2.11:2.4.3 $(pwd)/target/scala-2.11/stream_2.11-0.1.jar


۵. داخل Intellij IDEA از منوی Run گزینه‌ی Run Filan رو انتخاب کنید که Filan همون اسمیه که تو مرحله‌ی ۳ انتخاب کردید.

الان هر جا که بریک‌پوینت گذاشته باشید، تو پنجره‌ی دیباگ می‌تونید ببینید ماجرا چیه و از چه قراره.



پ.ن: علی جان اگه این پست رو خوندی، من برای نوشتن توضیح اختیاری تصویر به مشکل خوردم. وقتی سر جاش کلیک می‌کنم و یچی می‌نویسم یدفه صفحه سفید میشه. فایرفاکس آخرین نسخه روی اوبونتو ۱۸.۰۴.

sparkintellij ideaبرنامه‌نویسیدیباگ
مهندسی داده، برنامه‌نویسی و ریاضی
شاید از این پست‌ها خوشتان بیاید