myDIG — это инструмент для построения конвейеров, которые сканируют Интернет, извлекают информацию, строят граф знаний (KG) на основе извлеченных данных и предоставляют простой пользовательский интерфейс для запроса KG. Веб-страница проекта — DIG.
Вы можете установить myDIG на ноутбук или сервер и использовать его для создания приложения для поиска в конкретной области для любого набора веб-страниц, CSV, JSON и множества других файлов.
руководство по установке находится ниже
руководство пользователя
расширенное руководство пользователя
Операционные системы: Linux, MacOS или Windows.
Системные требования: минимум 8 ГБ памяти.
myDIG использует Docker для упрощения установки:
Установите Docker и Docker Compose.
Настройте Docker на использование не менее 6 ГБ памяти. DIG не будет работать с объемом памяти менее 4 ГБ и будет работать нестабильно с объемом памяти менее 6 ГБ.
На Mac и Windows вы можете настроить память Docker в меню «Настройки» приложения Docker. Подробности можно найти на страницах документации Docker (Mac Docker или Windows Docker). В Linux Docker построен на ядре LXC, требуется последняя версия ядра и достаточно памяти на хосте.
Клонируйте этот репозиторий.
git clone https://github.com/usc-isi-i2/dig-etl-engine.git
myDIG хранит файлы вашего проекта на вашем диске, поэтому вам нужно указать ему, куда поместить файлы. Вы предоставляете эту информацию в файле .env
в папке, в которую вы установили myDIG. Создайте файл .env
, скопировав пример файла среды, доступный в вашей установке.
cp ./dig-etl-engine/.env.example ./dig-etl-engine/.env
После создания файла .env
откройте его в текстовом редакторе и настройте. Вот типичный файл .env
:
COMPOSE_PROJECT_NAME=dig DIG_PROJECTS_DIR_PATH=/Users/pszekely/Documents/mydig-projects DOMAIN=localhost PORT=12497 NUM_ETK_PROCESSES=2 KAFKA_NUM_PARTITIONS=2 DIG_AUTH_USER=admin DIG_AUTH_PASSWORD=123
COMPOSE_PROJECT_NAME
: оставьте это значение, если у вас есть только один экземпляр myDIG. Это префикс, позволяющий различать экземпляры docker-compose.
DIG_PROJECTS_DIR_PATH
: это папка, в которой myDIG будет хранить файлы вашего проекта. Убедитесь, что каталог существует. По умолчанию ваши файлы будут храниться в ./mydig-projects
, поэтому используйте mkdir ./mydig-projects
если вы хотите использовать папку по умолчанию.
DOMAIN
: измените это значение, если вы устанавливаете сервер, к которому будут обращаться с других компьютеров.
PORT
: вы можете настроить порт, на котором работает myDIG.
NUM_ETK_PROCESSES
: myDIG использует многопроцессорную обработку для приема файлов. Установите это число в соответствии с количеством ядер, имеющихся на вашем компьютере. Мы не рекомендуем устанавливать значение более 4 на ноутбуке.
KAFKA_NUM_PARTITIONS
: номера разделов для каждой темы. Установите для него то же значение, что и NUM_ETK_PROCESSES
. Это не повлияет на существующий номер раздела в темах Kafka, если вы не удалите контейнер Kafka (вы потеряете все данные в темах Kafka).
DIG_AUTH_USER, DIG_AUTH_PASSWORD
: myDIG использует nginx для управления доступом.
Если вы работаете в Linux, выполните следующие дополнительные действия:
chmod 666 logstash/sandbox/settings/logstash.yml sysctl -w vm.max_map_count=262144 # replace <DIG_PROJECTS_DIR_PATH> to you own project path mkdir -p <DIG_PROJECTS_DIR_PATH>/.es/data chown -R 1000:1000 <DIG_PROJECTS_DIR_PATH>/.es
Чтобы установить
vm.max_map_count
навсегда, обновите его в/etc/sysctl.conf
и перезагрузите настройки sysctl с помощьюsysctl -p /etc/sysctl.conf
.
Переместить установку докера по умолчанию (если докеру не хватает памяти) на том.
sudo mv /var/lib/docker /path_with_more_space sudo ln -s /path_with_more_space /var/lib/docker
Чтобы запустить myDIG, выполните:
./engine.sh up
Команды Docker получают высокие привилегии в некоторых ОС, перед ними добавьте
sudo
. Вы также можете запустить./engine.sh up -d
, чтобы запустить myDIG в качестве процесса-демона в фоновом режиме. Подождите пару минут, чтобы убедиться, что все службы работают.
Чтобы остановить myDIG, выполните:
./engine.sh stop
(Используйте /engine.sh down
чтобы удалить все контейнеры)
После запуска myDIG перейдите в браузер и посетите http://localhost:12497/mydig/ui/
Примечание. myDIG в настоящее время работает только в Chrome.
Чтобы использовать myDIG, прочтите руководство пользователя.
myDIG v2 сейчас находится в стадии альфа-версии, есть несколько больших и несовместимых изменений.
данные, конфиги и логи компонентов отсутствуют в DIG_PROJECTS_DIR_PATH/.*
.
Данные очереди Kafka НЕ будут очищены даже после выполнения ./engine.sh down
, вам необходимо удалить DIG_PROJECTS_DIR_PATH/.kafka
а затем перезапустить движок (если вы измените NUM_ETK_PROCESSES
).
Ресурса по умолчанию больше нет. Если файл ресурса (глоссарий) несовместим, удалите его.
custom_etk_config.json
или additional_etk_config/*
больше нет, вместо этого сгенерированные модули ETK находятся в working_dir/generated_em
, а дополнительные модули находятся в working_dir/additional_ems
.
Журнал ETK не полностью реализован и протестирован. Журналы выполнения будут ДОБАВЛЕНЫ в working_dir/etk_worker_*.log
.
Редактор правил Spacy не работает.
Компоненты ELK (Elastic Search, LogStash & Kibana) были обновлены до версии 5.6.4, а также были обновлены другие службы в myDIG. Что вам нужно сделать, это:
docker-compose down
Удалить каталог DIG_PROJECTS_DIR_PATH/.es
.
Вы потеряете все данные и индексы предыдущих версий Elastic Search и Kibana.
20 октября 2017 г. в инструменте Landmark (1.1.0) произошли несовместимые изменения. Определенные вами правила будут удалены при обновлении до новой системы. Пожалуйста, следуйте этим инструкциям:
Удалить DIG_PROJECTS_DIR_PATH/.landmark
Удалите файлы в папке DIG_PROJECTS_DIR_PATH/<project_name>/landmark_rules/*
В веб-сервисе myDIG (1.0.11) также есть несовместимые изменения. Вместо сбоя в таблице TLD будут отображаться значения N/A
, вам необходимо обновить желаемое число.
Графический интерфейс веб-сервиса MyDIG: http://localhost:12497/mydig/ui/
Эластичный поиск: http://localhost:12497/es/
Кибана: http://localhost:12497/kibana/
Менеджер Kafka (необязательно): http://localhost:12497/kafka_manager/
# run with ache ./engine.sh +ache up # run with ache and rss crawler in background ./engine.sh +ache +rss up -d # stop containers ./engine.sh stop # drop containers ./engine.sh down
В файле .env
добавьте имена надстроек, разделенные запятыми:
DIG_ADD_ONS=ache,rss
Затем просто выполните ./engine.sh up
. Вы также можете вызывать дополнительные надстройки во время выполнения: ./engine.sh +dev up
.
ache
: ACHE Crawler (скоро).
rss
: RSS Feed Crawler (скоро).
kafka-manager
: Менеджер Kafka.
dev
: режим разработки.
COMPOSE_PROJECT_NAME=dig DIG_PROJECTS_DIR_PATH=./../mydig-projects DOMAIN=localhost PORT=12497 NUM_ETK_PROCESSES=2 KAFKA_NUM_PARTITIONS=2 DIG_AUTH_USER=admin DIG_AUTH_PASSWORD=123 DIG_ADD_ONS=ache KAFKA_HEAP_SIZE=512m ZK_HEAP_SIZE=512m LS_HEAP_SIZE=512m ES_HEAP_SIZE=1g DIG_NET_SUBNET=172.30.0.0/16 DIG_NET_KAFKA_IP=172.30.0.200 # only works in development mode MYDIG_DIR_PATH=./../mydig-webservice ETK_DIR_PATH=./../etk SPACY_DIR_PATH=./../spacy-ui RSS_DIR_PATH=./../dig-rss-feed-crawler
Если некоторые образы Docker (с меткой latest
») в файле docker-compose обновлены, сначала запустите docker-compose pull <service name>
.
Данные в очереди Kafka будут очищены через два дня. Если вы хотите немедленно удалить данные, удалите контейнер Kafka.
Если вы хотите запустить собственную конфигурацию ETK, назовите этот файл custom_etk_config.json
и поместите его в DIG_PROJECTS_DIR_PATH/<project_name>/working_dir/
.
Если у вас есть дополнительные файлы конфигурации ETK, вставьте их в DIG_PROJECTS_DIR_PATH/<project_name>/working_dir/additional_etk_config/
(создайте каталог additional_etk_config
, если его там нет).
Если вы используете пользовательскую конфигурацию ETK или дополнительные конфигурации etk, вам необходимо позаботиться обо всех путях к файлам в этих файлах конфигурации. DIG_PROJECTS_DIR_PATH/<project_name>
будет сопоставлен с /shared_data/projects/<project_name>
в докере, поэтому убедитесь, что все пути, которые вы использовали в конфигурации, начинаются с этого префикса.
Если вы хотите очистить все данные ElasticSearch, удалите каталог .es
в вашем DIG_PROJECTS_DIR_PATH
.
Если вы хотите очистить все данные базы данных Landmark Tool, удалите каталог .landmark
в своем DIG_PROJECTS_DIR_PATH
. Но это сделает опубликованные правила неотслеживаемыми.
В Linux, если вы не можете получить доступ к сети Docker с хост-машины: 1. остановите контейнеры Docker 2. выполните docker network ls
, чтобы узнать идентификатор dig_net
и найти этот идентификатор в ifconfig
, выполните ifconfig <interface id> down
чтобы удалить этот сетевой интерфейс и перезапустите службу докеров.
Если в Linux DNS не работает правильно в dig_net
, обратитесь к этому сообщению.
В Linux решения потенциальной проблемы с Elastic Search можно найти здесь.
Если возник конфликт в сети Docker, используйте docker network rm <network id>
чтобы удалить конфликтующую сеть.
POST /create_project
{ "project_name" : "new_project" }
POST /run_etk
{ "project_name" : "new_project", "number_of_workers": 4, "input_offset": "seek_to_end", // optional "output_offset": "seek_to_end" // optional }
POST /kill_etk
{ "project_name" : "new_project", "input_offset": "seek_to_end", // optional "output_offset": "seek_to_end" // optional }
Создайте файл .env
из .env.example
и измените переменные среды.
Запустите ./engine.sh up
для версии для песочницы.
Запустите docker-compose -f docker-compose-production.yml up
для рабочей версии.
Двигатель DIG ETL: 9999
Кафка: 9092
Смотритель зоопарка: 2181
ЭластичныйПоиск: 9200, 9300
Наждачная бумага: 9876
Интерфейс копания: 8080
myDIG: 9879 (ws), 9880 (gui), 9881 (пространственный интерфейс), 12121 (демон, привязка к локальному хосту)
Инструмент ориентира: 3333, 5000, 3306
Logstash: 5959 (udp, используется журналом etk)
Кибана: 5601
Нгинкс: 80
dig_net
— это локальная сеть в Docker Compose.
построить образ Nginx:
docker build -t uscisii2/nginx:auth-1.0 nginx/.
построить ETL-образ:
# git commit all changes first, then ./release_docker.sh tag git push --tags # update DIG_ETL_ENGINE_VERSION in file VERSION ./release_docker.sh build ./release_docker.sh push
Вызов режима разработки:
# clone a new etl to avoid conflict git clone https://github.com/usc-isi-i2/dig-etl-engine.git dig-etl-engine-dev # swith to dev branch or other feature branches git checkout dev # create .env from .env.example # change `COMPOSE_PROJECT_NAME` in .env from `dig` to `digdev` # you also need a new project folder # run docker in dev branch ./engine.sh up # run docker in dev mode (optional) ./engine.sh +dev up
auto_offset_resetedit
Тип значения — строка
Для этого параметра не существует значения по умолчанию.
Что делать, если в Kafka нет начального смещения или смещение выходит за пределы допустимого диапазона:
самое раннее: автоматически сбрасывает смещение на самое раннее смещение.
последнее: автоматически сбрасывает смещение на последнее смещение.
none: выдать исключение потребителю, если для группы потребителя не найдено предыдущее смещение.
что-нибудь еще: выдать исключение потребителю.
bootstrap_servers
Тип значения — строка
Значение по умолчанию: «localhost:9092».
Список URL-адресов, которые будут использоваться для установления первоначального подключения к кластеру. Этот список должен иметь вид хост1:порт1,хост2:порт2. Эти URL-адреса используются только для первоначального подключения, чтобы обнаружить полное членство в кластере (которое может меняться динамически), поэтому этот список не обязательно должен содержать полный набор серверов (вы можете хотя мне нужно больше одного, на случай, если сервер выйдет из строя).
consumer_threads
Тип значения — число
Значение по умолчанию — 1.
В идеале для идеального баланса у вас должно быть столько потоков, сколько разделов — больше потоков, чем разделов, означает, что некоторые потоки будут простаивать.
group_id
Тип значения — строка
Значение по умолчанию — «logstash».
Идентификатор группы, к которой принадлежит этот потребитель. Группа потребителей — это единый логический подписчик, состоящий из нескольких процессоров. Сообщения в теме будут распространяться на все экземпляры Logstash с одинаковым group_id.
topics
Тип значения — массив
Значение по умолчанию: ["logstash"]
Список тем, на которые можно подписаться, по умолчанию — ["logstash"].