Thu Apr 02, 2020 10:15 pm
Login Register Lost Password? Contact Us


ECL IDE for MacOS X

Topics specific to the use of the ECL IDE

Sun Feb 16, 2020 2:35 am Change Time Zone

Hi,

I want to use an ECL IDE for MacOS X and hence tried to you the VSCode plugin but I am having difficulties configuring ECL on that. Hence, can anyone suggest how I can code ECL on MacOS and set up an environment to be able to run the ECL code on the cluster as well?

Thank you.
vedant_dulori
 
Posts: 6
Joined: Fri Feb 14, 2020 6:34 pm

Tue Feb 18, 2020 12:47 pm Change Time Zone

It is not clear how far you've gotten in your set up, so I will start at the beginning.

A good set of instructions for installing VS Code and the HPCC client tools can be found at https://wiki.hpccsystems.com/display/hpcc/VS+Code+and+HPCC+Systems+Installation+Cheat+Sheet. You may have already done this part.

The only remaining bit is configuring a VS Code launch.json file for ECL. Given the way VS Code works, you will need one launch.json entry for every cluster you connect to. Here is an example:

Code: Select all
{
    "name": "My-HPCC-Cluster",
    "type": "ecl",
    "request": "launch",
    "mode": "submit",
    "workspace": "${workspaceRoot}",
    "program": "${file}",
    "protocol": "http",
    "serverAddress": "example.com",
    "port": 8010,
    "rejectUnauthorized": false,
    "targetCluster": "thor",
    "eclccPath": "${config:ecl.eclccPath}",
    "eclccArgs": [],
    "includeFolders": "${config:ecl.includeFolders}",
    "legacyMode": "${config:ecl.legacyMode}",
    "resultLimit": 100,
    "user": "DSC",
    "password": ""
}

The really important entries in that JSON object are:

  • name: Your name for the cluster; must be unique within the launch.json file
  • serverAddress: The URL for the ECL Watch page of your cluster
  • targetCluster: Which HPCC engine to target (thor, hthor, or roxie)
  • user: This is not required if you don't authenticate, but this entry is used to mark submitted jobs with an "owner" that you can see in ECL Watch; if you have multiple users, this makes it easier to see who owns which jobs

One important thing to remember is that VS Code selects valid launch.json entries based on filename extension. All of your code file names need to have a '.ecl' extension in order to be recognized as ECL.

Hope this helps!

DSC
DSC
Community Advisory Board Member
Community Advisory Board Member
 
Posts: 568
Joined: Tue Oct 18, 2011 4:45 pm

Wed Feb 19, 2020 5:52 pm Change Time Zone

Hi,

Thanks a lot for the instructions. However, the difficulties I am facing are connecting to the cluster and this is because currently, I am accessing ECL Watch via a proxy server. I am starting a proxy on my laptop (eg, `ssh -ND <pass-thru-proxy>`). Then by configuring a browser to use this proxy via SOCKS, I am able to access the ECL Watch.

The problem is I want to develop it on my laptop. I do not know how to use ECL client tools via the pass-through. I wanted to know ways to redirect through ECL as, I think without the ability to run ECL commands locally, the IDE is quite handicapped.

I have come across SSH tunneling to do so but have minimal knowledge in doing so. It would be great if you can suggest ways to solve this problem.
vedant_dulori
 
Posts: 6
Joined: Fri Feb 14, 2020 6:34 pm

Fri Feb 21, 2020 2:19 pm Change Time Zone

The ECL client tools do not support proxy connections the way browsers support them. The only proxy configuration that you could use would be more like tunneling, where you set up a proxy/tunnel on a system that forwards connections to port 8010 (or whatever port you're using) to the HPCC cluster, then configure your local system to connect to the proxy system on that port. This kind of setup is useful for getting past a firewall that does not allow outbound connections to 8010 but does on a different port, the proxy maps inbound connections to a different outbound port, provided the proxy system lies outside of the firewall. That "proxy system" can be your local laptop, but that probably doesn't help in this case.

Some more information on port forwarding can be found at https://www.ssh.com/ssh/tunneling/example if you're interested in exploring that setup.
DSC
Community Advisory Board Member
Community Advisory Board Member
 
Posts: 568
Joined: Tue Oct 18, 2011 4:45 pm

Mon Feb 24, 2020 6:10 pm Change Time Zone

Hey

Thanks for the reply. I am trying to tunnel ssh from your laptop through the VM then to the HPCC cluster and as I don't have much knowledge in networking I am facing a lot of difficulties. It would be great if you could give step by step instructions on how I can fix this issue

Thanks!
vedant_dulori
 
Posts: 6
Joined: Fri Feb 14, 2020 6:34 pm

Mon Feb 24, 2020 8:14 pm Change Time Zone

In the link Richard provide, here is an example:
ssh -L 8010:<hpcc cluster ip>:8010 <your local system ip>

After this you can use localhost:8010 for hpcc cluster eclwatch
ming
 
Posts: 29
Joined: Wed Dec 18, 2013 12:38 pm

Tue Feb 25, 2020 1:31 am Change Time Zone

Is the HPCC cluster in a VM?
ming
 
Posts: 29
Joined: Wed Dec 18, 2013 12:38 pm

Tue Feb 25, 2020 1:34 am Change Time Zone

Yeah, the HPCC cluster is in a VM. Also, which IP does local system IP mean?
vedant_dulori
 
Posts: 6
Joined: Fri Feb 14, 2020 6:34 pm

Tue Feb 25, 2020 1:52 pm Change Time Zone

By default HPCC Platform on VM use the second adapter: eth1 which probably is host-only adapter. The ip is 192.168.x.x. If you can ping this from your host you can use it in ECL IDE or VS Code. If you are on VPN you host may not see this private ip. You have other options, for example,
1) use bridge network instead of host-only for eth1
2) use NAT which is eth0 and "Port Forwarding" from VirtualBox Adapter1 Advanced. In this case you do need change eth1 to eth0 in /etc/HPCCSystems/environment.cfg inside VM and restart HPCC Platform: sudo /etc/init.d/hpcc-init restart

These two method also will help if your IDE/VS Code on a different system than VM
ming
 
Posts: 29
Joined: Wed Dec 18, 2013 12:38 pm


Return to ECL IDE

Who is online

Users browsing this forum: No registered users and 1 guest

cron