كيفية استخدام خريطة كاساندرا تقلل مع أو ث/س خنزير؟
-
02-10-2019 - |
سؤال
هل يمكن لأحد أن يشرح كيف يعمل MapReduce مع Cassandra .6؟ لقد قرأت من خلال مثال عدد الكلمات ، لكنني لا أتابع ما يحدث في نهاية كاساندرا نهاية مقابل "العميل".
https://svn.apache.org/repos/asf/cassandra/trunk/contrib/word_count/
على سبيل المثال ، لنفترض أنني أستخدم Python و Pycassa ، كيف يمكنني تحميل وظيفة تقليل الخريطة الجديدة ، ثم أسميها؟ هل يجب أن تكون وظيفة تقليل خريطتي هي Java مثبتة على خادم Cassandra؟ إذا كان الأمر كذلك ، كيف أسميها من بيكاسا؟
هناك أيضًا ذكر للخنازير التي تجعل هذا كل شيء أسهل ، لكنني لم يساعد ذلك حقًا.
يمكن أن تستخدم إجابتك التوفير أو أي شيء آخر ، لقد ذكرت للتو Pycassa للدلالة على جانب العميل. أحاول فقط فهم الفرق بين ما يعمل في مجموعة كاساندرا مقابل الخادم الفعلي الذي يقدم الطلبات.
المحلول
من ما سمعت (ومن هنا) ، الطريقة التي يكتب بها المطور برنامج MapReduce الذي يستخدم Cassandra كمصدر للبيانات كما يلي. يمكنك كتابة برنامج MapReduce منتظم (المثال الذي ربطته IS للحصول على إصدار Pure-Java) والجرار المتوفرة الآن توفر CustomInputFormat يسمح لمصدر الإدخال بأن يكون Cassandra (بدلاً من الافتراضي ، وهو Hadoop).
إذا كنت تستخدم Pycassa ، فأنا أقول إنك محظوظًا حتى (1) يضيف مشرف هذا المشروع دعمًا لـ MapReduce أو (2) ترمي بعض وظائف Python معًا التي تكتب برنامج Java MapReduce وتشغيله . هذا الأخير هو بالتأكيد جزء من الاختراق ولكنه سوف يستيقظك وتذهب.
نصائح أخرى
يعرف عن المنطقة ؛ يتجاوز Cassandra InportFormat getLocations () للحفاظ على موقع البيانات
إن الفوز باستخدام إدخال مباشر من Cassandra هو أنه يقوم بتدفق البيانات بكفاءة ، وهو فوز كبير جدًا. يغطي كل تقسيم المدخلات مجموعة من الرموز المميزة وينطلق من القرص في النطاق الترددي الكامل: لا تسعى ، لا استعلام معقد. لا أعتقد أن هذا يعرف عن الموقع - لجعل كل TaskTracker يفضل انقسامات الإدخال من عملية كاساندرا على نفس العقدة.
يمكنك محاولة استخدام Pig باستخدام طريقة الدفق كاختراق حتى يتم وضع المزيد من دعم دفق Hadoop المباشر.