Подтверждение концепции новостного агрегатора с использованием технологий больших данных
Большие данные - это огромный набор данных, который может содержать большой объем данных, скорость и разнообразие данных. Например, миллиарды пользователей одновременно ищут в Google, и это будет очень большой набор данных. В этом разделе мы обсудим Proof of concept (POC) агрегатора новостей с использованием больших данных (Hadoop, hive, pig). И будет выполнять операции на основе MapReduce Operations. Для выполнения операции мы будем использовать HiveQL (Hive Query Language), который представляет собой SQL-подобный язык запросов, который может обрабатывать структурированные данные с помощью Hive. Hive используется для упрощения запросов и анализа. И это инструмент хранилища данных поверх Hadoop.
Вы увидите, как можно реализовать POC в агрегаторе новостей с использованием больших данных. Здесь мы выполним POC и сможем найти все запросы, используя технологии больших данных, такие как Hadoop, hive и pig. И такие запросы, как количество новостей, разделенных на разные категории, подсчет общего количества различных заголовков в таблице, имя издателя, запрос на опубликованную новость, запрос на поиск названия заголовка и запрос на поиск буквенно-цифрового идентификатора. кластера, в который входят новости об одной и той же истории и т. д. Давайте обсудим по очереди.
Подтверждение концепции агрегатора новостей:
- Этот POC основан на данных агрегатора новостей.
- Публичный набор данных доступен по ссылке на веб-сайт.
https://archive.ics.uci.edu/ml/datasets/News+Aggregator
Отраслевые социальные сети:
Данные
Общедоступный набор данных со следующими атрибутами.
- ID - целое число числового идентификатора.
- TITLE -News Заголовок типа String.
- URL - URL типа String.
- ИЗДАТЕЛЬ - Имя издателя типа String.
- КАТЕГОРИЯ - Категория новостей типа String.
- ИСТОРИЯ - буквенно-цифровой идентификатор кластера, в который входят новости об одной и той же истории.
- HOSTNAME -URL имя хоста типа String.
- ВРЕМЯ - Примерное время публикации новости.
Постановка задачи:
- Не найти новостей, разделенных на разные категории
- Подсчитайте общее количество различных заголовков в таблице.
- Найдите имя издателя и название бизнес-категории.
- Найдите новости, которые были опубликованы за примерное время.
- Найдите 5 названий заголовков из таблицы, опубликованной Los Angeles Times.
- Найдите буквенно-цифровой идентификатор кластера, который включает новости о той же истории.
Сценарий оболочки:
Цель этого сценария оболочки - создать таблицу и выполнить команду hive для сохранения результата.
Создание таблицы: чтобы создать таблицу, используйте следующий запрос, как показано ниже.
улей> создать новую таблицу ( id bigint, заголовок Строка url String, publishername String категория Строка история String имя хоста Строка время bigint ); > формат строки с разделителями > поля, оканчивающиеся на ' t' > строки, оканчивающиеся на ' n' > хранится как текстовый файл;
Загрузка таблиц: чтобы загрузить таблицы с помощью следующего запроса, как показано ниже.
куст> загрузить данные локально в путь '/home/training/Desktop/news.txt' > перезаписывать в таблицу новости;
Вывод: для отображения вывода используется следующий запрос.
улей> выберите * из новостей;
Команды улья
1. Найдите ряд новостей, разделенных на разные категории.
hive> SELECT category, COUNT (*) from news GROUP BY category
2 . Подсчитайте общее количество различных заголовков в таблице.
улей> выберите количество (ОТЛИЧИТЕЛЬНОЕ название) из новостей
3. Найдите имя издателя и название бизнес-категории.
hive> выберите заголовок, имя публикации из новостей, где category == 'b';
4. Найдите новости, которые были опубликованы за примерное время.
hive> SELECT * из новостей SORT BY time DESC limit 1;
5 . Найдите 5 названий заголовков из таблицы, опубликованной Los Angeles Times.
hive> ВЫБРАТЬ заголовок ИЗ новостей, где publishername = 'Los Angeles Times' LIMIT 5;
6. Найдите буквенно-цифровой идентификатор кластера, который включает новости о той же истории.
улей> ВЫБРАТЬ рассказ, COUNT (*) из новостей ГРУППА ПО рассказу;