0

Я не могу загрузить данные из свиньи в hbase в cloudera cdh3. Он показывает мне данные, когда я удаляю данные, но когда я пытаюсь помещать данные в hbase из свиньи с помощью команды store, он может найти таблицу и запустить задачу mapreduce. Но в конечном счете, он показывает следующее сообщение об ошибке ->Экспорт данных из свиньи в hbase

не удалось прочитать данные из "тест/NYSE_daily_prices_Q.csv"

и в самом конце

2015-02- 16 11: 29: 44,266 [main] INFO org.apache.pig.backend.hadoop.executionengine.mapReduceLayer.MapReduceLauncher - Failed! 2015-02-16 11: 29: 44,268 [main] ERROR org.apache.pig.tools.grunt.GruntParser - ОШИБКА 2999: Неожиданная внутренняя ошибка. Ключ строки недопустим Подробности на логфайл: /home/cloudera/pig_1424114902913.log

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

данные = LOAD '' /test/NYSE_daily_prices_Q.csv ИСПОЛЬЗОВАНИЕ PigStorage ('') AS (обмен: chararray, символ: chararray, дата: chararray, stock_price_open: поплавок, stock_price_high: поплавок, stock_price_low: поплавок, stock_price_close: поплавок, stock_volume: INT, stock_price_adj_close: с плавающей точкой);

данные дампа;

STORE данные в 'HBase: // NYStockDetails' ИСПОЛЬЗОВАНИЕ org.apache.pig.backend.hadoop.hbase.HBaseStorage ("Информация: обмен информации: Информация о дате: символ: Информация stock_price_open информация: stock_price_high информации: stock_price_low информации: stock_price_close info: stock_volume info: stock_price_adj_close ');

ответ

1

При выполнении команды локально (что я предполагаю, что вы имеете в виду, когда вы говорите, что сбросить данные), ваша команда LOAD '/test/NYSE_daily_prices_Q.csv' может указывать на конкретный файл в локальной файловой системе.

Когда вы выполняете ту же команду с добавлением экспорта HBase, начинается только задание MapReduce только для карты. Преобразователь будет запущен на случайном узле вашего кластера, и поэтому не обязательно будет иметь доступ к NYSE_daily_prices_Q.csv, который, как я полагаю, сохраняется локально только на одном узле. Поэтому вы получаете сообщение об ошибке при загрузке в HBase.

Решение состоит в том, чтобы добавить этот файл в HDFS, а затем загрузить его оттуда, то есть LOAD 'hdfs://my-hdfs-location/test/NYSE_daily_prices_Q.csv'.

+0

Его можно найти данные и импортировать в hdfs, но он не может импортировать в hbase. – user1954395