...
Code Block |
---|
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE properties SYSTEM "http://java.sun.com/dtd/properties.dtd">
<properties>
<comment>OdysseusNet Property File edit only if you know what you are doing</comment>
<entry key="net.networkoperatorgenerator">websocket</entry>
<entry key="net.node.default.username">System</entry>
<entry key="net.dd.local">true</entry>
<entry key="net.node.name">OdysseusNode_1554</entry>
<entry key="net.discoverer.name">BroadcastOdysseusNodeDiscoverer,IPListOdysseusNodeDiscoverer</entry>
<entry key="net.querydistribute.allocation">querycount</entry>
<entry key="net.source.lifetime">3600000</entry>
<entry key="net.connect.selector.name">GroupSelectorComponent</entry>
<entry key="net.nodemanager.storetype">filestore</entry>
<entry key="net.nodemanager.filename">/home/$USER/.odysseus/store/nodes.store</entry>
<entry key="net.dd.checkinterval">30000</entry>
<entry key="net.remoteUpdate">false</entry>
<entry key="net.node.communicator">rest</entry>
<entry key="net.node.preserveid">false</entry>
<entry key="net.querydistribute.minport">10000</entry>
<entry key="net.autostart">true</entry>
<entry key="net.querydistribute.partition">querycloud</entry>
<entry key="net.querydistribute.randomport">false</entry>
<entry key="net.discoverer.interval">5000</entry>
<entry key="net.node.default.password">manager</entry>
<entry key="net.node.group">OdysseusGroup</entry>
<entry key="net.querydistribute.maxport">20000</entry>
<entry key="net.logging.receive">false</entry>
</properties> |
Replace $USER with your local user
Setup of Odysseus worker nodes
if you want to persist your registered nodes, you could also add:
Code Block |
---|
<entry key="net.nodemanager.storetype">filestore</entry>
<entry key="net.nodemanager.filename"><PATHTOHOME>/store/nodes.store</entry> |
In this case you should replace <PATHTOHOME> e.g. with the ODYSSEUS_HOME folder.
Setup of Odysseus worker nodes
Now we start Nexmark (a data stream simulation Now we start Nexmark (a data stream simulation tool, see Getting Started with Nexmark) and Odysseus worker nodes with docker-compose, therefore create a docker-compose.yml in a directory (it will be named $CURRENT_DIRECTORY here for reference, in practice it could be e. g. the odysseusnet-repo) and with the following content (adopted from OdysseusNet Docker Compose Example):
...
Code Block |
---|
docker-compose up -d |
Setup of Odysseus Webstudio
You can use the Odysseus Webstudio (WebStudio) for monitoring and interacting with the worker nodes. To install it, first clone the Webstudio-repo (https://git.swl.informatik.uni-oldenburg.de/projects/API_APPS/repos/webstudio/browse?at=refs%2Fheads%2Fdevelopment) and checkout the development-branch with
Code Block |
---|
git clone https://git.swl.informatik.uni-oldenburg.de/scm/api_apps/webstudio.git
git checkout -b development |
Then create and give the all permissions to everyone to the following directories as a workaround:
Code Block |
---|
mkdir frontend odysseushome
chmod 777 -R frontend odysseushome |
For starting the docker stack you can set the images accordingly in the docker-compose.yml file:
Configuring inside docker compose
As the nodes read their configuration from sytem-properties and enviroment before looking into the config file, you can overwrite the configuration like in the following docker compose example:
Code Block |
---|
version: '3.8'
services:
nexmark:
image: odysseusol/nexmark
ports:
- 65440-65443:65440-65443
node01:
image: odysseusol/odysseusnet
stdin_open: true |
Code Block |
version: '3.3' services: frontend: image: odysseusol/webstudio_frontend #build: frontend ports: - "4200ports:80" environment: NODE_ENV: ${NODE_ENV}- 18881:8888 restart: always depends_onenvironment: - backend backend: image: odysseusol/webstudio_backend- net.node.name=node01 #build: backend ports: - net.net.discoverer.name=MulticastOdysseusNodeDiscoverer,BroadcastOdysseusNodeDiscoverer,IPListOdysseusNodeDiscoverer - "3000:3000" environment: NODE_ENV: ${NODE_ENV} - net.node.communicator=rest MONGODB_URI: ${MONGODB_URI}volumes: SECRET_TOKEN: ${SECRET_TOKEN} DOWNLOAD_TOKEN: ${DOWNLOAD_TOKEN} - ./node01:/var/lib/odysseus node02: PROJECTS_FOLDER: ${PROJECTS_FOLDER} image: odysseusol/odysseusnet restart: always dependsstdin_onopen: true - databaseports: volumes: - backenddata:/home/node/app/projects18882:8888 - ./backend/logs:/home/node/app/logs database environment: image: mongo restart: always ports:- net.node.name=node02 - "27017:27017" volumes: - - mongodbdata:/data/db odysseus: image: odysseusol/odysseus restart: always ports: - "8889:8888" volumes: - ./odysseushome:/var/lib/odysseus volumes: mongodbdata: backenddata: odysseushome:net.net.discoverer.name=MulticastOdysseusNodeDiscoverer,BroadcastOdysseusNodeDiscoverer,IPListOdysseusNodeDiscoverer - net.node.communicator=rest volumes: - ./node02:/var/lib/odysseus node03: image: odysseusol/odysseusnet stdin_open: true ports: - 18883:8888 environment: - net.node.name=node03 - net.net.discoverer.name=MulticastOdysseusNodeDiscoverer,BroadcastOdysseusNodeDiscoverer,IPListOdysseusNodeDiscoverer - net.node.communicator=rest volumes: - ./node03:/var/lib/odysseus node04: image: odysseusol/odysseusnet stdin_open: true ports: - 18884:8888 environment: - net.node.name=node04 - net.net.discoverer.name=MulticastOdysseusNodeDiscoverer,BroadcastOdysseusNodeDiscoverer,IPListOdysseusNodeDiscoverer - net.node.communicator=rest volumes: - ./node04:/var/lib/odysseus |
Setup of Odysseus Webstudio
You can use the Odysseus Webstudio (WebStudio) for monitoring and interacting with the worker nodes. There are two options:
- Only use the webstudio
- Develop the webstudio
Use the webstudio
If you just want to use the Webstudio you should just download the docker-compose.yml file from here:
For Linux: As this is not a root container, you need to give read access to the user of the docker container. The easiest way is to use 777
Develop the webstudio
To install it, first clone the Webstudio-repo (https://git.swl.informatik.uni-oldenburg.de/projects/API_APPS/repos/webstudio/browse?at=refs%2Fheads%2Fdevelopment) and checkout the development-branch with
Code Block |
---|
git clone https://git.swl.informatik.uni-oldenburg.de/scm/api_apps/webstudio.git
git checkout -b development |
Then create and give the all permissions to everyone to the following directories as a workaround:
Code Block |
---|
mkdir backend
chmod 777 -R backend |
For starting the docker stack you can set the images accordingly in the docker-compose.yml in the home dir
At last you can start the stack with:
...
Add the nodes in Odysseus Studio
Before adding the worker nodes to Odysseus Studio, stop the OdysseusNet feature in the nodes tab, it will be started automatically when adding the nodes dynamically with OdysseusScriptIt the view is not available, you should use Window/Show View/other... and then select Nodes from the OdysseusNet section.
Before you can install queries on the nodes, you have to add the worker nodes with:
...