Error log4j when execute a job with Crontab

Five Stars

Error log4j when execute a job with Crontab

Hi guys,

 

I need yours help. I have a job in Talend, this job works. Then i need to excute with Crontab in a Linux Server. 

When i executed manually works but with crontab i have this error:

 

log4j:WARN No appenders could be found for logger (org.apache.hive.jdbc.Utils).
log4j:WARN Please initialize the log4j system properly.
log4j:WARN See http://logging.apache.org/log4j/1.2/faq.html#noconfig for more info.

 

 

I don't know what happened. I read that i need to active the log4j but i  have a free Talend version. Please help me! I attached one photo of my job. Thank you!

 

 


Accepted Solutions
Highlighted
Ten Stars

Re: Error log4j when execute a job with Crontab

 

LOG_CAPTURE_run.sh: line 4: java: command not found

I forgot to read properly... Im sorry, but check this first... I assumed you checked, but It doesnt find java 

Run this you should get a reply

[talend@dstage talend]$ java -version
openjdk version "1.8.0_171"
OpenJDK Runtime Environment (build 1.8.0_171-b10)
OpenJDK 64-Bit Server VM (build 25.171-b10, mixed mode)


If because your Victor_Acosta user environment isn't setting environment variables.

so JAVA HOME has not been set or pointing to wrong folder.

Run  this before you run your script,  if you dont get a line... 

 

 

[talend@dstage talend]$ env |grep JAVA_HOME
JAVA_HOME=/usr/lib/jvm/java-1.8.0-openjdk-1.8.0.171-7.b10.el7.x86_64/jre

 

If not add this to $HOME/.bashrc or make sure within the correct $HOME/.bashrc_profile 
check for your .bash profile files:

[talend@dstage talend]$ ls -als $HOME
20 -rw-------. 1 talend talend 16558 May 11 21:51 .bash_history
4 -rw-r--r--. 1 talend talend 18 Sep 26 2017 .bash_logout
4 -rw-r--r--. 1 talend talend 193 Sep 26 2017 .bash_profile
4 -rw-r--r--. 1 talend talend 513 May 1 01:23 .bashrc
4 drwxrwxr-x. 3 talend talend 4096 Apr 20 16:23 .cache

Next 

 

[talend@dstage talend]$ cat $HOME/.bashrc |grep export
export JAVA_HOME=/usr/lib/jvm/java-1.8.0-openjdk-1.8.0.171-7.b10.el7.x86_64/jre
export PATH=$JAVA_HOME/bin:$PATH
[talend@dstage talend]$ vi $HOME/.bashrc
add your export vars save the file and exit
[talend@dstage talend]$ . $HOME/.bashrc
this will set your export vars

Last thing, if set correctly :

[talend@dstage talend]$ java -version
openjdk version "1.8.0_171"
OpenJDK Runtime Environment (build 1.8.0_171-b10)
OpenJDK 64-Bit Server VM (build 25.171-b10, mixed mode)

 

Next : Check your if is this line in your Extract_datalog2_run.sh script?

[talend@dstage talend]$ cat Extract_datalog2_run.sh |grep cd
cd `dirname $0`

change it to : 

[talend@dstage talend]$ vi Extract_datalog2_run.sh
cd `dirname -- "$0"`

 

Good luck


All Replies
Ten Stars

Re: Error log4j when execute a job with Crontab

Can't recall if I had exactly the same... But the first two errors you got in the crontab is something with your eclipse properties at runtime (which works wel) vs builded job... added a screenshot which worked for me.

Imported log4j.jar ... download if you cant find it at Log4j Jar

Five Stars

Re: Error log4j when execute a job with Crontab

Thank you!

 

But i have a error when i schedule the job in crontab: 

LOG_CAPTURE_run.sh: line 4: java: command not found

 

I don't know to resolved this error. When i revised the line 4:

