उन लोगों के लिए जो Apache HBase (संस्करण 0.90 और बाद के संस्करण) में नए हैं, सिस्टम द्वारा उपयोग किए जाने वाले नेटवर्क पोर्ट का कॉन्फ़िगरेशन थोड़ा भारी हो सकता है।
इस ब्लॉग पोस्ट में, आप सीखेंगे कि विभिन्न HBase प्रक्रियाओं द्वारा उपयोग किए जाने वाले सभी TCP पोर्ट और उनका उपयोग कैसे और क्यों किया जाता है (सभी एक ही स्थान पर) - व्यवस्थापकों की समस्या निवारण और फ़ायरवॉल सेटिंग्स सेट करने में मदद करने के लिए, और नए डेवलपर्स को डिबग करने में मदद करने के लिए।
एक विशिष्ट HBase क्लस्टर में एक सक्रिय मास्टर, एक या कई बैकअप मास्टर और क्षेत्र सर्वर की एक सूची होती है। बैकअप मास्टर स्टैंडबाय मास्टर हैं जो अगले सक्रिय होने की प्रतीक्षा कर रहे हैं। सक्रिय होने से पहले, वे किसी भी पोर्ट पर नहीं सुनते हैं। (इस बारे में और जानें कि HBase मापनीयता यहां कैसे काम करती है।)
क्लस्टर में प्रत्येक सर्वर क्लाइंट और/या अन्य HBase सर्वर से अनुरोध के लिए एक मुख्य पोर्ट को सुनता है। प्रत्येक सर्वर में एक एम्बेडेड जेट्टी वेब UI सर्वर भी होता है।
निम्नलिखित आरेख विभिन्न घटकों के बीच संचार को दर्शाता है। (नीले घटक HBase क्लस्टर से संबंधित होते हैं, आमतौर पर फ़ायरवॉल के पीछे; ग्रे घटक बाहरी क्लाइंट होते हैं, आमतौर पर HBase क्लस्टर फ़ायरवॉल के बाहर; हरा घटक एक वेब ब्राउज़र होता है, आमतौर पर फ़ायरवॉल के बाहर भी।)
- क्लाइंट एप्लिकेशन मास्टर और मेटा क्षेत्र सर्वर के स्थान का पता लगाने के लिए Apache ZooKeeper से बात करते हैं (रूट क्षेत्र HBase संस्करण 0.96 में हटा दिया गया है)।
- क्लाइंट एप्लिकेशन किसी तालिका को पढ़ने/लिखने/स्कैन करने के लिए क्षेत्र सर्वर से बात करते हैं।
- क्लाइंट एप्लिकेशन किसी मौजूदा तालिका के बारे में जानकारी प्राप्त करने के लिए मास्टर से बात करते हैं, गतिशील रूप से एक तालिका बनाते/निकालते हैं, एक कॉलम परिवार जोड़ते/निकालते हैं।
- मास्टर रीजन सर्वर से ओपन/क्लोज़/मूव/स्प्लिट/फ्लश/कॉम्पैक्ट रीजन के लिए बात करता है।
- मास्टर सक्रिय मास्टर और मेटा क्षेत्र सर्वर स्थान को संग्रहीत करने, लॉग विभाजन कार्य बनाने, क्षेत्र सर्वर की स्थिति को ट्रैक करने के लिए ज़ूकीपर में डेटा डालता है।
- क्षेत्र सर्वर लॉग विभाजन करने, मास्टर स्थान और क्लस्टर स्थिति को ट्रैक करने के लिए चिड़ियाघरकीपर में डेटा पढ़ते हैं।
- क्षेत्र सर्वर स्टार्ट-अप, लोड होने की रिपोर्ट करने के लिए मास्टर से बात करते हैं।
- कभी-कभी, क्षेत्र सर्वर किसी क्षेत्र की स्थिति की जांच करने के लिए मेटा क्षेत्र से बात करते हैं, क्षेत्र विभाजन में नए बेटी क्षेत्र बनाते हैं।
- REST क्लाइंट HBase को एक्सेस करने के लिए REST सर्वर से बात करते हैं।
- थ्रिफ्ट क्लाइंट HBase को एक्सेस करने के लिए थ्रिफ्ट सर्वर से बात करते हैं।
- उपयोगकर्ता ब्राउज़र से मास्टर वेब UI तक पहुंचते हैं।
- उपयोगकर्ता क्षेत्र सर्वर के वेब UI को ब्राउज़र से एक्सेस करते हैं।
- उपयोगकर्ता ब्राउज़र से REST सर्वर के वेब UI तक पहुंचते हैं।
- उपयोगकर्ता थ्रिफ्ट सर्वर के वेब UI को ब्राउज़र से एक्सेस करते हैं।
कुछ HBase क्लस्टर में REST या थ्रिफ्ट सर्वर की सूची हो सकती है। REST सर्वर और थ्रिफ्ट सर्वर दोनों वैकल्पिक हैं; इनकी आवश्यकता केवल तभी होती है जब आप अपने HBase क्लस्टर को REST/थ्रिफ्ट एक्सेस प्रदान करना चाहते हैं। HBase के लिए, वे केवल अन्य क्लाइंट अनुप्रयोग हैं। अन्य HBase सर्वरों की तरह, वे क्लाइंट अनुरोधों के लिए एक मुख्य पोर्ट और एक वेब UI पोर्ट को भी सुनते हैं।
निम्न तालिका क्लाइंट एप्लिकेशन द्वारा HBase क्लस्टर से बात करने के लिए उपयोग किए जाने वाले पोर्ट, क्लस्टर जानकारी की जांच करने के लिए उपयोगकर्ता और एक दूसरे से बात करने के लिए विभिन्न HBase घटकों को दिखाती है।
घटक | कॉन्फ़िगरेशन पैरामीटर | डिफ़ॉल्ट मान | प्रयुक्त स्थान |
ZooKeeper |
| 2181 | 1,5,6 |
Master |
| 60000 | 3,7 |
Master |
| 60010 | 11 |
क्षेत्र सर्वर |
| 60020 | 2,4,8 |
क्षेत्र सर्वर |
| 60030 | 12 |
REST सर्वर |
| 8080 | 9 |
REST सर्वर |
| 8085 | 13 |
थ्रिफ्ट सर्वर |
| 9090 | 10 |
थ्रिफ्ट सर्वर |
| 9095 | 14 |
* HBase संस्करण 0.94.5 में पेश किया गया। उन्हें कमांड लाइन विकल्प --infoport
. के साथ भी निर्दिष्ट किया जा सकता है संबंधित सर्वर को प्रारंभ करते समय।
** उन्हें कमांड लाइन विकल्प -p
के साथ भी निर्दिष्ट किया जा सकता है संबंधित सर्वर को प्रारंभ करते समय।
एक पोर्ट तालिका में सूचीबद्ध नहीं है - एचडीएफएस नामेनोड पोर्ट - क्योंकि यहां इसके लिए एक अलग पैरामीटर नहीं है। इसे "hbase.root" के एक भाग के रूप में कॉन्फ़िगर किया गया है (उदाहरण के लिए, "hdfs://namenode.foobar.com:35802/hbase") HDFS NameNode पोर्ट के साथ 35802 में कॉन्फ़िगर किया गया है। जब तक अन्यथा "के मान में निर्दिष्ट नहीं किया जाता है। hbase.root", डिफ़ॉल्ट 8020 है।
मुख्य पोर्ट के अलावा, क्लस्टर में प्रत्येक सर्वर (ज़ूकीपर को छोड़कर) एक वेब यूआई पोर्ट को भी सुनता है। एक वेब यूआई अपने संबंधित सर्वर में एक एम्बेडेड जेट्टी सर्वर है। वेब यूआई संबंधित सर्वर के बारे में मानव-पठनीय जानकारी प्रदान करता है - उदाहरण के लिए, थ्रेड डंप और स्थानीय लॉग। मास्टर वेब UI में सभी क्षेत्र सर्वर वेब UI के लिंक होते हैं, जो इसे HBase क्लस्टर की वर्तमान स्थिति की जाँच करने के लिए एकदम सही प्रवेश बिंदु बनाता है।
REST/थ्रिफ्ट सर्वर HBase के लिए वैकल्पिक प्रॉक्सी हैं। वे HBase से उसी तरह बात करते हैं जैसे अन्य HBase क्लाइंट अनुप्रयोग करते हैं। हालांकि, वे आम तौर पर अन्य HBase सर्वरों के साथ HBase क्लस्टर के अंदर तैनात किए जाते हैं।
क्लाइंट एप्लिकेशन आमतौर पर HBase क्लस्टर से बाहर तैनात किए जाते हैं। आरईएसटी/थ्रिफ्ट क्लाइंट क्लस्टर के बाहर भी तैनात किए जाते हैं। यदि HBase क्लस्टर फ़ायरवॉल के पीछे है, तो ये संबंधित पोर्ट डिफ़ॉल्ट रूप से खुले होने चाहिए:
क्लाइंट एप्लिकेशन को एक्सेस करने की अनुमति देने के लिए:
- 2181 (hbase.zookeeper.property.clientPort)
- 60000 (hbase.master.port)
- 60020 (hbase.regionserver.port)
आरईएसटी/थ्रिफ्ट क्लाइंट एक्सेस की अनुमति देने के लिए:
- 8080 (hbase.rest.port)
- 9090 (hbase.regionserver.thrift.port)
यदि फ़ायरवॉल से वेब UI एक्सेस की अनुमति है, तो संबंधित वेब UI पोर्ट भी खुले होने चाहिए:
- 60010 (hbase.master.info.port)
- 60030 (hbase.regionserver.info.port)
- 8085 (hbase.rest.info.port)
- 9095 (hbase.thrift.info.port)
निष्कर्ष
इस पोस्ट में, आपको HBase के आंतरिक घटकों, क्लाइंट अनुप्रयोगों और उपयोग के मामलों द्वारा व्यवस्थित उपयोगकर्ताओं/प्रशासक द्वारा उपयोग किए जाने वाले पोर्ट का सारांश मिला है।
हालाँकि, क्योंकि HBase HDFS के शीर्ष पर चलता है, इसलिए HDFS पोर्ट को जानना भी महत्वपूर्ण है। MapReduce को HBase के साथ चलाने के लिए, आपको MapReduce पोर्ट को भी जानना होगा। इन हडूप संबंधित बंदरगाहों के लिए, कृपया Hadoop डिफ़ॉल्ट पोर्ट त्वरित संदर्भ देखें ।
जिमी जियांग प्लेटफॉर्म टीम के एक सॉफ्टवेयर इंजीनियर हैं।
> प्रश्न हैं? उन्हें HBase के सामुदायिक फ़ोरम में पोस्ट करें।