מספר שיחות מסדרון בנושא עשו לי חזק לכתוב קצת על מקבול ו- R.
(1) עם פחות מ- 5TB של נתונים, אני לא רואה סיבה להיכנס לעולם של מערכות קבצים מבוזרות כמו Hadoop. שרתי SQL או NoSQL (לנתונים שזורמים מהר) יעשו יופי של עבודה.
(2) אני חושב שנדיר ובלתי סביר לנתח נתונים ישירות מעל מערכת קבצים מבוזרת. סביר הרבה יותר שרגע לפני הניתוח יהיה שלב של הבנייה של הנתונים, אז אפקטיבית הניתוח ייעשה מעל בסיס נתונים SQL כלשהו, גם אם הנתונים הגלמיים נקלטו ב- Hadoop.
אם לחבר את (1) ו-(2), אז גם אם מנהל ה- IT שלכם החליט שהוא צריך Hadoop בשביל להתמודד עם מהירות הכניסה של הנתונים, או הנפח האדיר שלהם, הרי שבשלב הניתוח יעמוד מולכם ה-SQL הותיק.
(3) אם אתם מעוניינים למקבל את ניתוח הנתונים עצמו (בלי קשר לאופן בו הם שמורים), ואתם לא קשורים רגשית לכלי מקבול ספציפי (Hadoop, Condor, SGE,SQS...) אני ממליץ להשתמש
ב- R עצמו לצורך ניהול תקשורת המחשבים בצביר שלכם. ספציפית חבילת parallel. זה אומנם דורש ידע בניהול מערכת, אבל הידע הזה נדרש כמעט בכל כלי שבו תבחרו. כך תוכלו להוריד משימות למכונות מתוך R, ולהינות מחבילות אשר כבר משתמשות באלגוריתמים מבוזרים (תסתכלו
בחבילות שקוראות ל- snow (גרסה קדומה של parallel) בשביל לדעת איזה חבילה כבר מוקבלה עבורכם).
(4) למרות שאפשר לנהל את הבניית הנתונים מ- Hadoop לתוך SQL מ- R, זה נראה לי לא טבעי. סביר יותר להשתמש באחד מן הכלים הרבים מעל Hadoop.
Hive לדוגמה מאפשר לכם לתת פקודות SQL שיתורגמו לתחביר Hadoop. לרשימה מלאה יותר של שכבות תחביר מעל Hadoop הציצו
כאן.
אשמח לשמוע מנסיונכם בנושא.
יונתן
--