java -Xms256M -Xmx1024M -cp .:$ROOT_PATH:$ROOT_PATH/../lib/routines.jar:$ROOT_PATH/../lib/commons-collections-3.2.2.jar:$ROOT_PATH/../lib/commons-lang-2.6.jar:$ROOT_PATH/../lib/log4j-1.2.16.jar:$ROOT_PATH/../lib/log4j-1.2.17.jar:$ROOT_PATH/../lib/slf4j-api-1.7.5.jar:$ROOT_PATH/../lib/slf4j-log4j12-1.7.5.jar:$ROOT_PATH/../lib/dom4j-1.6.1.jar:$ROOT_PATH/../lib/jackson-xc-1.8.8.jar:$ROOT_PATH/../lib/hadoop-conf-NEW.jar:$ROOT_PATH/../lib/hadoop-yarn-api-2.6.0-cdh5.8.1.jar:$ROOT_PATH/../lib/httpclient-4.2.5.jar:$ROOT_PATH/../lib/jackson-mapper-asl-1.8.8.jar:$ROOT_PATH/../lib/hadoop-auth-2.6.0-cdh5.8.1.jar:$ROOT_PATH/../lib/jersey-client-1.9.jar:$ROOT_PATH/../lib/jackson-core-asl-1.8.8.jar:$ROOT_PATH/../lib/antlr-runtime-3.4.jar:$ROOT_PATH/../lib/avro-1.7.6-cdh5.8.1.jar:$ROOT_PATH/../lib/commons-cli-1.2.jar:$ROOT_PATH/../lib/datanucleus-core-3.2.10.jar:$ROOT_PATH/../lib/hadoop-yarn-common-2.6.0-cdh5.8.1.jar:$ROOT_PATH/../lib/hive-jdbc-1.1.0-cdh5.8.1.jar:$ROOT_PATH/../lib/hive-metastore-1.1.0-cdh5.8.1.jar:$ROOT_PATH/../lib/hive-exec-1.1.0-cdh5.8.1.jar:$ROOT_PATH/../lib/commons-configuration-1.6.jar:$ROOT_PATH/../lib/jdo-api-3.0.1.jar:$ROOT_PATH/../lib/curator-framework-2.6.0.jar:$ROOT_PATH/../lib/commons-codec-1.9.jar:$ROOT_PATH/../lib/httpcore-4.3.3.jar:$ROOT_PATH/../lib/htrace-core-3.2.0-incubating.jar:$ROOT_PATH/../lib/commons-io-2.4.jar:$ROOT_PATH/../lib/jackson-jaxrs-1.8.8.jar:$ROOT_PATH/../lib/derby-10.11.1.1.jar:$ROOT_PATH/../lib/hadoop-hdfs-2.6.0-cdh5.8.1.jar:$ROOT_PATH/../lib/libthrift-0.9.2.jar:$ROOT_PATH/../lib/servlet-api-2.5.jar:$ROOT_PATH/../lib/datanucleus-rdbms-3.2.9.jar:$ROOT_PATH/../lib/httpcore-4.2.5.jar:$ROOT_PATH/../lib/hadoop-mapreduce-client-common-2.6.0-cdh5.8.1.jar:$ROOT_PATH/../lib/hadoop-yarn-client-2.6.0-cdh5.8.1.jar:$ROOT_PATH/../lib/mssql-jdbc.jar:$ROOT_PATH/../lib/hadoop-mapreduce-client-core-2.6.0-cdh5.8.1.jar:$ROOT_PATH/../lib/commons-logging-1.2.jar:$ROOT_PATH/../lib/guava-12.0.1.jar:$ROOT_PATH/../lib/hadoop-yarn-server-web-proxy-2.6.0-cdh5.8.1.jar:$ROOT_PATH/../lib/hive-service-1.1.0-cdh5.8.1.jar:$ROOT_PATH/../lib/libfb303-0.9.2.jar:$ROOT_PATH/../lib/httpclient-4.3.3.jar:$ROOT_PATH/../lib/hadoop-common-2.6.0-cdh5.8.1.jar:$ROOT_PATH/../lib/commons-httpclient-3.0.1.jar:$ROOT_PATH/../lib/curator-client-2.6.0.jar:$ROOT_PATH/../lib/jersey-core-1.9.jar:$ROOT_PATH/../lib/htrace-core4-4.0.1-incubating.jar:$ROOT_PATH/../lib/hadoop-mapreduce-client-jobclient-2.6.0-cdh5.8.1.jar:$ROOT_PATH/../lib/talendcsv.jar:$ROOT_PATH/../lib/datanucleus-api-jdo-3.2.6.jar:$ROOT_PATH/../lib/protobuf-java-2.5.0.jar:$ROOT_PATH/../lib/talend_file_enhanced_20070724.jar:$ROOT_PATH/../lib/talend_DB_mssqlUtil.jar:$ROOT_PATH/../lib/zookeeper-3.4.5-cdh5.8.1.jar:$ROOT_PATH/extract_datalog2_log_capture_0_1.jar: local_project.extract_datalog2_log_capture_0_1.Extract_datalog2_LOG_CAPTURE --context=Default "$@" 

 

