Вы должны предоставить пустой конструктор по умолчанию в вашем классе ключей. Hadoop использует отражение и не может угадать какие-либо параметры для подачи.
Так что просто добавьте конструктор по умолчанию:
public StockKey(){}
Вы используете неправильный тип таблицы. Mysql поддерживает несколько различных типов таблиц, но наиболее часто используются MyISAM и InnoDB. MyISAM (в MySQL 5.6 + также таблицы InnoDB) - это типы таблиц, которые Mysql поддерживает для полнотекстовых индексов.
Чтобы проверить тип вашей таблицы, выполните следующий запрос sql:
SHOW TABLE STATUS
Просматривая результат, возвращаемый запросом, найдите свою таблицу и соответствующее значение в столбце Engine. Если это значение является чем-либо, кроме MyISAM или InnoDB, то Mysql выдаст ошибку, если вы попытаетесь добавить индексы FULLTEXT.
Чтобы исправить это, вы можете использовать запрос sql ниже, чтобы изменить тип движка:
ALTER TABLE <table name> ENGINE = [MYISAM | INNODB]
Дополнительная информация (мысли может быть полезно): Mysql использует различные типы хранилища движка для оптимизации необходимой функциональности определенных таблиц. Пример MyISAM является типом по умолчанию для операционных систем (кроме Windows), быстро преобразует SELECT и INSERT; но не обрабатывает транзакции. InnoDB используется по умолчанию для окон, может использоваться для транзакций. Но InnoDB требует больше дискового пространства на сервере.
Вы используете InnoDB? Единственный тип таблиц, поддерживающий FULLTEXT, - это MyISAM.
В руководстве mysql сказано, что индексы FULLTEXT
могут быть созданы только для таблиц с механизмом mylsam.