|
Kompyuter injiniring ” fakulteti Kompyuter injiniring
|
bet | 21/27 | Sana | 09.01.2024 | Hajmi | 1,34 Mb. | | #132841 |
Bog'liq 2 deadline BoburjonServer
HS2 TCP rejimi uchun TThreadPoolServer (Thrift-dan) yoki HTTP rejimi uchun Jetty serveridan foydalanadi.
TThreadPoolServer har bir TCP ulanishi uchun bitta ishchi ipni ajratadi. Har bir ip har doim ulanish bilan bog'liq bo'lsa ham, ulanish bo'sh bo'lsa ham. Shunday qilib, bir vaqtning o'zida ko'p sonli ulanishlar tufayli ko'p sonli iplar natijasida yuzaga kelishi mumkin bo'lgan ishlash muammosi mavjud. Kelajakda HS2 TCP rejimi uchun boshqa server turiga o'tishi mumkin, masalan, TThreadedSelectorServer. Bu yerda turli Thrift Java serverlari o'rtasidagi ishlashni taqqoslash haqida maqola .
Transport
Mijoz va server o'rtasida proksi-server kerak bo'lganda HTTP rejimi talab qilinadi
(masalan, yukni muvozanatlash yoki xavfsizlik sabablari uchun). Shuning uchun u TCP rejimi kabi qo'llab-quvvatlanadi. Hive.server2.transport.mode konfiguratsiya xususiyati orqali Thrift xizmatining transport rejimini belgilashingiz mumkin .
Protokol
Protokolni amalga oshirish ketma-ketlashtirish va seriyadan chiqarish uchun javobgardir. HS2 hozirda serializatsiya uchun TBinaryProtocol-dan Thrift protokoli sifatida foydalanmoqda . Kelajakda ko'proq ishlashni baholashga asoslangan TCompactProtocol kabi boshqa protokollar ko'rib chiqilishi mumkin.
Protsessor
Jarayonni amalga oshirish so'rovlarni bajarish uchun dastur mantig'idir. Misol uchun, ThriftCLIService.ExecuteStatement() usuli Hive so'rovini kompilyatsiya qilish va bajarish uchun mantiqni amalga oshiradi.
HS2 ga bog'liqliklar:
Metastore o’rnatilgan (HS2 bilan bir xil jarayonda) yoki masofaviy server sifatida (bu ham Thrift-ga asoslangan xizmat) sifatida sozlanishi mumkin. HS2 so’rovlarni tuzish uchun zarur bo’lgan metama’lumotlar uchun metastore bilan gaplashadi.
Hadoop klasteri HS2 turli ijro dvigatellari (MapReduce/Tez/Spark) uchun jismoniy bajarish rejalarini tayyorlaydi va ishlarni Hadoop klasteriga bajarish uchun yuboradi.
HS2 va uning bog’liqliklari o’rtasidagi o’zaro ta’sir diagrammasini bu erda topishingiz mumkin .
JDBC mijozi
JDBC drayveri mijoz tomonidan HS2 bilan o’zaro aloqada bo’lishi uchun tavsiya etiladi. E’tibor bering, ba’zi foydalanish holatlari mavjud (masalan,Hadoop Hue), bu erda Thrift mijozi to’g’ridan-to’g’ri ishlatiladi va JDBC chetlab o’tiladi. Birinchi so’rovni amalga oshirish uchun API qo’ng’iroqlari ketma-ketligi:
JDBC mijozi (masalan, Beeline) transport ulanishini (masalan, TCP ulanishi) boshlash orqali HiveConnection ni yaratadi va undan keyin SessionHandle ni olish uchun OpenSession API chaqiruvini yaratadi. Seans server tomonidan yaratilgan.
HiveStatement bajariladi (JDBC standartlariga muvofiq) va ExecuteStatement
API chaqiruvi Thrift mijozidan amalga oshiriladi. API chaqiruvida SessionHandle ma’lumotlari so’rov ma’lumotlari bilan birga serverga uzatiladi.
HS2 serveri so’rovni qabul qiladi va drayverdan (bu buyruq protsessor) so’rovlarni tahlil qilish va kompilyatsiya qilishni so’raydi. Haydovchi Hadoop bilan gaplashadigan fon ishni boshlaydi va keyin darhol mijozga javob qaytaradi. Bu ExecuteStatement API asinxron dizayni. Javobda server tomonidan yaratilgan OperationHandle mavjud.
Mijoz so’rovning bajarilishi holatini so’rash uchun HS2 bilan gaplashish uchun OperationHandle-dan foydalanadi.
Manba kodi tavsifi:
Quyidagi bo'limlar manba kodida HiveServer2 ning ba'zi asosiy komponentlarini topishga yordam beradi.
|
| |