Готовый перевод Cloudera Imapala: Руководство начинающего / Cloudera Imapala: Tutorials for Getting Started: Set Up Some Basic .csv Tables
Развертывание простейших csv таблиц
Данный сценарий демонстрирует создание простых таблиц, знакомящий начинающих пользователей с возможностями SQL. Загрузка TAB1 и TAB2 из HDFS. Созранение выборки из таблицы TAB1 в TAB3.
Разместите в HDFS данные, с которыми вы хотите работать. Для этого создайте одну или несколько подпапок внутри папки user файловой системы HDFS. Данные каждой таблицы размещаются в отдельной подпапке. Используйте имя вашего существующего пользователя cloudera где необходимо. В данном примере используется опция -p для авторматического создания родительских папок если это необходимо.
Ниже приведены данные таблиц TAB1 и TAB2
Скопируйте содержимо в .csv файлы вашей локальной файловой сисетмы.
Скопируйте каждый .csv файл в отдельную папку в HDFS, используя команды приведенные ниже. Указанное расположение папок характерно для Impala Demo VM.
Именование файлов не является критичным. Фактически для подготовки данных таблицы во время первичного чтения данных папки Impala обходит все содержащиеся в ней файлы, независимо от их количество и названий.
Что бы понять какие папки доступны в вашей файловой системе HDFS и какие права им назначены, выполните hdfs dfs -ls / и проследуйте дальше по дереву каталогов используя команду -ls для их изучения.
Воспользуйтесь командой impala-shell для создания таблиц а так же выполнения sql-скритов.
Ниже приведен пример создания трех таблиц. Для каждой таблицы задаются колонки с разными атрибутами, в частности типами полей - Boolean и Integer. Указывается так же и формат данных (строки с полями разделенные запятыми), описывающий структуру .csv файла. Ранее мы уже разместили .csv файлы с данным в папках на HDFS, нам остается только указать путь к нужной, Impala в свою очередь извлечет содержимое из файлов и представит их виде таблицы.
DROP TABLE IF EXISTS tab1;
-- Выражение EXTERNAL означает, что данные расположены вне рабочей директории Impala
-- и останутся неизменными в случае удаления таблицы средствами Impala. Предполагается, что данные уже
-- существуют в папке заданной выражением LOCATION.
CREATE EXTERNAL TABLE tab1
(
id INT,
col_1 BOOLEAN,
col_2 DOUBLE,
col_3 TIMESTAMP
)
ROW FORMAT DELIMITED FIELDS TERMINATED BY ','
LOCATION '/user/cloudera/sample_data/tab1';
DROP TABLE IF EXISTS tab2;
-- TAB2 - внешняя таблица как и TAB1.
CREATE EXTERNAL TABLE tab2
(
id INT,
col_1 BOOLEAN,
col_2 DOUBLE
)
ROW FORMAT DELIMITED FIELDS TERMINATED BY ','
LOCATION '/user/cloudera/sample_data/tab2';
DROP TABLE IF EXISTS tab3;
-- Опускание выражения EXTERNAL означает, что при создании таблицы
-- данные будут храниться в рабочей папке Impala, в отличии от
-- существующих файлов, которые мы импортировали при
-- при создании предыдущих таблиц.
CREATE TABLE tab3
(
id INT,
col_1 BOOLEAN,
col_2 DOUBLE,
month INT,
day INT
)
ROW FORMAT DELIMITED FIELDS TERMINATED BY ',';
Примечание: Успешное выполнение выражения CREATE TABLE - важный шаг, на нем происходит проверка корректности параметров Hive metastore и прав доступа HDFS. В случае возникновения ошибков при выполнении CREATE TABLE:
- убедитесь, что установка Impala прошла успешно;
- убедитесь, что папка, указанная в параметре hive.metastore.warehouse.dir доступна для записи Impala. Папка должна принадлежать hive:hive, а Impala членом группы hive.
Если значение hive.metastore.warehouse.dir отличается от указанного для Cloudera Manager и Hive, нужно пометить сервара impalad как обладающие ролью "gateway" для Hive, и исправить настройки клиента для этих серверов.
Внимание! Этот перевод, возможно, ещё не готов.
Его статус: идёт перевод
Переведено на Нотабеноиде
http://notabenoid.org/book/53374/229951
Переводчики: nipman
Настройки
Готово:
