Nginx — это сервер, который представляет собой российское достижение. Следом идёт ClickHouse, лёгкий как ласточка, но с производительностью, которая значительно превосходит все аналогичные базы данных на рынке. В настоящее время объём хранилища может достигать уровня PB. На данный момент информации не так много, она находится в процессе изучения.
— MongoDB-4.0 — документная база данных, дружественная к JSON-данным, в основном используется для баз данных с пауками.
— Spark-2.3 — в настоящее время является основным решением для обработки больших данных в реальном времени и пакетной обработки в автономном режиме. Этот компонент потребляет много ресурсов, и когда я разрабатывал его, он приводил мой ноутбук к синему экрану, поэтому я напрямую отправлял его в кластер Spark. Далее ожидается появление Flink, и я очень рад этому быстрому фреймворку.
— Hive-2.1 — обязательный элемент экосистемы Hadoop, используемый для анализа больших данных. Это структурированная база данных OLAP, предназначенная для выполнения запросов HQL, синтаксис запросов похож на MySQL, за исключением того, что оконные функции более сложны.
— Impala-3.2 — быстрый и эффективный, как антилопа, с такими же сложными запросами Hive SQL, Impala возвращает результаты за миллисекунды, тогда как Hive требуется около 80 секунд или даже больше.
— HBase-2.1 + Phoenix — неструктурированная база данных в экосистеме Hadoop. Дизайн HBase основан на rowkey и многоверсионном контроле, а Phoenix позволяет реализовать более сложные бизнес-процессы.
— Kylin-2.5 — система предварительного анализа многомерных данных, которая полагается на быстрые вычисления в памяти, но имеет некоторые ограничения. Она подходит для стабильных бизнес-процессов с фиксированным количеством измерений. Не рекомендуется для слабых машин.
— HUE-4.3 — поставляется вместе с CDH, подчёркивает удобство использования. Он удобен для управления операциями с хранилищами данных, контроля доступа, выполнения запросов Hive и Impala, управления файлами HDFS и написания сценариев задач Oozie.
— Alibaba DataX — инструмент для синхронизации гетерогенных источников данных, поддерживает большинство основных баз данных и позволяет разрабатывать собственные плагины. Если вы считаете, что это не удовлетворяет вашим особым бизнес-требованиям, рекомендуется использовать FlinkX, основанный на распределённом инструменте синхронизации данных Flink. Теоретически вы также можете разработать свои собственные плагины.
— Oozie-5.1 — пользовательский интерфейс выглядит странно, но его можно принять после использования с HUE. Его основная функция — написание и запуск сценариев для планирования задач.
— Sqoop-1.4 — используется для экспорта бизнес-данных из MySQL в хранилище HDFS и наоборот.
— MySQL-5.7 — база данных, которую должен использовать каждый программист. Если говорить о языке, которым пользуются все программисты мира, то это, безусловно, SQL. Уровень принятия MySQL 8.0 недостаточно высок, MariaDB пока не рекомендуется, так как сложные функции несовместимы с MySQL.
— Hadoop3.0 (HDFS+Yarn) — HDFS является наиболее распространённой системой хранения данных в области больших данных, Yarn относится к экосистеме hadoop и в основном отвечает за распределение ресурсов кластера и выполнение механизма MR.
— Alibaba DataV — визуализация данных.
Подготовка работы:
Ниже приведены мои настройки среды разработки, которые служат только для справки:
Другие полезные инструменты см. в моём блоге: https://java666.cn/#/AboutMe.
CentOS7 CDH-6.2 Cluster — включает следующие компоненты, соответствующие роли хоста и конфигурации, как показано на рисунке. Кластеру требуется минимум 40 ГБ общей памяти для нормального использования, и чем больше памяти, тем лучше, если у вас достаточно денег. Конечно, скорость будет выше. Мы стремимся к максимальной скорости.
Если вы решите создать кластер больших данных с использованием оригинальных компонентов Apache, вы столкнётесь с множеством проблем. Мои волосы не выдержали, поэтому я выбрал CDH.
В 2021 году CDH полностью перешёл на платную основу, и его больше не рекомендуется использовать для обучения. Рекомендуется попробовать USDP. Однако использование памяти на хосте слишком велико, и настоятельно рекомендуется подготовить достаточное количество оборудования перед принудительной установкой. Рекомендуемая конфигурация кластера составляет 32G RAM * 3.
Примечание: С развитием экосистемы Hadoop проблемы совместимости становятся всё более серьёзными. Чтобы решить проблему совместимости, рекомендуется самостоятельно развернуть кластер Apache Hadoop и скомпилировать и настроить каждый компонент и каждую строку кода с нуля.
Физическая конфигурация машины:
Вышеупомянутое программное обеспечение развёрнуто отдельно на трёх моих компьютерах: ноутбуке VMware с Windows 10, настольном компьютере VMware с Windows 10 и ноутбуке CentOS7 с древним процессором. Все физические машины оснащены SSD и гигабитным Ethernet-адаптером, для HDFS требуется самый быстрый сетевой адаптер.
Конечно, шасси ещё лучше. Ха-ха-ха.
Если у вас есть компьютер с более чем 16 ГБ оперативной памяти, который простаивает, вы можете попробовать использовать более быстрый способ инициализации кластера hadoop для этого проекта, используя vagrant для пакетного развёртывания кластера, чтобы быстро испытать:
# Выполните следующую команду на Linux-машине (RAM > 16G), в настоящее время поддерживается только centos7
# Настоятельно рекомендуется использовать научную сеть!
# Настоятельно рекомендуется использовать научную сеть!
# Настоятельно рекомендуется использовать научную сеть!
# Научная сетевая среда развертывания: https://github.com/juewuy/ShellClash
curl -sSL https://raw.githubusercontent.com/geekyouth/Vagrant/main/start.sh | sh -x
Если вы хотите избежать путаницы с сетевыми кабелями, вы можете рассмотреть возможность реализации распределённой домашней сети с помощью Powerline.
Источник данных:
Платформа открытых данных правительства Шэньчжэня, данные карт Шэньчжэня 133,7 тыс. записей (офлайн-данные), похоже, уже прекратили обслуживание.
Запасной источник данных (ранее загруженные данные jsons были немного ошибочными, поэтому они были повторно организованы, сжаты и размещены в этой библиотеке. Скорость медленных студентов может попробовать код Cloud): .file/2018record3.zip
Теоретически это можно рассматривать как данные в реальном времени, но этот интерфейс слишком медленный. Если использовать очередь Kafka, можно имитировать эффект данных в реальном времени.
Этот проект использует офлайн + реальные идеи для решения различных проблем.
Прогресс разработки:
Подготовьте среду разработки Java, Scala и больших данных, такую как IDEA, VMware, CDH и т. д., затем выключите свой мобильный телефон, нарисуйте дракона левой рукой и проведите радугу правой рукой, давайте начнём представление! 地铁五号线
{
"car_no": "IGT-104",
"station": "布吉",
"conn_mark": 0,
"deal_money": 0,
"equ_no": 263032104
}
2.6 — cn.java666.etlflink.app.Redis2Kafka#main согласно требованиям отправляет удовлетворяющие бизнес-требованиям исходные данные в kafka, topic-flink-szt-all сохраняет все исходные данные (1 337 000 строк), topic-flink-szt содержит только очищенные исходные данные (1 266 039 строк).
2.7 — kafka-eagle мониторит topic, на основе оригинальной версии убрана фоновая картинка, стало красивее:
ksql команда для запроса: select * from "topic-flink-szt" where "partition" in (0) limit 1000
2.8 — cn.java666.etlflink.app.Redis2Csv#main реализует sink csv формат файла flink и поддерживает сохранение по дням в виде блоков.
2.9 — cn.java666.etlflink.app.Redis2ES#main реализует ES хранение исходных данных. Реализует поиск в реальном времени и отслеживание данных о транзакциях по картам в режиме реального времени.
Этот модуль включает в себя множество технических деталей, и если у вас нет опыта использования ES, рекомендуется сначала изучить его. В противном случае вы можете столкнуться с трудностями.
Ранее я сталкивался со множеством проблем при работе с ES и провёл много бессонных ночей, теряя много волос. Поэтому важно иметь хорошую практику!
👇👇👇 Эта часть контента была обновлена: исправлена проблема с часовым поясом в предыдущей версии.
Давайте вернёмся к 1 сентября 2018 года и настроим панель kibana на временной диапазон от 0:00:00.000 до 23:59:59.999, чтобы увидеть, является ли статистика записей карт за этот день научной и косвенно подтверждает целостность источника данных.
После корректировки часового пояса общее количество очищенных данных составило 1 266 039 записей, а за весь день 1 сентября — 1 229 180 записей.
На графике видно, что записи транзакций по картам сосредоточены между 6:00 и 12:00 утра, данные за субботу не особенно очевидны. Мы продолжаем масштабировать временную шкалу kibana, чтобы посмотреть более подробную кривую:
График показывает, что транзакции по картам были сосредоточены в утренние часы, хотя это была суббота, пик активности не был особенно заметен. Продолжаем сужать временную шкалу.
Рассмотрим процесс ETL проекта: из 1 337 000 исходных записей 1 266 039 прошли очистку и были добавлены в индекс ES szt-data. Из этих 1 266 039 очищенных записей 1 227 234 относятся к утреннему периоду 1 сентября.
Можно предположить, что официальные данные не являются полными данными о транзакциях за весь день. Если мы предположим, что утренний объём транзакций соответствует общему объёму за день, то общее количество транзакций за весь день должно быть около 2 440 000, учитывая, что это была суббота. Однако такой подход не является научным методом анализа данных, и мы продолжим использовать научные методы анализа больших данных для изучения этих данных.
Обратите внимание, что ES имеет некоторые подводные камни:
{
"properties": {
"deal_date": {
"format": "yyyy-MM-dd HH:mm:ss",
"type": "date"
}
}
}
Здесь не указано поле часового пояса, но ES по умолчанию использует часовой пояс 0. Это программное обеспечение имеет много подводных камней и не позволяет установить глобальный часовой пояс по умолчанию. Однако многие программные продукты генерируют данные, используя часовой пояс машины по умолчанию, который в Китае равен +8. Поскольку наши исходные данные также не содержат информации о часовом поясе, здесь мы не хотим изменять исходные данные и притворяемся, что находимся в часовом поясе 0 в ES. Также необходимо изменить часовой пояс kibana по умолчанию на UTC, чтобы гарантировать правильное выравнивание графика kibana. Но это не научный способ решения проблемы.
2.10 — просмотр базы данных ES для сравнения с собственной картой метро, постепенно обнаруживая некоторые правила анонимизации.
В журнале анонимизированные поля номера карты расшифрованы, и предполагается, что существует определённая закономерность в расшифровке реальных номеров карт:
Похоже на код Морзе... Я всё ещё не уверен, верен ли этот метод расшифровки 🤔🤔🤔
2.11 — cn.java666.sztcommon.util.ParseCardNo#parse реализован автоматический анализ номеров карт и шифрование, а также функция однократного преобразования. cn.java666.etlspringboot.controller.CardController#get реализован REST API для преобразования номеров карт в шифрование и обратно.
column COMMENT varchar(256) character set utf8;
alter table TABLE_PARAMS modify column PARAM_VALUE varchar(4000) character set utf8;
alter table PARTITION_PARAMS modify column PARAM_VALUE varchar(4000) character set utf8;
alter table PARTITION_KEYS modify column PKEY_COMMENT varchar(4000) character set utf8;
alter table INDEX_PARAMS modify column PARAM_VALUE varchar(4000) character set utf8;
2020-04-24:
2020-04-23:
2020-04-22:
2020-04-21:
2020-04-20:
2020-04-19:
rm -rf /usr/
, к счастью, большинство важных данных и журналов компонентов не были потеряны благодаря механизмам репликации HDFS, Kafka и ES, а также тому, что большая часть бизнес-данных была смонтирована на внешнем диске. В кластере CHD добавлен новый узел;2020-04-18:
2020-04-17:
2020-04-16:
2020-04-15:
2020-04-14:
2020-04-13:
Добро пожаловать для обсуждения технических вопросов, контактное имя github
.
Проблемы, которые можно найти с помощью Baidu и Google, больше не нужно задавать! Очень устал😕😕😕
Придерживаюсь принципов и границ.
Посылаю сердечки🤞🤞🤞
Три проблемы, с которыми обязательно столкнётся программист в своей жизни:
Программисты больших данных никогда не должны создавать ошибочные данные, они могут терпеть сбои в работе программы, даже без вывода данных, сбой можно отследить, по крайней мере, не будет грязных данных.
Как только данные будут ошибочными, это повлияет на все последующие вычисления и даже может привести к неправильным решениям.
Вы можете оставить комментарий после Вход в систему
Неприемлемый контент может быть отображен здесь и не будет показан на странице. Вы можете проверить и изменить его с помощью соответствующей функции редактирования.
Если вы подтверждаете, что содержание не содержит непристойной лексики/перенаправления на рекламу/насилия/вульгарной порнографии/нарушений/пиратства/ложного/незначительного или незаконного контента, связанного с национальными законами и предписаниями, вы можете нажать «Отправить» для подачи апелляции, и мы обработаем ее как можно скорее.
Опубликовать ( 0 )