2015-10-01 2 views
0

Теперь я закончил курс хаупа, я хочу работать над Hadoop. Я хочу знать процесс обработки данных, чтобы визуализировать данные.как предварительно обрабатывать данные и загружать их в улей

Я знаю о том, как эко работы компонентов системы, и я построил Hadoop кластер с 8 DataNodes и 1 NameNode: 1 NameNode --Resourcemanager, NameNode, secondarynamenode, улей 8 - узлы DataNode DataNode, Nodemanager

Я хочу знать следующие вещи:

  1. Я получил данные .tar структурированные файлы и первые 4 строки имеют description.how обрабатывать данные этого типа, немного запутанные. 1.a Могу ли я напрямую обрабатывать данные, так как это tar-файлы. Если да, то как удалить данные в первых четырех строках, мне нужно разблокировать и удалить первые 4 строки 1.b, и я хочу обработать это данные с использованием улья.

Просьба предложить мне, как это сделать.

Заранее спасибо.

ответ

1

Могу ли я непосредственно обрабатывать данные, как это битуминозные файлы.

Да, см. Нижеследующее решение.

если да, то как удалить данные в первых четырех строках

Начиная улей v0.13.0, Существует свойство таблицы, tblproperties ("skip.header.line.count"="1") при создании таблицы сказать Hive числа строки для игнорирования.Игнорирование первые четыре строки - tblproperties ("skip.header.line.count"="4")

CREATE TABLE raw (line STRING) 
    ROW FORMAT DELIMITED FIELDS TERMINATED BY '\t' LINES TERMINATED BY '\n'; 

CREATE TABLE raw_sequence (line STRING) 
    STORED AS SEQUENCEFILE 
    tblproperties("skip.header.line.count"="4"); 

LOAD DATA LOCAL INPATH '/tmp/test.tar' INTO TABLE raw; 

SET hive.exec.compress.output=true; 
SET io.seqfile.compression.type=BLOCK; -- NONE/RECORD/BLOCK (see below) 

INSERT OVERWRITE TABLE raw_sequence SELECT * FROM raw; 

Чтобы просмотреть данные:

select * from raw_sequence 

Ссылка: Compressed Data Storage

0

Выполните следующие шаги, чтобы достичь своей цели:

  1. Скопируйте данные (ie.tar файл) в клиентской системе, где установлен Hadoop.
  2. Отвяжите файл и вручную удалите описание и сохраните его на локальном компьютере.
  3. Создайте метаданные (таблицу i.e) в улье на основе описания.
    Например,: Если описание содержит emp_id, emp_no и т. Д., Тогда создайте таблицу в улье, используя эту информацию, а также обратите внимание на разделитель полей, используемый в файле данных, и используйте соответствующий разделитель полей в запросе create table. Предположим, что файл содержит два столбца, разделенных запятой, а затем синтаксис для создания таблицы в кусте.

    Create table tablename (emp_id int, emp_no int) 
        Row Format Delimited 
        Fields Terminated by ',' 
    
  4. Поскольку данные в структурированном формате, вы можете загрузить данные в таблицу ульи с помощью следующей команды. LOAD DATA LOCAL INPATH '/LOCALFILEPATH' INTO TABLE TABLENAME.

  5. Теперь локальные данные будут перемещены в hdf и загружены в таблицу улья.

  6. Наконец, вы можете запросить улей таблицу с помощью SELECT * FROM TABLENAME;

+0

спасибо за быстрый ответ. Теперь у меня есть идея. В моем случае Структура файла:/home/admin/jan/file1 -> file1.tar Файл zip был выполнен в домашнем каталоге, поэтому, если я разархивирую этот файл, будет структурирован файл, как показано ниже, /home/admin/jan/file1 в приведенном выше случае будут ли файлы считываться с использованием внешних таблиц улья? Не могли бы вы сообщить мне, где установить улей либо на Namenode, либо на Datanode? Я установил Datanode и secondarynamenode на том же сервере, запустив службы im see secondarynamnode работает на 0.0.0.0 .. – thambisetty

+0

Да, вы можете создать внешнюю таблицу, но данные должны быть в HDFS не в локальном домашнем каталоге. Итак, используйте команду hadoop fs -put/home/admin/jan/file1/hdfs_path, чтобы поместить данные из локального в hdfs, а затем создать внешнюю таблицу для этих данных, используя CREATE EXTERNAL TABLE TABLENAME (COL ...) LOCATION '/ hdfs_path '. Также вы можете установить куст в любом узле кластера. – anand

+0

У меня есть структура каталогов, как показано ниже в моем hadoop, /hadoop/maindirec/subdirect1/files1-100/hadoop/maindirec/subdirect2/files1-100/hadoop/maindirec/subdirect3/files1-100/hadoop/maindirec/subdirect4/files1-100/hadoop/maindirec/subdirect5/files1-100 Теперь я хочу создать таблицу hive с форматом orc как maindirec и subdirect1-5 как частицы – thambisetty