1 В избранное 0 Ответвления 0

OSCHINA-MIRROR/opensci-eventdb

Присоединиться к Gitlife
Откройте для себя и примите участие в публичных проектах с открытым исходным кодом с участием более 10 миллионов разработчиков. Приватные репозитории также полностью бесплатны :)
Присоединиться бесплатно
В этом репозитории не указан файл с открытой лицензией (LICENSE). При использовании обратитесь к конкретному описанию проекта и его зависимостям в коде.
Клонировать/Скачать
Внести вклад в разработку кода
Синхронизировать код
Отмена
Подсказка: Поскольку Git не поддерживает пустые директории, создание директории приведёт к созданию пустого файла .keep.
Loading...
README.md

Система управления большими данными, ориентированная на физику высоких энергий

Зависимости от среды

  1. Для анализа dst-файла требуется среда с правами администратора (Root).
  2. Решение проблем с зависимостями Python: pip install happybase ConfigParser optparse pydoop.
  3. Java-зависимости решаются через Maven: в корне проекта запустить mvn clean compile && mvn clean package.
  4. Необходимо убедиться, что в jps есть ResourceManager и Thrift-сервис для корректной работы Hadoop&HBase.

Конфигурационный файл

Конфигурационный файл ./config.ini описывает среду выполнения HDFS и HBase. Для локальной среды можно использовать настройки по умолчанию.

Кодирование rowkey

В HBase доступны только символьные типы данных, но порядок следования чисел не совпадает с порядком следования символов, что делает поиск по диапазону значений свойств неэффективным. Чтобы решить эту проблему, числа кодируются. В файле C-кода ./c/TyperSer.c реализовано кодирование целых и дробных чисел. ./python/lib/TyperSer.so — это динамическая библиотека, созданная после компиляции.

Структура хранения eventdb

Для ускорения создания таблиц HBase данные инвертированного индекса хранятся в файлах HDFS. Структура таблицы HBase: rowkey, data:run, data:offset, data:length, data:count. Каждый run создаёт отдельный файл данных HDFS, где data:run указывает на имя файла, data:offset — на смещение строки в файле, data:length — на длину строки, а data:count — на количество entryID. Таким образом, сначала выполняется запрос к HBase, затем информация о файле используется для чтения инвертированного индекса из HDFS.

eventdb структура хранения

Таблицы HBase

Скрипт ./python/create_table используется для создания таблиц HBase. Формат команды: ./create_talbe 'table-name'.

Анализ root

Скрипт ./python/run2data анализирует файлы root. Поддерживает многопоточность и параллельную обработку. Формат команды: ./run2data 'root-dir-path' 'save-dir-path' 'multiprocessing-num'. Необходимо обеспечить наличие каталога 'root-dir-path', где файлы root распределены по подкаталогам в соответствии с номером run. Каталог 'save-dir-path' должен существовать и содержать подкаталоги csv и data. После завершения работы скрипт копирует файлы csv и data в каталог hdfs:///eventdb/'talbe-name'/ на HDFS. Скрипт j ./python/genInfo генерирует метаданные. Формат команды: ./genInfo 'table-name' 'root-dir-path'.

Импорт bulkload в HBase

Для импорта больших объёмов данных в каждую таблицу используется инструмент bulkload HBase. Сначала необходимо выполнить команду mvn clean compile && mvn clean package для генерации jar-пакета. Затем запустить java -jar ./target/eventdb.jar org.osv.eventdb.CsvInsert 'hdfs-input-path' 'hdfs-output-path' 'hbase-table-name', чтобы выполнить импорт.

Запрос eventdb

Поддерживается запрос по нескольким run. Номера run разделяются запятыми. Условия запроса могут включать диапазон и логические операции. Формат команды: ./evtQuery -v 'hbase-table-name' -r 'runID' -q 'range(property1, min, max) && range(property2, min, max) || range(property3, min, max) ... ' -f 'output-file-name'.

Запуск сервера

cd EventDBWeb
python ./manage.py runserver 0.0.0.0:8080
Запрос количества событий: localhost:8080/runInfo?op=totalEvents
Запрос объёма хранилища: localhost:8080/runInfo?op=volume
Многомерный запрос: localhost:8080/?tablename=${table-name}&command=${command}
Результаты запроса: localhost:8080/static/data/*.json

Комментарии ( 0 )

Вы можете оставить комментарий после Вход в систему

Введение

Описание недоступно Развернуть Свернуть
Отмена

Обновления

Пока нет обновлений

Участники

все

Недавние действия

Загрузить больше
Больше нет результатов для загрузки
1
https://api.gitlife.ru/oschina-mirror/opensci-eventdb.git
git@api.gitlife.ru:oschina-mirror/opensci-eventdb.git
oschina-mirror
opensci-eventdb
opensci-eventdb
master