Сценарий: мне нужно обработать файл (ввод), и для каждой записи мне нужно проверить, соответствуют ли определенные поля входного файла полям, хранящимся в кластере Hadoop.Подключение HIVE в MRJob
Мы думаем об использовании MRJob для обработки входного файла и использования HIVE для получения данных из кластера хаопов. Я хотел бы знать, возможно ли мне подключить HIVE внутри модуля MRJob. Если да, то как это сделать?
Если нет, то какой будет идеальный подход для выполнения моих требований.
Я новичок в Hadoop, MRJob и Hive.
Пожалуйста, предоставьте некоторое предложение.
Да. Для примера Мой входной файл что-то вроде этого входного файла: Имя, add1, add2, почтовый индекс, Марк, 31 Maybush, XXX, WF1 5xy мне нужно проверить, является ли значение поля «add1» который является «31 Maybush» для имени «Марк» в входном файле, совпадает с данными в кластере с тем же именем. – user1703319
Будут ли все файлы иметь одну и ту же схему? Если да, то вы можете создать таблицу Hive и загрузить все сотни/тысячи файлов, которые у вас есть, в новую таблицу Hive. Затем вы можете подключиться для запуска запроса куста из MapReduce. Ваш запрос Hive будет выглядеть примерно так: SELECT * FROM huge_hive_table WHERE add1 = '31 Maybush 'AND name =' Mark '; Конечно, вам необходимо динамически изменять 31 Maybush и Mark, поскольку каждая строка входного файла считывается. – AkashNegi
Проблема с вышеуказанным подходом заключается в том, что для каждого запроса в Hive существует задание MR, поэтому задание MR будет выполняться для каждой строки входного файла, поскольку мы сравниваем каждую строку. Если у вас 2000 строк, то 2000 MR заданий для сравнения. – AkashNegi