myDIG es una herramienta para crear canales que rastrean la web, extraen información, crean un gráfico de conocimiento (KG) a partir de las extracciones y proporcionan una interfaz de usuario fácil para consultar el KG. La página web del proyecto es DIG.
Puede instalar myDIG en una computadora portátil o servidor y usarlo para crear una aplicación de búsqueda de dominio específico para cualquier corpus de páginas web, CSV, JSON y una variedad de otros archivos.
la guía de instalación está a continuación
guía de usuario
guía de usuario avanzada
Sistemas operativos: Linux, MacOS o Windows
Requisitos del sistema: mínimo 8 GB de memoria
myDIG usa Docker para facilitar la instalación:
Instale Docker y Docker Compose.
Configure Docker para utilizar al menos 6 GB de memoria. DIG no funcionará con menos de 4 GB y es inestable con menos de 6 GB.
En Mac y Windows, puede configurar la memoria de Docker en el menú Preferencias de la aplicación Docker. Los detalles se encuentran en las páginas de documentación de Docker (Mac Docker o Windows Docker). En Linux, Docker se basa en LXC del kernel; se requiere la última versión del kernel y suficiente memoria en el host.
Clona este repositorio.
git clone https://github.com/usc-isi-i2/dig-etl-engine.git
myDIG almacena los archivos de su proyecto en su disco, por lo que debe indicarle dónde colocar los archivos. Usted proporciona esta información en el archivo .env
en la carpeta donde instaló myDIG. Cree el archivo .env
copiando el archivo de entorno de ejemplo disponible en su instalación.
cp ./dig-etl-engine/.env.example ./dig-etl-engine/.env
Después de crear su archivo .env
, ábralo en un editor de texto y personalícelo. Aquí hay un archivo .env
típico:
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
: déjelo en paz si solo tiene una instancia myDIG. Este es el prefijo para diferenciar instancias de Docker-Compose.
DIG_PROJECTS_DIR_PATH
: esta es la carpeta donde myDIG almacenará los archivos de su proyecto. Asegúrese de que el directorio exista. La configuración predeterminada almacenará sus archivos en ./mydig-projects
, al igual que mkdir ./mydig-projects
si desea utilizar la carpeta predeterminada.
DOMAIN
: cambie esto si instala en un servidor al que se accederá desde otras máquinas.
PORT
: puede personalizar el puerto donde se ejecuta myDIG.
NUM_ETK_PROCESSES
: myDIG utiliza multiprocesamiento para ingerir archivos. Establezca este número de acuerdo con la cantidad de núcleos que tenga en la máquina. No recomendamos configurarlo en más de 4 en una computadora portátil.
KAFKA_NUM_PARTITIONS
: números de partición por tema. Configúrelo en el mismo valor que NUM_ETK_PROCESSES
. No afectará el número de partición existente en los temas de Kafka a menos que suelte el contenedor de Kafka (perderá todos los datos en los temas de Kafka).
DIG_AUTH_USER, DIG_AUTH_PASSWORD
: myDIG usa nginx para controlar el acceso.
Si está trabajando en Linux, siga estos pasos adicionales:
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
Para configurar
vm.max_map_count
de forma permanente, actualícelo en/etc/sysctl.conf
y vuelva a cargar la configuración de sysctl mediantesysctl -p /etc/sysctl.conf
.
Mover la instalación predeterminada de Docker (si Docker se queda sin memoria) a un volumen
sudo mv /var/lib/docker /path_with_more_space sudo ln -s /path_with_more_space /var/lib/docker
Para ejecutar myDIG haga:
./engine.sh up
Los comandos de Docker adquieren altos privilegios en algunos de los sistemas operativos; agregue
sudo
antes de ellos. También puede ejecutar./engine.sh up -d
para ejecutar myDIG como un proceso demonio en segundo plano. Espere un par de minutos para asegurarse de que todos los servicios estén activos.
Para detener myDIG haga:
./engine.sh stop
(Use /engine.sh down
para soltar todos los contenedores)
Una vez que myDIG se esté ejecutando, vaya a su navegador y visite http://localhost:12497/mydig/ui/
Nota: myDIG actualmente solo funciona en Chrome
Para usar myDIG, consulte la guía del usuario
myDIG v2 ahora está en alfa, hay un par de cambios importantes e incompatibles.
los datos, las configuraciones y los registros de los componentes no están en DIG_PROJECTS_DIR_PATH/.*
.
Los datos de la cola de Kafka NO se limpiarán incluso después de hacer ./engine.sh down
, debe eliminar DIG_PROJECTS_DIR_PATH/.kafka
y luego reiniciar el motor (si cambia NUM_ETK_PROCESSES
).
Ya no hay ningún recurso predeterminado. Si un archivo de recursos (glosario) no es compatible, elimínelo.
Ya no hay custom_etk_config.json
o additional_etk_config/*
; en cambio, los módulos ETK generados están working_dir/generated_em
y los módulos adicionales están working_dir/additional_ems
.
El registro ETK no está completamente implementado ni probado. Los registros de tiempo de ejecución se AGREGARÁN working_dir/etk_worker_*.log
.
El editor de reglas Spacy no funciona.
Los componentes ELK (Elastic Search, LogStash y Kibana) se actualizaron a 5.6.4 y otros servicios en myDIG también se actualizaron. Lo que debes hacer es:
Hacer docker-compose down
Eliminar directorio DIG_PROJECTS_DIR_PATH/.es
.
Perderá todos los datos e índices en Elastic Search y Kibana anteriores.
El 20 de octubre de 2017, hay cambios incompatibles en la herramienta Landmark (1.1.0); las reglas que definiste se eliminarán cuando actualices al nuevo sistema. Siga estas instrucciones:
Eliminar DIG_PROJECTS_DIR_PATH/.landmark
Eliminar archivos en DIG_PROJECTS_DIR_PATH/<project_name>/landmark_rules/*
También hay cambios incompatibles en el servicio web myDIG (1.0.11). En lugar de fallar, mostrará N/A
en la tabla de TLD; deberá actualizar el número deseado.
GUI del servicio web MyDIG http://localhost:12497/mydig/ui/
Búsqueda elástica: http://localhost:12497/es/
Kibana: http://localhost:12497/kibana/
Administrador de Kafka (opcional): 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
En el archivo .env
, agregue nombres de complementos separados por comas:
DIG_ADD_ONS=ache,rss
Luego, simplemente haga ./engine.sh up
. También puede invocar complementos adicionales en tiempo de ejecución: ./engine.sh +dev up
.
ache
: ACHE Crawler (próximamente).
rss
: rastreador de feeds RSS (próximamente).
kafka-manager
: Administrador de Kafka.
dev
: Modo de desarrollo.
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
Si algunas de las imágenes de Docker (que están etiquetadas como latest
) en el archivo Docker-Compose se actualizan, primero ejecute docker-compose pull <service name>
.
Los datos en la cola de Kafka se limpiarán después de dos días. Si desea eliminar los datos inmediatamente, suelte el contenedor Kafka.
Si desea ejecutar su propia configuración de ETK, asigne a este archivo el nombre custom_etk_config.json
y colóquelo en DIG_PROJECTS_DIR_PATH/<project_name>/working_dir/
.
Si tiene archivos de configuración ETK adicionales, péguelos en DIG_PROJECTS_DIR_PATH/<project_name>/working_dir/additional_etk_config/
(cree el directorio additional_etk_config
si no está allí).
Si está utilizando una configuración ETK personalizada o configuraciones etk adicionales, debe cuidar todas las rutas de archivo en estos archivos de configuración. DIG_PROJECTS_DIR_PATH/<project_name>
se asignará a /shared_data/projects/<project_name>
en la ventana acoplable, así que asegúrese de que todas las rutas que utilizó en la configuración comiencen con este prefijo.
Si desea limpiar todos los datos de ElasticSearch, elimine el directorio .es
en su DIG_PROJECTS_DIR_PATH
.
Si desea limpiar todos los datos de la base de datos de Landmark Tool, elimine el directorio .landmark
en su DIG_PROJECTS_DIR_PATH
. Pero esto hará que las reglas publicadas sean imposibles de rastrear.
En Linux, si no puede acceder a la red Docker desde la máquina host: 1. Detenga los contenedores Docker. 2. Haga docker network ls
para averiguar el ID de dig_net
y busque este ID en ifconfig
. Haga ifconfig <interface id> down
para eliminar esta interfaz de red. y reinicie el servicio Docker.
En Linux, si DNS no funciona correctamente en dig_net
, consulte esta publicación.
En Linux, las soluciones para posibles problemas de Elastic Search se pueden encontrar aquí.
Si hay un conflicto en la red de Docker, use docker network rm <network id>
para eliminar la red en conflicto.
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 }
Cree un archivo .env
a partir de .env.example
y cambie las variables de entorno.
Ejecute ./engine.sh up
para la versión sandbox.
Ejecute docker-compose -f docker-compose-production.yml up
para la versión de producción.
Motor DIG ETL: 9999
Kafka: 9092
Cuidador del zoológico: 2181
Búsqueda elástica: 9200, 9300
Papel de lija: 9876
Interfaz de usuario de excavación: 8080
myDIG: 9879 (ws), 9880 (gui), 9881 (interfaz de usuario espaciosa), 12121 (daemon, vinculado a localhost)
Herramienta de referencia: 3333, 5000, 3306
Logstash: 5959 (udp, utilizado por etk log)
Kibana: 5601
Nginx: 80
dig_net
es la LAN en Docker Compose.
construir una imagen de Nginx:
docker build -t uscisii2/nginx:auth-1.0 nginx/.
construir una imagen 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
Invocar el modo de desarrollo:
# 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
El tipo de valor es cadena
No hay ningún valor predeterminado para esta configuración.
Qué hacer cuando no hay un desplazamiento inicial en Kafka o si un desplazamiento está fuera de rango:
más temprano: restablece automáticamente el desplazamiento al desplazamiento más antiguo
último: restablece automáticamente el desplazamiento al último desplazamiento
none: lanza una excepción al consumidor si no se encuentra una compensación anterior para el grupo del consumidor
cualquier otra cosa: lanzar una excepción al consumidor.
bootstrap_servers
El tipo de valor es cadena
El valor predeterminado es "localhost:9092"
Una lista de URL que se utilizarán para establecer la conexión inicial al clúster. Esta lista debe tener el formato host1:puerto1,host2:puerto2. Estas URL solo se utilizan para la conexión inicial para descubrir la membresía completa del clúster (que puede cambiar dinámicamente), por lo que no es necesario que esta lista contenga el conjunto completo de servidores (puede (Sin embargo, quiero más de uno, en caso de que un servidor no funcione).
consumer_threads
El tipo de valor es número
El valor predeterminado es 1
Lo ideal sería tener tantos subprocesos como particiones para lograr un equilibrio perfecto: más subprocesos que particiones significa que algunos subprocesos estarán inactivos.
group_id
El tipo de valor es cadena
El valor predeterminado es "logstash"
El identificador del grupo al que pertenece este consumidor. El grupo de consumidores es un suscriptor lógico único que está formado por varios procesadores. Los mensajes de un tema se distribuirán a todas las instancias de Logstash con el mismo group_id
topics
El tipo de valor es matriz
El valor predeterminado es ["logstash"]
Una lista de temas a los que suscribirse, por defecto es ["logstash"].