myDIG adalah alat untuk membangun saluran yang merayapi web, mengekstrak informasi, membuat grafik pengetahuan (KG) dari ekstraksi, dan menyediakan antarmuka pengguna yang mudah untuk menanyakan KG. Halaman web proyek adalah DIG.
Anda dapat menginstal myDIG di laptop atau server dan menggunakannya untuk membangun aplikasi pencarian khusus domain untuk korpus halaman web apa pun, CSV, JSON, dan berbagai file lainnya.
panduan instalasi ada di bawah
panduan pengguna
panduan pengguna tingkat lanjut
Sistem operasi: Linux, MacOS atau Windows
Persyaratan sistem: memori minimal 8GB
myDIG menggunakan Docker untuk memudahkan instalasi:
Instal Docker dan Docker Compose.
Konfigurasikan Docker untuk menggunakan setidaknya 6 GB memori. DIG tidak akan berfungsi dengan kurang dari 4GB dan tidak stabil dengan kurang dari 6GB.
Di Mac dan Windows, Anda dapat mengatur memori Docker di menu Preferensi aplikasi Docker. Detailnya ada di halaman dokumentasi Docker (Mac Docker atau Windows Docker). Di Linux, Docker dibangun di atas kernel LXC, diperlukan kernel versi terbaru dan memori host yang cukup.
Kloning repositori ini.
git clone https://github.com/usc-isi-i2/dig-etl-engine.git
myDIG menyimpan file proyek Anda di disk Anda, jadi Anda perlu memberi tahu di mana menyimpan file tersebut. Anda memberikan informasi ini dalam file .env
di folder tempat Anda menginstal myDIG. Buat file .env
dengan menyalin contoh file lingkungan yang tersedia di instalasi Anda.
cp ./dig-etl-engine/.env.example ./dig-etl-engine/.env
Setelah Anda membuat file .env
, buka di editor teks dan sesuaikan. Berikut ini adalah file .env
yang khas:
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
: biarkan yang ini jika Anda hanya memiliki satu instance myDIG. Ini adalah awalan untuk membedakan instance penulisan buruh pelabuhan.
DIG_PROJECTS_DIR_PATH
: ini adalah folder tempat myDIG akan menyimpan file proyek Anda. Pastikan direktori tersebut ada. Pengaturan default akan menyimpan file Anda di ./mydig-projects
, begitu juga mkdir ./mydig-projects
jika Anda ingin menggunakan folder default.
DOMAIN
: ubah ini jika Anda menginstal di server yang akan diakses dari mesin lain.
PORT
: Anda dapat menyesuaikan port tempat myDIG berjalan.
NUM_ETK_PROCESSES
: myDIG menggunakan multi-pemrosesan untuk menyerap file. Tetapkan nomor ini sesuai dengan jumlah inti yang Anda miliki pada mesin. Kami tidak menyarankan untuk mengaturnya menjadi lebih dari 4 di laptop.
KAFKA_NUM_PARTITIONS
: nomor partisi per topik. Setel ke nilai yang sama dengan NUM_ETK_PROCESSES
. Ini tidak akan memengaruhi nomor partisi yang ada di topik Kafka kecuali Anda menghapus wadah Kafka (Anda akan kehilangan semua data di topik Kafka).
DIG_AUTH_USER, DIG_AUTH_PASSWORD
: myDIG menggunakan nginx untuk mengontrol akses.
Jika Anda menggunakan Linux, lakukan langkah tambahan berikut:
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
Untuk mengatur
vm.max_map_count
secara permanen, harap perbarui di/etc/sysctl.conf
dan muat ulang pengaturan sysctl dengansysctl -p /etc/sysctl.conf
.
Pindahkan instalasi buruh pelabuhan default (jika buruh pelabuhan kehabisan memori) ke volume
sudo mv /var/lib/docker /path_with_more_space sudo ln -s /path_with_more_space /var/lib/docker
Untuk menjalankan myDIG lakukan:
./engine.sh up
Perintah Docker memperoleh hak istimewa tinggi di beberapa OS, tambahkan
sudo
sebelumnya. Anda juga dapat menjalankan./engine.sh up -d
untuk menjalankan myDIG sebagai proses daemon di latar belakang. Tunggu beberapa menit untuk memastikan semua layanan aktif.
Untuk menghentikan myDIG lakukan:
./engine.sh stop
(Gunakan /engine.sh down
untuk menjatuhkan semua kontainer)
Setelah myDIG berjalan, buka browser Anda dan kunjungi http://localhost:12497/mydig/ui/
Catatan: myDIG saat ini hanya berfungsi di Chrome
Untuk menggunakan myDIG, lihat panduan pengguna
myDIG v2 sekarang dalam versi alfa, ada beberapa perubahan besar dan tidak kompatibel.
data, konfigurasi, dan log komponen tidak ada di DIG_PROJECTS_DIR_PATH/.*
.
Data antrian Kafka TIDAK akan dibersihkan bahkan setelah melakukan ./engine.sh down
, Anda perlu menghapus DIG_PROJECTS_DIR_PATH/.kafka
lalu restart mesin (jika Anda mengubah NUM_ETK_PROCESSES
).
Tidak ada lagi sumber daya default, jika file sumber daya (glosarium) tidak kompatibel, silakan hapus.
Tidak ada lagi custom_etk_config.json
atau additional_etk_config/*
, sebagai gantinya, modul ETK yang dihasilkan ada di working_dir/generated_em
dan modul tambahan ada di working_dir/additional_ems
.
Log ETK tidak sepenuhnya diterapkan dan diuji. Log runtime akan DITERIMA ke working_dir/etk_worker_*.log
.
Editor aturan spasi tidak berfungsi.
Komponen ELK (Elastic Search, LogStash & Kibana) telah ditingkatkan ke 5.6.4 dan layanan lain di myDIG juga mendapat pembaruan. Yang perlu Anda lakukan adalah:
docker-compose down
Hapus direktori DIG_PROJECTS_DIR_PATH/.es
.
Anda akan kehilangan semua data dan indeks di Elastic Search dan Kibana sebelumnya.
Pada tanggal 20 Oktober 2017 terdapat perubahan yang tidak kompatibel pada alat Landmark (1.1.0), aturan yang Anda tetapkan akan dihapus saat Anda meningkatkan ke sistem baru. Silakan ikuti petunjuk berikut:
Hapus DIG_PROJECTS_DIR_PATH/.landmark
Hapus file di DIG_PROJECTS_DIR_PATH/<project_name>/landmark_rules/*
Ada juga perubahan yang tidak kompatibel di layanan web myDIG (1.0.11). Alih-alih mogok, ini akan menampilkan N/A
di tabel TLD, Anda perlu memperbarui nomor yang diinginkan.
GUI layanan web MyDIG: http://localhost:12497/mydig/ui/
Pencarian Elastis: http://localhost:12497/es/
Kibana: http://localhost:12497/kibana/
Manajer Kafka (opsional): 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
Dalam file .env
, tambahkan nama add-on yang dipisahkan koma:
DIG_ADD_ONS=ache,rss
Lalu, lakukan saja ./engine.sh up
. Anda juga dapat menjalankan add-on tambahan saat run time: ./engine.sh +dev up
.
ache
: ACHE Crawler (segera hadir).
rss
: Perayap Umpan RSS (segera hadir).
kafka-manager
: Manajer Kafka.
dev
: Mode pengembangan.
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
Jika beberapa gambar buruh pelabuhan (yang diberi tag latest
) di file docker-compose diperbarui, jalankan docker-compose pull <service name>
terlebih dahulu.
Data dalam antrian kafka akan dibersihkan setelah dua hari. Jika Anda ingin segera menghapus datanya, letakkan wadah kafka.
Jika Anda ingin menjalankan konfigurasi ETK Anda sendiri, beri nama file ini ke custom_etk_config.json
dan letakkan di DIG_PROJECTS_DIR_PATH/<project_name>/working_dir/
.
Jika Anda memiliki file konfigurasi ETK tambahan, silakan tempelkan ke DIG_PROJECTS_DIR_PATH/<project_name>/working_dir/additional_etk_config/
(buat direktori additional_etk_config
jika tidak ada).
Jika Anda menggunakan konfigurasi ETK khusus atau konfigurasi etk tambahan, Anda harus menjaga semua jalur file dalam file konfigurasi ini. DIG_PROJECTS_DIR_PATH/<project_name>
akan dipetakan ke /shared_data/projects/<project_name>
di buruh pelabuhan, jadi pastikan semua jalur yang Anda gunakan dalam konfigurasi dimulai dengan awalan ini.
Jika Anda ingin membersihkan semua data ElasticSearch, hapus direktori .es
di DIG_PROJECTS_DIR_PATH
Anda.
Jika Anda ingin membersihkan semua data database Landmark Tool, hapus direktori .landmark
di DIG_PROJECTS_DIR_PATH
Anda. Namun hal ini akan membuat peraturan yang diterbitkan tidak dapat dilacak.
Di Linux, jika Anda tidak dapat mengakses jaringan buruh pelabuhan dari mesin host: 1. hentikan wadah buruh pelabuhan 2. lakukan docker network ls
untuk mengetahui id dig_net
dan temukan id ini di ifconfig
, lakukan ifconfig <interface id> down
untuk menghapus antarmuka jaringan ini dan mulai ulang layanan buruh pelabuhan.
Di Linux, jika DNS tidak berfungsi dengan benar di dig_net
, silakan merujuk ke postingan ini.
Di Linux, solusi untuk potensi masalah Elastic Search dapat ditemukan di sini.
Jika ada konflik jaringan buruh pelabuhan, gunakan docker network rm <network id>
untuk menghapus jaringan yang konflik.
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 }
Buat file .env
dari .env.example
dan ubah variabel lingkungan.
Jalankan ./engine.sh up
untuk versi sandbox.
Jalankan docker-compose -f docker-compose-production.yml up
untuk versi produksi.
Mesin DIG ETL: 9999
Kafka: 9092
Penjaga Kebun Binatang: 2181
ElasticSearch: 9200, 9300
Amplas: 9876
DIG UI: 8080
myDIG: 9879 (ws), 9880 (gui), 9881 (spacy ui), 12121 (daemon, ikat ke localhost)
Alat Tengara: 3333, 5000, 3306
Logstash: 5959 (udp, digunakan oleh etk log)
Kibana: 5601
Nginx: 80
dig_net
adalah LAN dalam penulisan Docker.
membangun gambar Nginx:
docker build -t uscisii2/nginx:auth-1.0 nginx/.
membangun gambar 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
Aktifkan mode pengembangan:
# 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
Tipe nilai adalah string
Tidak ada nilai default untuk pengaturan ini.
Apa yang harus dilakukan jika tidak ada offset awal di Kafka atau jika offset berada di luar jangkauan:
paling awal: secara otomatis mengatur ulang offset ke offset paling awal
terbaru: secara otomatis mengatur ulang offset ke offset terbaru
none: memberikan pengecualian kepada konsumen jika tidak ditemukan offset sebelumnya untuk grup konsumen
hal lain: memberikan pengecualian kepada konsumen.
bootstrap_servers
Tipe nilai adalah string
Nilai defaultnya adalah "localhost:9092"
Daftar URL yang akan digunakan untuk membuat koneksi awal ke klaster. Daftar ini harus dalam bentuk host1:port1,host2:port2 Url ini hanya digunakan untuk koneksi awal untuk menemukan keanggotaan cluster penuh (yang dapat berubah secara dinamis) sehingga daftar ini tidak perlu berisi set lengkap server (Anda dapat menginginkan lebih dari satu, jika server sedang down).
consumer_threads
Tipe nilai adalah angka
Nilai defaultnya adalah 1
Idealnya Anda harus memiliki thread sebanyak jumlah partisi untuk keseimbangan sempurna — lebih banyak thread daripada partisi berarti beberapa thread akan menganggur
group_id
Tipe nilai adalah string
Nilai defaultnya adalah "logstash"
Pengidentifikasi grup yang dimiliki konsumen ini. Kelompok konsumen adalah pelanggan logis tunggal yang terdiri dari beberapa prosesor. Pesan dalam suatu topik akan didistribusikan ke semua instance Logstash dengan group_id yang sama
topics
Tipe nilai adalah array
Nilai defaultnya adalah ["logstash"]
Daftar topik untuk berlangganan, defaultnya adalah ["logstash"].