Массовая загрузка данных Apache Phoenix - не может использовать имя таблицы маленькой буквой
У меня есть таблица Phoenix abc, я хочу массовую загрузку данных через MapReduce, а затем использовал следующую команду для загрузки файла CSV
Jadoop Jar /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
Исключение в потоке "main" java.lang.IllegalArgumentException: таблица ABC не найдена
я пытаюсь изменить имя таблицы команд --t 'abc' и --t "abc", но это не работает, как я могу использовать имя таблицы маленькой буквы??
А также, я нашел такой же случай
Спасибо
1 ответ
Я получил ту же ошибку, после долгих отладок я понял, что Phoenix преобразует введенный вами "abc" во все заглавные буквы "ABC" и пытается найти таблицу с этим именем. И Феникс чувствителен к регистру, как упомянуто здесь.
Попробуйте создать свою таблицу в оболочке феникса со всеми заглавными буквами, а затем выполните ту же команду, она должна работать нормально.
Создание примера таблицы и массовая загрузка через 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