2013-06-13 3 views
1

Что такое поток управления улей?Поток управления потоком кустов?

Скажем, я хотел бы присоединиться к Emp_Table с Dept_Table,

Как поток идет?

С какой таблицы в магазине meta вы получаете всю необходимую информацию?

Например, 1) Где находится файл, который соответствует Emp_Table? (Местоположение HDFS) 2) Каковы имена полей таблицы Emp_Table? 3) Что такое разделитель в файле, который содержит данные Emp_Table? 4) Как насчет того, чтобы данные были развернуты или разбиты на разделы, в этом случае откуда (имя таблицы Meta Store) и как (запрос), который дает местоположения папки HDFS?

ответ

1

Поток выглядит следующим образом:

Шаг 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:

enter image description here

HTH

+0

Большое спасибо, Это было информативно, НО, что я ищу, это способ доступа к мета-магазину и выборка файлов, соответствующих таблице. Есть ли способ получить или увидеть plan.xml? – user2458922

+0

Перейдите в «mapred.local.dir» (или в «hadoop.tmp.dir», если вы не установили это) и перейдите в каталог «/ mapred/local/taskTracker/distcache». Здесь вы найдете каталог, соответствующий каждой задаче MR запроса на получение. Продолжайте движение внутри подкаталогов, и вы получите файл xml. И чтобы увидеть файлы, соответствующие таблице, вам не нужно идти в метастар. Вы можете использовать «EXPLAIN extended», и он покажет вам все. Найдите «Path -> Alias:» и «Path -> Partition:» .. HTH – Tariq

+1

@Tariq +1 для краткого ответа. Примечание: пожалуйста, назовите источник: http://www.amazon.com/dp/0124058914 –

0

Чтобы увидеть нижележащий путь каталога HDFS, разделители , перегородки и другие детали.

describe extended Emp_Table; 
describe extended Dept_Table; 

Просмотреть как Как укрепить сотрудничество ntrol flow поставить EXPLAIN или EXPLAIN EXTENDED перед вашим запросом.

Смежные вопросы