logo

Архитектура на кошера

Следващата архитектура обяснява потока на подаване на заявка в Hive.

Архитектура на кошера

Hive клиент

Hive позволява писане на приложения на различни езици, включително Java, Python и C++. Поддържа различни типове клиенти като: -

  • Thrift Server - Това е платформа за доставчик на услуги на различни езици, която обслужва заявката от всички онези езици за програмиране, които поддържат Thrift.
  • JDBC драйвер - Използва се за установяване на връзка между кошер и Java приложения. JDBC драйверът присъства в класа org.apache.hadoop.hive.jdbc.HiveDriver.
  • ODBC драйвер - позволява на приложенията, които поддържат ODBC протокола, да се свързват с Hive.

Hive Services

Следните са услугите, предоставяни от Hive:-

  • Hive CLI - Hive CLI (Интерфейс на командния ред) е обвивка, където можем да изпълняваме заявки и команди на Hive.
  • Уеб потребителски интерфейс на Hive - Уеб интерфейсът на Hive е просто алтернатива на Hive CLI. Той предоставя уеб базиран GUI за изпълнение на заявки и команди на Hive.
  • Hive MetaStore - Това е централно хранилище, което съхранява цялата информация за структурата на различни таблици и дялове в склада. Той също така включва метаданни на колона и информация за нейния тип, сериализатори и десериализатори, които се използват за четене и запис на данни и съответните HDFS файлове, където се съхраняват данните.
  • Hive сървър - Нарича се Apache Thrift Server. Той приема заявката от различни клиенти и я предоставя на Hive Driver.
  • Hive Driver - Получава заявки от различни източници като уеб интерфейс, CLI, Thrift и JDBC/ODBC драйвер. Той прехвърля заявките към компилатора.
  • Hive Compiler – Целта на компилатора е да анализира заявката и да извърши семантичен анализ на различните блокове и изрази на заявката. Той преобразува HiveQL изрази в задачи на MapReduce.
  • Hive Execution Engine - Optimizer генерира логическия план под формата на DAG от задачи за намаляване на картата и HDFS задачи. В крайна сметка механизмът за изпълнение изпълнява входящите задачи в реда на техните зависимости.