Поток выглядит следующим образом:
Шаг 1: улей клиент инициирует запрос (CLI или какой-либо внешний клиент с помощью JDBC, ODBC или бережливость или WebUI).
Шаг 2: Компилятор получает запрос и подключается к метасторе.
Шаг 3: Начало этапа компиляции.
Parser
Преобразует запрос в parse tree
. ANTLR используется для генерации abstract syntax tree(AST)
.
Semantic analyzer
Компилятор строит логический план на основе информации, предоставленной метасторе во входных и выходных таблицах. Компилятор также проверяет type compatibilities
и уведомляет об этом compile-time semantic errors
.
QBT creation
В этом шаге преобразования AST в промежуточное представление имеет место, называется query block(QB) tree
.
Logical plan generator
На этом этапе компилятор записывает логический план из семантического анализатора в логическое дерево операций.
Optimization
Это самая тяжелая часть фазы компиляции как целая серия DAG optimizations
имеет место в этой фазе. Она включает в себя следующие задачи:
Logical optimization
Column pruning
Predicate pushdown
Partition pruning
Join optimization
Grouping(and regrouping)
Repartitioning
Conversion of logical plan into physical plan by physical plan generator
Creation of final DAG workflow of MapReduce by physical plan generator
Шаг 4: Execution двигатель получает выходы компилятор выполнять их на платформе Hadoop. Он включает в себя следующие задачи:
Задача MapReduce сначала сериализует свою часть плана в файл plan.xml .
файл plan.xml затем добавляется в кэш задания для задачи, а экземпляры ExecMapper и ExecReducer порождаются с использованием Hadoop.
Каждый из этих классов десериализует файл plan.xml и выполняет соответствующую часть задачи .
Окончательные результаты хранятся во временном месте и по завершении всего запроса результаты будут перенесены в таблицу, если - это вставки или разделы. В противном случае возвращается во временную папку вызывающей программе .
Примечание. Все задачи выполняются в порядке их зависимостей. Каждый выполняется только в том случае, если выполнены все его предварительные условия.
И знать о таблицах metastore и их полей, которые вы можете посмотреть на схему MR для metastore:
HTH
Большое спасибо, Это было информативно, НО, что я ищу, это способ доступа к мета-магазину и выборка файлов, соответствующих таблице. Есть ли способ получить или увидеть plan.xml? – user2458922
Перейдите в «mapred.local.dir» (или в «hadoop.tmp.dir», если вы не установили это) и перейдите в каталог «/ mapred/local/taskTracker/distcache». Здесь вы найдете каталог, соответствующий каждой задаче MR запроса на получение. Продолжайте движение внутри подкаталогов, и вы получите файл xml. И чтобы увидеть файлы, соответствующие таблице, вам не нужно идти в метастар. Вы можете использовать «EXPLAIN extended», и он покажет вам все. Найдите «Path -> Alias:» и «Path -> Partition:» .. HTH – Tariq
@Tariq +1 для краткого ответа. Примечание: пожалуйста, назовите источник: http://www.amazon.com/dp/0124058914 –