Coder Social home page Coder Social logo

ow2-proactive / proactive-examples Goto Github PK

View Code? Open in Web Editor NEW
6.0 14.0 35.0 142.27 MB

This repository centralizes all the proactive objects (workflows, rules,..)

Groovy 24.35% Python 70.86% C 0.94% Java 2.43% Shell 0.85% HiveQL 0.05% HTML 0.27% HCL 0.24%
workflows proactive

proactive-examples's Introduction

ProActive Examples

This repository includes a sub directory per bucket, in which a metadata file centralizes object-related-information: bucket name, object name, object kind,..

The aim of this project is to centralize all proactive workflows and other related objects (scripts, images, etc). The workflows from the ProActive Examples project are pushed to Catalog storage inside proactive.

How to build

Please run next command: gradlew clean zip or gradlew clean build This will generate the proactive-examples.zip file inside project's build folder.

How to test locally

Copy the genarated proactive-examples.zip file to your PA_SCHEDULER_HOME/samples directory. Start your proactive distribution. From this point everything should work ok. During scheduling startup: the proactive-examples.zip archive will be extracted to PA_SCHEDULER_HOME/samples/workflows/proactive-examples folder. On the next step the special groovy script will automatically push the workflows from proactive-examples folder to Catalog storage. If you need to retest the extracting and loading of proactive-examples, please remove the samples/packages.loaded file. Also to test the filling of catalog storage don't forget to clean database.

The example of exact commands to test locally on linux:

1) PA_SCHEDULER_HOME is the path to your local Proactive distribution folder. You need to `cd` to this folder.
2) rm -f samples/packages.loaded
3) rm -fr data/*
4) you need to `cd` into your locally cloned proactive-examples project folder
5) ./gradlew clean zip
6) cp build/proactive-examples.zip PA_SCHEDULER_HOME/samples/
7) go back to PA_SCHEDULER_HOME and start proactive-server
8) ./PA_SCHEDULER_HOME/bin/proactive-server

How to add a new package

  1. Create a folder with the desired package name (e.g. TextAnalysis).

  2. Add a METADATA.json file into the package (e.g. TextAnalysis/METADATA.json).

  3. Insert the following JSON structure into the METADATA.json file:

{
	"metadata": {
		"slug": "textanalysis",
		"name": "Text Analysis",
		"short_description": "Text analysis with machine learning and deep learning on Docker",
		"author": "ActiveEon's Team",
		"version": "1.0"
	},
	"catalog" : {
		"bucket" : "ai-machine-learning",
		"objects" : [
			{
				"name" : "text_analysis",
				"metadata" : {
					"kind": "Workflow/standard",
					"commitMessage": "First commit",
					"contentType": "application/xml"
				},
				"file" : "resources/catalog/text_analysis.xml"
			}
		]
	}
}

3.1) Update the metadata fields:

    • metadata->slug - compact name of the package.
    • metadata->name - name of the package.
    • metadata->short_description - short description of the package.

3.2) Update the catalog fields:

    • catalog->bucket - Set the name of the bucket(s) for this package. A package can be installed in one or multiple buckets. Therefore, the bucket name can be a String value as in the example above (i.e "Machine_Learning") or a JSON array value as in ["Bucket_1","Bucket_2","Bucket_X"].
    • catalog->objects - Add an object of each workflow of the package.

An example of a catalog object that represents a workflow:

{
				"name" : "text_analysis",
				"metadata" : {
					"kind": "Workflow/standard",
					"commitMessage": "First commit",
					"contentType": "application/xml"
				},
				"file" : "resources/catalog/text_analysis.xml"
			}
    • object->name - Name of the workflow.
    • object->file - Relative path of the XML file of the workflow.
  1. Add the XML file(s) of the workflow(s) into resources/catalog/ inside your package folder (e.g. TextAnalysis/resources/catalog/text_analysis.xml).

  2. By default all new buckets will be added after all existing buckets inside catalog. So no need by default to add bucket name to ordered_bucket_list file.

But if you need to have strict order of buckets, then please update ordered_bucket_list by adding the package name (order by name). The whole list should be stored as 1 line without any spaces or end line character.

The rules for added workflows

All the workflows added in proactive-examples project have to follow the next rules:

. Every single workflow of packages distributed by Activeeon (as all the workflows from proactive-examples), MUST HAVE a Workflow Generic Information "workflow.icon" with a meaningful Icon . URL of this icon MUST reference a local file . If a workflow has a single task, this task MUST HAVE a Task Generic Information "task.icon" with the same icon as the Workflow

  • In case if workflow is not corresponding to specified rules: the test inside the proactive-examples project will fail.

That's all!

proactive-examples's People

Contributors

alexfalessi avatar alijawadfahs avatar aminelouati avatar amouhoub avatar andrewssobral avatar bamedro avatar carolinepacheco avatar chloegugli avatar dianajlailaty avatar fviale avatar gparanthoen avatar hiba-alili avatar imenbizid avatar jrochas avatar luispinedamx avatar maelaudren avatar marcocast avatar marounkoussaifi avatar mbenguig avatar mboussaa avatar medou-boushab avatar mklkun avatar mykhailenko avatar nebilbenmabrouk avatar nxnarbais avatar oanabiancaschiopu avatar rsaidane avatar shatalovyaroslav avatar sophiesongge avatar tobwiens avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

proactive-examples's Issues

Add a check gate at the PR level to validate that packages remains valid

There's no control over the packages changes and that leads to errors when injecting those packages into a Catalog. This is problematic for the ProActive release because it prevents the latter to boot properly.
A control check should be triggered on this repo at the PR step to validate that the packages integrity remains, either by putting in places some rules like a schema or simply run the loadPackages script on a mocked/blank Catalog.

Merge swarm deployment workflows

As a user point of view, swarm.xml(1), swarm_configuration.xml(2) and swarm_remote_deployment.xml(3) must be merged. Currently (1) works on try/trydev and (3)=(1)+(2) by adding some sys instructions to (1) (chmod, ssh-keygen,..). We could implement a global/stronger wkw by merging them and adding job variables to trigger/not trigger sys actions.

ProActive portals look and feel customization

In order to customize the studio look and feel (and why not of other portals), it could be achieved using the deployment script which will have in charge portal customizations. We mean by customization, the insertion of a specific picture/png into a portal UI.

Inner portal links (yarn nodemangers links) YARN UI Reverse Proxy

I tried to find a reverse proxy for hadoop like spark reverse proxy to redirect the inner links of the nodemanager, but unfortunately there isn't an official one, here is a link to a discussion of a similar problem helm/charts#13671

I can change the nodeID of the node http address manually by changing the hostname of the container to trydev2.activeeon.com for example and I get trydev2.activeeon.com:8042 as address, but there is an issue with https proxy.

There is a Web Application Proxy for version 3.x, and we have 2.x https://hadoop.apache.org/docs/stable/hadoop-yarn/hadoop-yarn-site/WebApplicationProxy.html but in the documentation they said it's for security reasons only, not a reverse proxy like spark.
I've built a docker version with hadoop 3.3.1, and I run it with the workflow yarn, but I didn't find the right configuration to run the Web Application Proxy yet.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.