के लिए मैप्रेडस का उपयोग करके अद्वितीय उपयोगकर्ताओं की गणना करना मैं अपने जावा एपेंगेन ऐप पर प्रति दिन अद्वितीय उपयोगकर्ताओं की संख्या गिनने की कोशिश कर रहा हूं। मैंने इस गणना को ऑफ़लाइन करने के लिए जावा एपेंजिन के लिए मैप्रिडस फ्रेमवर्क (mapreduce.appspot.com) का उपयोग करने का निर्णय लिया है। मैंने एक नक्शा बनाने में कामयाब रहा है जो नौकरी को कम करता है जो मेरी सभी संस्थाओं के माध्यम से जाता है जो एकल उपयोगकर्ता सत्र कार्यक्रम का प्रतिनिधित्व करते हैं। मैं एक साधारण काउंटर का भी उपयोग कर सकता हूं। मेरे पास कई प्रश्न हैं हालांकि:जावा Appengine
1) मैं प्रत्येक उपयोगकर्ता आईडी के लिए केवल एक बार काउंटर कैसे बढ़ा सकता हूं? मैं वर्तमान में उन इकाइयों पर मैपिंग कर रहा हूं जिनमें उपयोगकर्ता आईडी संपत्ति है लेकिन इनमें से कई इकाइयों में एक ही उपयोगकर्ता आईडी हो सकती है, तो मैं इसे केवल एक बार कैसे गिन सकता हूं?
2) एक बार मेरे पास इन काउंटरों में संग्रहीत नौकरी के परिणाम हैं - मैं उन्हें डेटास्टोर में कैसे बना सकता हूं? मैं मैप्रिडस के स्टेटस पेज पर काउंटर के परिणाम देखता हूं लेकिन मैं चाहता हूं कि ये परिणाम स्वचालित रूप से डेटास्टोर पर बने रहें।
विचार?
"हर बार जब आप एक अनूठी इकाई पाते हैं" - आप कैसे जानते हैं कि आप जिस इकाई को देख रहे हैं (वर्तमान में मैपिंग) वह है जिसे आपने पहले देखा है? – aloo
मान लें कि आपका मैपर केवल यूजर आईडी एबीसी 123 के साथ इकाई को दिया गया था। पहली चीज जो आप करेंगे, यह देखने के लिए जांच करें कि क्या एबीसी 123 के लिए अनन्य काउंटी इकाई है या नहीं। यदि ऐसा है, तो आप जानते हैं कि आप इसके लिए पहले से ही जिम्मेदार हैं, और आप कुछ भी नहीं करेंगे। यदि नहीं है, तो आप एबीसी 123 के लिए एक अनन्य काउंटी इकाई बनायेंगे। आपके सभी इकाइयों के लिए ऐसा करने के बाद, आपके पास प्रत्येक उपयोगकर्ता के लिए बिल्कुल एक अद्वितीय काउंटी इकाई होगी। फिर आप केवल अनन्य काउंटी इकाइयों की एक और सीधी गिनती कर सकते हैं। –
आह इसलिए इसमें डेटास्टोर में एक और इकाई प्रकार बनाना शामिल है ... और दो पास चल रहा है। उचित लगता है लेकिन एक आसान समाधान की उम्मीद कर रहा था – aloo