小编jsu*_*ng8的帖子

使用"export -f <func>"的BASH脚本中的GNU Parallel失败,当Crond时出现"Command Not Found"错误

如果我在命令shell上以交互方式运行它,我的脚本会起作用:

$ cat ndmpcopy_cron_parallel_svlinf05.bash
#!/usr/software/bin/bash

ndmpcopy_cron_parallel() {

timestamp=`date +%Y%m%d-%H%M`
LOG=/x/eng/itarchives/ndmpcopylogs/05_$1/ndmpcopy_status
TSLOG=${LOG}_$timestamp

src_filer='svlinf05'
src_account='ndmp'
src_passwd='src_passwd'
dst_svm='svlinfsrc'
dst_account='vsadmin-backup'
dst_passwd='dst_passwd'

host=`hostname`
echo $host

ssh -l root $src_filer "priv set -q diag ; ndmpcopy -sa $src_account:$src_passwd -da $dst_account:$dst_passwd -i $src_filer.eng.netapp.com:/vol/$1 10.56.10.161:/$dst_svm/$1" | tee -a $TSLOG

echo "ndmpcopy Completed: `date` "

}

export -f ndmpcopy_cron_parallel

/u/jsung/bin/parallel -j 0 --wd . --env ndmpcopy_cron_parallel --eta ndmpcopy_cron_parallel ::: local
Run Code Online (Sandbox Code Playgroud)

但是,脚本失败并抱怨导出的函数ndmpcopy_cron_parallel无法找到:

$ crontab -l

40 0,2,4,6,8,10,12,14,16,18,20,22 * * * /u/jsung/bin/ndmpcopy_cron_parallel_svlinf05.bash
Run Code Online (Sandbox Code Playgroud)

错误:

Subject: Cron <jsung@cycrh6svl18> /u/jsung/bin/ndmpcopy_cron_parallel_svlinf05.bash


Computers / CPU cores …
Run Code Online (Sandbox Code Playgroud)

parallel-processing bash crontab

6
推荐指数
1
解决办法
944
查看次数

线程"main"中的异常java.lang.NoClassDefFoundError:org/apache/spark/Logging

我是Spark的新手.我试图在Oracle VirtualBox 5.1.4r110228上运行CDH 5.8.0-0上的Spark应用程序(.jar),它利用Spark Steaming在twitter上执行情绪分析.我创建了自己的Twitter帐户,并生成了所有必需的(4)令牌.我被NoClassDefFoundError例外阻止了.

我一直在谷歌上搜索几天.到目前为止我发现的最好的建议是在下面的URL中,但显然我的环境仍然缺少一些东西.

http://javarevisited.blogspot.com/2011/06/noclassdeffounderror-exception-in.html#ixzz4Ia99dsp0

在Runile中缺少Compile中出现的库是什么意思?我们该如何解决这个问题?

什么是Logging库?我看到一篇文章说这个Logging可能会被弃用.除此之外,我确实在我的环境中看到了log4j.

在我的CDH 5.8中,我正在运行这些版本的软件:Spark-2.0.0-bin-hadoop2.7/spark-core_2.10-2.0.0 jdk-8u101-linux-x64/jre-bu101-linux-x64

我在最后添加了例外的细节.以下是我执行应用程序时执行的过程以及在执行异常后执行的一些验证:

  1. 解压twitter-streaming.zip(Spark应用)
  2. cd twitter-streaming
  3. 运行./sbt/sbt汇编
  4. 使用您的Twitter帐户更新env.sh

$ cat env.sh

export SPARK_HOME=/home/cloudera/spark-2.0.0-bin-hadoop2.7
export CONSUMER_KEY=<my_consumer_key>
export CONSUMER_SECRET=<my_consumer_secret>
export ACCESS_TOKEN=<my_twitterapp_access_token>
export ACCESS_TOKEN_SECRET=<my_twitterapp_access_token>
Run Code Online (Sandbox Code Playgroud)

submit.sh脚本在env.sh中包含了spark-submit命令以及所需的凭据信息:

$ cat submit.sh

source ./env.sh
$SPARK_HOME/bin/spark-submit --class "TwitterStreamingApp" --master local[*] ./target/scala-2.10/twitter-streaming-assembly-1.0.jar $CONSUMER_KEY $CONSUMER_SECRET $ACCESS_TOKEN $ACCESS_TOKEN_SECRET
Run Code Online (Sandbox Code Playgroud)

装配过程的日志:[cloudera @ quickstart twitter-streaming] $ ./sbt/sbt assembly

Launching sbt from sbt/sbt-launch-0.13.7.jar
[info] Loading project definition from /home/cloudera/workspace/twitter-streaming/project
[info] Set current project to twitter-streaming (in build file:/home/cloudera/workspace/twitter-streaming/)
[info] Including: twitter4j-stream-3.0.3.jar
[info] Including: …
Run Code Online (Sandbox Code Playgroud)

apache-spark

6
推荐指数
1
解决办法
1万
查看次数

标签 统计

apache-spark ×1

bash ×1

crontab ×1

parallel-processing ×1