The Altair Community is migrating to a new platform to provide a better experience for you. In preparation for the migration, the Altair Community is on read-only mode from October 28 - November 6, 2024. Technical support via cases will continue to work as is. For any urgent requests from Students/Faculty members, please submit the form linked here

Help me understand how to implement Job Agents

Thomas_OttThomas_Ott RapidMiner Certified Analyst, RapidMiner Certified Expert, Member Posts: 1,761 Unicorn
edited November 2018 in Help

Hi Guys,

I have a brand new RapidMiner Server 8 installed and running. It's looking pretty darn good to me but I want to use multiple job-agents to control my executions.

 

I'm a bit confused on how to implement them. I did read the instructions but they're a bit terse and leave me confused. Help me understand how to implement them on the backend.

 

I have RM Server 8 running on my Windows laptop and installed to C:\RMServer8 directory. In there is the \job-agent diretory.  I go to Process Queues and see the Default queue, but now I want to create Queue1 and Queue2. So I add those queues and then click on install. I shutdown the Server and extract the new job-agent-queue1 zip file to the C:\RMServer8 directory.

 

Then what do I do I don't see any Queue 1 subdirectory. It gets really confusing for here. Do I do something like this:

 

|-job-agents

   |-queue1

   |-queue2

 

or something else

 

Thanks

 

 

Tagged:

Answers

  • Thomas_OttThomas_Ott RapidMiner Certified Analyst, RapidMiner Certified Expert, Member Posts: 1,761 Unicorn

    @sgenzer Bueller? Bueller?

  • MartinLiebigMartinLiebig Administrator, Moderator, Employee-RapidMiner, RapidMiner Certified Analyst, RapidMiner Certified Expert, University Professor Posts: 3,533 RM Data Scientist

    Tom,

     

    Job Agents are independed programs which can run on any computer. You can unzip them wereever you want - i guess even on your Pi. They need to have a network connection to the RM Server (JBOSS).

     

    Each JA is attached to exactly one queue. You can specify these assignements in the JA's config.

     

    Does this make sense?

     

    ~Martin

    - Sr. Director Data Solutions, Altair RapidMiner -
    Dortmund, Germany
  • Thomas_OttThomas_Ott RapidMiner Certified Analyst, RapidMiner Certified Expert, Member Posts: 1,761 Unicorn

    @mschmitz Thanks, I suspected they were independent but I didn't know if they needed to be installed in the same directory where RM Server is installed.

     

    So if I create a new queue called "General" and I download the Job Agent, is it preconfigured for the "General" queue or do I still need to go in the config file and edit it? I'm thinking no, but want your confirmation. 

     

    This is kind of neat, actually, so the overhead of processing is really offloaded from the RM Server to these Job Agents. The Server is just an orchestration layer then. 

  • MartinLiebigMartinLiebig Administrator, Moderator, Employee-RapidMiner, RapidMiner Certified Analyst, RapidMiner Certified Expert, University Professor Posts: 3,533 RM Data Scientist

    Tom,

     

    i think they are already connected to the queue you are downloading it from. But you can also just copy your JA 10x and change it's name and queue it's connected to. Just have a look at the main config file. It's well documented.

     

    ~Martin

    - Sr. Director Data Solutions, Altair RapidMiner -
    Dortmund, Germany
  • SGolbertSGolbert RapidMiner Certified Analyst, Member Posts: 344 Unicorn

    Hi Tom,

     

    you must specify the queue they connect to in the configuration file. I recommend deleting the shipped zip file and just copying the included JA directory, so that you don't have to type in a lot of information.

     

    If you copy it to another machine you also have to copy the server license file (and also all extentions that you use).

     

    Then you have to change the following entries:

     

    • jobagent.AppId: should be unique
    • rapidminer.server.host: IP address of the server
    • jobagent.queue.activemq.host: IP address of the server
    • jobagent.queue.job.request: Name of the queue

     

    Best,

    Sebastian

     

  • Thomas_OttThomas_Ott RapidMiner Certified Analyst, RapidMiner Certified Expert, Member Posts: 1,761 Unicorn

    @SGolbert, thanks. I've already offloaded the Job Agents to their own directories. Since I'm working in a Windows environment, they tend to be a PITA. Eventually I'll move the Server off to seperate Linux box where I can make things smoother!


    Thanks so much!

  • MartinLiebigMartinLiebig Administrator, Moderator, Employee-RapidMiner, RapidMiner Certified Analyst, RapidMiner Certified Expert, University Professor Posts: 3,533 RM Data Scientist

    @Thomas_Ott didn't you try to run a server on a pi? I would love to see what happens if you run a JA on a pi :)

     

    Best,

    Martin

    - Sr. Director Data Solutions, Altair RapidMiner -
    Dortmund, Germany
  • Thomas_OttThomas_Ott RapidMiner Certified Analyst, RapidMiner Certified Expert, Member Posts: 1,761 Unicorn

    @mschmitz I might just do that for a low level admin cron job stuff. Right now I have to run some jobs for clients. 

  • landland RapidMiner Certified Analyst, RapidMiner Certified Expert, Member Posts: 2,531 Unicorn

    Hi Tom,

    just be careful if you install / upgrade extensions. 

    I usually overlook a job agent somewhere, who then sometimes gets the job requiring the (newer version of the) extension and then crashes the execution. Can be quite confusing and still PITA on Linux, especially if you regularly use extensions in projects that are under active development...
    Of course it would be possible to write a RapidMiner process that distributes the job agents and executes them. Perfect job for your job agent running on the PI. It think that would improve the PITA to a completely new level of recursive PITA and help you being busy for a few weeks :)

    Greetings,
    Sebastian

  • RandyLeBlancRandyLeBlanc Employee-RapidMiner, Member Posts: 6 RM Team Member

    The admin guide talks about something I would definitely, definitely do in a distributed, multi-server environment: share the server's extension directory. If you mount the extension dir of the server on all your JA's you'll never have an inconsistency or have to worry about distributing anything.

     

    from https://docs.rapidminer.com/latest/server/administration/job-agents.html :

     

    "To keep the extension installation effort and maintenance for RapidMiner Server and Job Agent to a minimum share the server’s extension directory between both. If it is not located on the same machine use your systems capabilities to enable a network share to provide the Job Agent access to the server’s extension directory. Open the Job Agent’s configuration at config/config.properties and add the path to the extension directory (jobagent.container.extensionsDir)."

Sign In or Register to comment.