2016-12-16 6 views
0

я уже есть Феникс таблицы аЬс я хочу Массовая загрузка данных с помощью MapReduce А затем использовали следующую команду, чтобы загрузить файл CSVApache Phoenix Bulk Data Loading - Невозможно использовать имя таблицы с помощью маленькой буквы

Hadoop банку /root/Phoenix/apache-phoenix-4.8.0-HBase-0.98-bin/phoenix-4.8.0-HBase-0.98-client.jar org.apache.phoenix.mapreduce.CsvBulkLoadTool --t abc - input/example .csv

, но это, кажется, не найти таблицу AbC

исключение в потоке «основного» java.lang.IllegalArgumentException: Таблица ABC не найдена

Я пытаюсь изменить имя таблицы команд --t 'abc' и --t "abc" , но это не работает как я могу использовать название таблицы маленькую букву?

А также, я нашел такой же случай

http://apache-phoenix-user-list.1124778.n5.nabble.com/Load-into-Phoenix-table-via-CsvBulkLoadTool-cannot-find-table-and-fails-td2792.html

благодаря

+0

Я делал нечто подобное и в состоянии воспроизвести проблему вы говорите. Но я думаю, что в параметре job вы можете использовать метод toUpperCase для этого же. Я верю, что это сработает. – Sonu

ответ

0

Я получил ту же ошибку, после того, как много отладки я понял, что феникс преобразует вас ввода «ABC» во все шапки " ABC "и пытается найти таблицу с этим именем. И Phoenix чувствителен к регистру, как упомянуто here.

Попробуйте создать таблицу в оболочке phoenix со всеми шапками, а затем запустить ту же команду, она должна работать нормально.

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

CREATE TABLE "CODEFREQUENCY" (pk VARCHAR PRIMARY KEY,"week"."weekNum" VARCHAR,"week"."addition" VARCHAR,"week"."deletion" VARCHAR); 

HADOOP_CLASSPATH=$(hbase mapredcp):~/Installs/Hbase/conf/:~/Installs/apache-phoenix-4.10.0-HBase-1.2-bin/ ./hadoop jar ~/Installs/apache-phoenix-4.10.0-HBase-1.2-bin/phoenix-4.10.0-HBase-1.2-client.jar org.apache.phoenix.mapreduce.CsvBulkLoadTool -Dfs.permissions.umask-mode=000 -d $'\t' -t CODEFREQUENCY --input /hbase/Code_Frequency.csv