hive - हम कुल संख्या का फैसला कैसे कर सकते हैं एक हाइव टेबल के लिए बाल्टी का




numbers formula (2)

मैं हूउप में थोड़ा नया हूँ मेरे ज्ञान के मुताबिक बाल्ट्स तय नहीं हैं I हाइव टेबल और विभाजन में विभाजन की संख्या का उपयोग करता है कुल संख्या के रूप में उसी के बारे में तालिका बनाने के दौरान निर्धारित बाल्टी का तो क्या कोई मुझे बता सकता है कि कुल संख्या की गणना कैसे करें एक हाइव टेबल में बाल्टी का क्या बाल्टी की कुल संख्या की गणना के लिए कोई सूत्र है?


दस्तावेज़ लिंक से

सामान्य तौर पर, बाल्टी संख्या को अभिव्यक्ति हैश_फंक्शन (बाल्टीिंग_column) मॉडेम num_buckets द्वारा निर्धारित किया जाता है। (वहाँ एक '0x7FFFFFFF वहाँ भी है, लेकिन वह महत्वपूर्ण नहीं है)। हैश_फंक्शन, बाल्टीिंग कॉलम के प्रकार पर निर्भर करता है। एक पूर्णांक के लिए, यह आसान है, हैश_int (i) == i। उदाहरण के लिए, यदि user_id एक इंट थे, और 10 बाल्टी थी, तो हम उम्मीद करते थे कि सभी यूजर_आईडी के 0 में होने वाले बाल्टी 1 में हो, सभी यूज़र_आईड, जो 1 के अंत में बाल्टी 2 में हो, आदि अन्य डेटाटेप्स के लिए, यह थोड़ा मुश्किल विशेष रूप से, बिगिनटी के हैश BIGINT के समान नहीं है। और एक स्ट्रिंग या एक जटिल डेटाटाइप के हैश कुछ संख्या है जो मूल्य से प्राप्त होगा, लेकिन कुछ भी नहीं मानवीय पहचानने योग्य। उदाहरण के लिए, यदि user_id एक STRING थे, तो user_id की बाल्टी 1 में शायद 0 में समाप्त नहीं होगा। सामान्य तौर पर, हैश पर आधारित पंक्तियों को वितरित करने से आपको बाल्टी में एक भी वितरण प्राप्त होगा।


अगर आप जानना चाहते हैं कि आपको अपने CLUSTER BY क्लॉज में कितने बाल्टी चुननी चाहिए, मेरा मानना ​​है कि ऐसा कोई संख्या चुनने के लिए अच्छा है, जो बाल्टी में हैं जो आपके एचडीएफएस ब्लॉक आकार के नीचे या उसके ठीक नीचे हैं।

इससे एचडीएफएस को उन फ़ाइलों को स्मृति आवंटित करने से बचने में मदद मिलनी चाहिए जो ज्यादातर खाली हैं।

इसके अलावा एक संख्या चुनें जो कि दो की शक्ति है

आप अपने एचडीएफएस ब्लॉक आकार को इस प्रकार देख सकते हैं :

hdfs getconf -confKey dfs.blocksize