Обновление данных Excel в HDFS в режиме реального времени - PullRequest
1 голос
/ 14 мая 2019

У меня есть Excel на моей локальной машине и HDFS на удаленном RHEL-сервере. Я хочу загрузить эти данные Excel в HDFS и обновлять их в режиме реального времени. Например, если некоторые новые записи вставляются в Excel, они должны быть записаны и обновлены в HDFS в режиме реального времени. Сейчас у меня в голове 2 метода:

1) Периодически извлекать файл Excel и загружать его в HDFS, а затем создавать на нем таблицу кустов. Но этот метод излишне запускает работу несколько раз в день и в действительности не является сценарием реального времени.

2) Другое решение состоит в том, чтобы кодировать производителя, который читает строку построчно в цикле Excel и, если какие-то изменения записываются, отправлять данные в раздел Kafka и позже можно использовать с помощью Spark-Streaming.

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

Есть ли лучший способ добиться этого? Я новичок в потоковой передаче и не мог понять, как это сделать.

1 Ответ

1 голос
/ 14 мая 2019

Это действительно зависит от того, сколько данных вы имеете дело. Тот факт, что вы обсуждаете один файл Excel, предполагает, что это не проблема больших данных, и поэтому Spark Streaming / Kafka будет излишним.

Я бы написал ванильное Java-приложение (используя API-интерфейсы Apache POI и Hadoop HDFS), которое постоянно работает, проверяя изменения в дате последнего изменения файла Excel (file.lastModified()), затем считывает файл и выталкивает его полностью содержимое в HDFS. HDFS на самом деле не предназначена для добавления, поэтому вам следует каждый раз заново создавать весь файл.

...