Я новичок в экосистеме oop и самостоятельно изучаю ее через онлайн-статьи. Я работаю над очень базовым c проектом, чтобы я мог получить практические знания о том, что я узнал.
Мой пример использования чрезвычайно важен: идея в том, чтобы я хотел представить местоположение пользователя, который входит в портал Приложение Admin. Итак, у меня есть сервер, который постоянно генерирует журналы, журналы имеют идентификатор пользователя, IP-адрес, отметку времени. Все поля разделены запятыми.
Моя идея состоит в том, чтобы иметь Flume Agent для потоковой передачи данных журналов и записи в HDFS. Инициируйте процесс HIVE, который будет считывать дополнительные данные из HDFS и записывать в таблицу HIVE. Используйте s coop для непрерывного копирования данных из HIVE в таблицу RDMBS SQL и используйте эту таблицу SQL для воспроизведения. До сих пор я успешно настроил Flume Agent, который читает журналы из заданного местоположения и записывает в местоположение hdfs. Но после этого я запутался, как перенести данные из HDFS в таблицу HIVE. Одна идея, которая приходит мне в голову, - это иметь программу MapRed, которая будет читать файлы в HDFS и программно записывать в таблицы HIVE в Java. Но я также хочу удалить файлы, которые уже обработаны, и убедиться, что MapRed не читает дублирующиеся записи. Я искал в Интернете и нашел команду, которую можно использовать для копирования файловых данных в HIVE, но это своего рода руководство, когда вы выполняете какое-то действие. В моем случае я хочу собрать данные sh, как только они появятся в HDFS. Пожалуйста, объясните мне, как решить эту задачу. Ссылки будут полезны.
Я работаю над версией: Cloudera Express 5.13.0
Обновление 1: я только что создал внешнюю таблицу HIVE, указывающую на местоположение HDFS, куда поток записывает журналы. Я заметил, что как только таблица создана, я могу запросить таблицу HIVE и получить данные. Это круто. Но что произойдет, если я остановлю Flume Agent на некоторое время, разрешу серверу приложений записывать журналы, а теперь, если я снова запустите Flume, то будет ли Flume читать только новые журналы и игнорировать журналы, которые уже обработаны? Аналогично, будет ли hive читать новые журналы, которые не были обработаны, и игнорировать те, которые он уже обработал?