Support Questions
Find answers, ask questions, and share your expertise
Announcements
Alert: Welcome to the Unified Cloudera Community. Former HCC members be sure to read and learn how to activate your account here.

Why my parcel can't be sourced or run?

Solved Go to solution

Why my parcel can't be sourced or run?

Contributor

My environment script has never been sourced or run even though my parcel is at actived status for each host. The parcel files were indeed distributed into each host.

I also tried restart the cluster, it was not working. Then I tried to manually source the script in a host, it could work, so the script itself has no problem.

I am wondering if any procedure was missed? Or any naming rule for the script? How can i tell if my parcel's shell script has been sourced by CM?

1 ACCEPTED SOLUTION

Accepted Solutions

Re: Why my parcel can't be sourced or run?

Cloudera Employee

https://github.com/cloudera/cm_ext/wiki/The%20parcel.json%20file#providing-tags

 

As it discusses, if you want your parcel to affect an existing service, it should provide the 'foo-plugin' tag for that service, or cdh-plugin if you really want to affect all of them.

 

Only one parcel can provide the required tag ('cdh' in this case), and obviously the CDH parcel provides that.

 

What is your parcel providing that you want it to affect all services? LZO is a highly unusual example in this regard.

12 REPLIES 12

Re: Why my parcel can't be sourced or run?

Cloudera Employee

The environment script is sourced as part of starting processes - it's not a global thing that happens when you activate the parcel. So, assuming you start a process after activating the parcel, and assuming your parcel's 'provides' tags match what the process' service is looking for, it should get sourced.

 

Re: Why my parcel can't be sourced or run?

Contributor
He, philipl, thanks for your response! I thought after activating the parcel, the source will be automatically sourced.
Could you tell me how to "start a process" from CM browser?

Re: Why my parcel can't be sourced or run?

Cloudera Employee

When you start a role, you are starting a process.

 

Let's use a concrete example.

 

* The lzo parcel contains the lzo plugin that's used by essentially all services in CDH.

* You download and activate the lzo parcel. At this point, nothing changes - you need ot restart everything to pick up the new parcel

* So you restart Hive (for example)

* When the hive server process starts, the Agent will source the lzo parcel's env script which appends the lzo jar to the classpath.

* Now the hive server is running with lzo support

 

The lzo parcel provides 'cdh-plugin' so this parcel will be loaded for all CDH processes. If a parcel provides 'hdfs-plugin' then it would only be loaded for HDFS, etc.

 

https://github.com/cloudera/cm_ext/wiki/The%20parcel.json%20file#providing-tags

Re: Why my parcel can't be sourced or run?

Contributor
Your reply is clear to me.
When I checked the LZO example, I found " $PARCELS_ROOT" and "$PARCEL" are used as predefined environment variables, but when I echoed them, nothing come out. there is no such environment variables defined using " export -p".
I am wondering how to list all cms managed environment variables and then use them to evaluate if my script has been sourced or not?

Re: Why my parcel can't be sourced or run?

Cloudera Employee

Where are you trying to echo variables? You won't see them set except from inside your environment script (which is sourced, so echo won't do anything). To see if your parcel's script is being sourced, look at the stderr.log for the process you think should be loading your parcel.

Re: Why my parcel can't be sourced or run?

Contributor

I found stderr.log from CM web console. Could you tell me what's the absolute path of the log that i can track each process?

 

Highlighted

Re: Why my parcel can't be sourced or run?

Cloudera Employee

On each host, you have: /var/log/cloudera-scm-agent/process/<process-name>/logs/stderr.log

Re: Why my parcel can't be sourced or run?

Contributor

I checked this folder before, there is no "process" folder. i am using cm v5.

 

[root@lcigh158 cloudera-scm-agent]# pwd
/var/log/cloudera-scm-agent
[root@lcigh158 cloudera-scm-agent]# ls
cloudera-scm-agent.log  cmf_listener.log  supervisord.out
cloudera-scm-agent.out  supervisord.log

Re: Why my parcel can't be sourced or run?

Cloudera Employee

Sorry, /var/run

Don't have an account?
Coming from Hortonworks? Activate your account here