首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >spark-submit:找不到命令

spark-submit:找不到命令
EN

Stack Overflow用户
提问于 2017-08-18 06:29:37
回答 1查看 17.4K关注 0票数 0

一个非常简单的问题:

我尝试使用bash脚本来提交spark作业。但不知何故,它总是抱怨找不到spark-submit命令。但是当我复制出命令并直接在我的终端中运行时,它运行得很好。

我的外壳是鱼壳,下面是我在鱼壳配置中的配置:~/.config/fish/config.fish

alias spark-submit='/Users/MY_NAME/Downloads/spark-2.0.2-bin-hadoop2.7/bin/spark-submit'

下面是我的bash脚本:

代码语言:javascript
复制
#!/usr/bin/env bash


SUBMIT_COMMAND="HADOOP_USER_NAME=hdfs spark-submit \
      --master $MASTER \
      --deploy-mode client \
      --driver-memory $DRIVER_MEMORY \
      --executor-memory $EXECUTOR_MEMORY \
      --num-executors $NUM_EXECUTORS \
      --executor-cores $EXECUTOR_CORES \
      --conf spark.shuffle.compress=true \
      --conf spark.network.timeout=2000s \
      $DEBUG_PARAM \
      --class com.fisher.coder.OfflineIndexer \
      --verbose \
      $JAR_PATH \
      --local $LOCAL \
      $SOLR_HOME \
      --solrconfig 'resource:solrhome/' \
      $ZK_QUORUM_PARAM \
      --source $SOURCE \
      --limit $LIMIT \
      --sample $SAMPLE \
      --dest $DEST \
      --copysolrconfig \
      --shards $SHARDS \
      $S3_ZK_ZNODE_PARENT \
      $S3_HBASE_ROOTDIR \
      "

eval "$SUBMIT_COMMAND"

我尝试过的方法:当我直接将这个命令复制出来并直接运行时,我可以在我的Mac fish shell上很好地运行这个命令。然而,我想要实现的是能够运行./submit.sh -local来执行上面的外壳。

有什么线索吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-08-18 07:50:47

你似乎搞不懂鱼的别名是什么。当您运行此命令时:

代码语言:javascript
复制
alias spark-submit='/Users/MY_NAME/Downloads/spark-2.0.2-bin-hadoop2.7/bin/spark-submit'

您实际上是这样做的:

代码语言:javascript
复制
function spark-submit
   /Users/MY_NAME/Downloads/spark-2.0.2-bin-hadoop2.7/bin/spark-submit $argv
end

也就是说,您正在定义一个fish函数。您的bash脚本对该函数一无所知。您需要将该路径放入$PATH变量中,或将类似的别名命令放入bash脚本中。

票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/45745850

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档