Somebody can help me?

Ten Stars

Re: Error log4j when execute a job with Crontab

you have to run the <jobname>.sh /full/path/to<jobname>.jar
I had to same due to failed attempt... 

 

Five Stars

Re: Error log4j when execute a job with Crontab

Hi. Thanks for your answer. But can you explane this?

I don't know where i have to run the job. This it's my route:

 

sh /home/Victor_Acosta/Datalog2_test_etl/Extract_datalog2/Extract_datalog2_run.sh >> /home/Victor_Acosta/logs/datalog2_daily/Datalog2_test/crontab_datalog2_test.log

Highlighted
Ten Stars

Re: Error log4j when execute a job with Crontab

 

LOG_CAPTURE_run.sh: line 4: java: command not found

I forgot to read properly... Im sorry, but check this first... I assumed you checked, but It doesnt find java 

Run this you should get a reply

[talend@dstage talend]$ java -version
openjdk version "1.8.0_171"
OpenJDK Runtime Environment (build 1.8.0_171-b10)
OpenJDK 64-Bit Server VM (build 25.171-b10, mixed mode)


If because your Victor_Acosta user environment isn't setting environment variables.

so JAVA HOME has not been set or pointing to wrong folder.

Run  this before you run your script,  if you dont get a line... 

 

 

[talend@dstage talend]$ env |grep JAVA_HOME
JAVA_HOME=/usr/lib/jvm/java-1.8.0-openjdk-1.8.0.171-7.b10.el7.x86_64/jre

 

If not add this to $HOME/.bashrc or make sure within the correct $HOME/.bashrc_profile 
check for your .bash profile files:

[talend@dstage talend]$ ls -als $HOME
20 -rw-------. 1 talend talend 16558 May 11 21:51 .bash_history
4 -rw-r--r--. 1 talend talend 18 Sep 26 2017 .bash_logout
4 -rw-r--r--. 1 talend talend 193 Sep 26 2017 .bash_profile
4 -rw-r--r--. 1 talend talend 513 May 1 01:23 .bashrc
4 drwxrwxr-x. 3 talend talend 4096 Apr 20 16:23 .cache

Next 

 

[talend@dstage talend]$ cat $HOME/.bashrc |grep export
export JAVA_HOME=/usr/lib/jvm/java-1.8.0-openjdk-1.8.0.171-7.b10.el7.x86_64/jre
export PATH=$JAVA_HOME/bin:$PATH
[talend@dstage talend]$ vi $HOME/.bashrc
add your export vars save the file and exit
[talend@dstage talend]$ . $HOME/.bashrc
this will set your export vars

Last thing, if set correctly :

[talend@dstage talend]$ java -version
openjdk version "1.8.0_171"
OpenJDK Runtime Environment (build 1.8.0_171-b10)
OpenJDK 64-Bit Server VM (build 25.171-b10, mixed mode)

 

Next : Check your if is this line in your Extract_datalog2_run.sh script?

[talend@dstage talend]$ cat Extract_datalog2_run.sh |grep cd
cd `dirname $0`

change it to : 

[talend@dstage talend]$ vi Extract_datalog2_run.sh
cd `dirname -- "$0"`

 

Good luck

Five Stars

Re: Error log4j when execute a job with Crontab

Wow! Thanks for your answer. I followed your step and I could execute my job using crontab. 

 

 

Ten Stars

Re: Error log4j when execute a job with Crontab

Honestly, you marked the wrong answer as a solution... did you add the log4j.jar as I suggested?
Because that solved the problem... the other one is regardless of log4j ... just environment setup.

 

Happy to help!

Five Stars

Re: Error log4j when execute a job with Crontab

It's true . I can't resolved the problem with log4j but it's just a Warn

2019 GARNER MAGIC QUADRANT FOR DATA INTEGRATION TOOL

Talend named a Leader.

Get your copy

OPEN STUDIO FOR DATA INTEGRATION

Kickstart your first data integration and ETL projects.

Download now

What’s New for Talend Summer ’19

Watch the recorded webinar!

Watch Now

Best Practices for Using Context Variables with Talend – Part 4

Pick up some tips and tricks with Context Variables

Blog

How Media Organizations Achieved Success with Data Integration

Learn how media organizations have achieved success with Data Integration

Read

Downloads and Trials

Test drive Talend's enterprise products.

Downloads