spark-submit:找不到命令

时间:2017-08-17 22:29:37

标签: bash macos shell environment-variables fish

一个非常简单的问题:

我尝试使用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脚本:

#!/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 OS X鱼壳上完美地运行此命令。 但是,我想要实现的是能够运行执行上述shell的./submit.sh -local

有什么线索吗?

1 个答案:

答案 0 :(得分:3)

你似乎对鱼的别名是什么感到困惑。当你运行它:

function spark-submit
   /Users/MY_NAME/Downloads/spark-2.0.2-bin-hadoop2.7/bin/spark-submit $argv
end

你实际上是这样做的:

$PATH

也就是说,您正在定义鱼类功能。您的bash脚本不了解该功能。您需要将该路径放在int w = atoi(argv[1]); int h = atoi(argv[2]); glMatrixMode(GL_PROJECTION); glLoadIdentity(); glOrtho(0, w, h, 0, 1.0, -1.0); glMatrixMode(GL_MODELVIEW); glEnable(GL_TEXTURE_2D); glLoadIdentity(); unsigned int wf,hf; unsigned char rgb[3]; while(!glfwWindowShouldClose(window)){ glClear(GL_COLOR_BUFFER_BIT); glPointSize(1); glBegin(GL_POINTS); for(hf=0;hf<h;hf++){ for(wf=0;wf<w;wf++){ memset(rgb,0,3); rgb[wf%3]=0xff; glColor3ub(rgb[0],rgb[1],rgb[2]); glVertex2f(wf,hf); } } glEnd(); glfwSwapBuffers(window); glfwPollEvents(); } 变量中,或者在bash脚本中添加类似的别名命令。