Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/hadoop/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Hadoop 引导中设置的环境变量在AWS EMR中无效_Hadoop_Amazon Web Services_Environment Variables_Bootstrapping_Emr - Fatal编程技术网

Hadoop 引导中设置的环境变量在AWS EMR中无效

Hadoop 引导中设置的环境变量在AWS EMR中无效,hadoop,amazon-web-services,environment-variables,bootstrapping,emr,Hadoop,Amazon Web Services,Environment Variables,Bootstrapping,Emr,我正在引导代码中设置环境变量 export HADOOP_HOME=/home/hadoop export HADOOP_CMD=/home/hadoop/bin/hadoop export HADOOP_STREAMING=/home/hadoop/contrib/streaming/hadoop_streaming.jar export JAVA_HOME=/usr/lib64/jvm/java-7-oracle/ 然后使用上面定义的一个变量- $HADOOP_CMD fs -mkdir

我正在引导代码中设置环境变量

export HADOOP_HOME=/home/hadoop
export HADOOP_CMD=/home/hadoop/bin/hadoop
export HADOOP_STREAMING=/home/hadoop/contrib/streaming/hadoop_streaming.jar
export JAVA_HOME=/usr/lib64/jvm/java-7-oracle/
然后使用上面定义的一个变量-

$HADOOP_CMD fs -mkdir /home/hadoop/contents
$HADOOP_CMD fs -put /home/hadoop/contents/* /home/hadoop/contents/
执行失败,并显示错误消息-

/mnt/var/lib/bootstrap-actions/2/cycle0_unix.sh: line 3: fs: command not found
/mnt/var/lib/bootstrap-actions/2/cycle0_unix.sh: line 4: fs: command not found
cycle0.sh是我的引导脚本的名称


对这里发生的事情有什么评论吗?

我找到了解决问题的正确方法。我尝试使用
hadoop fs
命令将数据文件从S3复制到EMR,但没有成功。我刚刚了解了EMR中用于文件传输的
S3DistCp
命令,因此我跳过了
$HADOOP\u CMD
方法。对于那些关心
S3DistCp
如何工作的人。我仍然不明白为什么引导脚本在后续语句中不接受环境变量。

我认为您不需要环境变量。换衣服

fs


回到问题的主题,环境变量似乎不能从任何引导代码中设置,它们只能从必须命名的脚本中设置或更新

hadoop-user-env.sh
详情如下:

要使用分类配置此类特定于Spark(和其他)的环境变量,请参阅


另一个(相当肮脏的)选项是在引导操作中使用一些
export FOO=bar
来丰富
bashrc

在我看来,您的$HADOOP\u CMD没有被设置。。可能还有其他变量。你能先做一个echo$HADOOP_CMD来排除这个问题吗?@user1452132,在运行完整的引导代码之前,我无法检查。如果我删除以$HADOOP\u CMD开头的两行代码,那么引导会成功完成,并且会显示echo$HADOOP\u CMD。在引导结束之前,变量似乎不会设置。这并不是问题的答案,您只是用了不同的方法,但这并不能解决环境变量问题。
hadoop-user-env.sh