[ec2-user@master ~]$ sh $HADOOP_HOME/sbin/start-all.sh
/usr/local/src/hadoop/libexec/hadoop-functions.sh: line 398: syntax error near unexpected token `<'
/usr/local/src/hadoop/libexec/hadoop-functions.sh: line 398: ` done < <(for text in "${input[@]}"; do'
/usr/local/src/hadoop/libexec/hadoop-config.sh: line 70: hadoop_deprecate_envvar: command not found
/usr/local/src/hadoop/libexec/hadoop-config.sh: line 87: hadoop_bootstrap: command not found
/usr/local/src/hadoop/libexec/hadoop-config.sh: line 104: hadoop_parse_args: command not found
/usr/local/src/hadoop/libexec/hadoop-config.sh: line 105: shift: : numeric argument required
/usr/local/src/hadoop/libexec/hadoop-config.sh: line 110: hadoop_find_confdir: command not found
/usr/local/src/hadoop/libexec/hadoop-config.sh: line 111: hadoop_exec_hadoopenv: command not found
/usr/local/src/hadoop/libexec/hadoop-config.sh: line 112: hadoop_import_shellprofiles: command not found
/usr/local/src/hadoop/libexec/hadoop-config.sh: line 113: hadoop_exec_userfuncs: command not found
/usr/local/src/hadoop/libexec/hadoop-config.sh: line 119: hadoop_exec_user_hadoopenv: command not found
/usr/local/src/hadoop/libexec/hadoop-config.sh: line 120: hadoop_verify_confdir: command not found
/usr/local/src/hadoop/libexec/hadoop-config.sh: line 122: hadoop_deprecate_envvar: command not found
/usr/local/src/hadoop/libexec/hadoop-config.sh: line 123: hadoop_deprecate_envvar: command not found
/usr/local/src/hadoop/libexec/hadoop-config.sh: line 124: hadoop_deprecate_envvar: command not found
/usr/local/src/hadoop/libexec/hadoop-config.sh: line 129: hadoop_os_tricks: command not found
/usr/local/src/hadoop/libexec/hadoop-config.sh: line 131: hadoop_java_setup: command not found
/usr/local/src/hadoop/libexec/hadoop-config.sh: line 133: hadoop_basic_init: command not found
/usr/local/src/hadoop/libexec/hadoop-config.sh: line 140: hadoop_shellprofiles_init: command not found
/usr/local/src/hadoop/libexec/hadoop-config.sh: line 143: hadoop_add_javalibpath: command not found
/usr/local/src/hadoop/libexec/hadoop-config.sh: line 144: hadoop_add_javalibpath: command not found
/usr/local/src/hadoop/libexec/hadoop-config.sh: line 146: hadoop_shellprofiles_nativelib: command not found
/usr/local/src/hadoop/libexec/hadoop-config.sh: line 152: hadoop_add_common_to_classpath: command not found
/usr/local/src/hadoop/libexec/hadoop-config.sh: line 153: hadoop_shellprofiles_classpath: command not found
/usr/local/src/hadoop/libexec/hadoop-config.sh: line 157: hadoop_exec_hadooprc: command not found
WARNING: Attempting to start all Apache Hadoop daemons as ec2-user in 10 seconds.
WARNING: This is not a recommended production deployment configuration.
WARNING: Use CTRL-C to abort.
通过查阅网上相关资料发现:不能sh start-all.sh
如果是在命令行可以直接 start-all.sh
[ec2-user@master ~]$ start-all.sh WARNING: Attempting to start all Apache Hadoop daemons as ec2-user in 10 seconds. WARNING: This is not a recommended production deployment configuration. WARNING: Use CTRL-C to abort. Starting namenodes on [master] master: Warning: Permanently added 'master,172.31.34.41' (ECDSA) to the list of known hosts. Starting datanodes node2: Warning: Permanently added 'node2,172.31.43.28' (ECDSA) to the list of known hosts. node1: Warning: Permanently added 'node1,172.31.47.109' (ECDSA) to the list of known hosts. Starting secondary namenodes [node1] node1: Warning: Permanently added 'node1,172.31.47.109' (ECDSA) to the list of known hosts. Starting resourcemanager Starting nodemanagers node2: Warning: Permanently added 'node2,172.31.43.28' (ECDSA) to the list of known hosts. node1: Warning: Permanently added 'node1,172.31.47.109' (ECDSA) to the list of known hosts. [ec2-user@master ~]$ jps 8563 NameNode 9229 Jps 8926 ResourceManager
也可以bash start-all.sh
[ec2-user@master ~]$ bash $HADOOP_HOME/sbin/start-all.sh
WARNING: Attempting to start all Apache Hadoop daemons as ec2-user in 10 seconds.
WARNING: This is not a recommended production deployment configuration.
WARNING: Use CTRL-C to abort.
Starting namenodes on [master]
master: Warning: Permanently added 'master,172.31.34.41' (ECDSA) to the list of known hosts.
Starting datanodes
node2: Warning: Permanently added 'node2,172.31.43.28' (ECDSA) to the list of known hosts.
node1: Warning: Permanently added 'node1,172.31.47.109' (ECDSA) to the list of known hosts.
Starting secondary namenodes [node1]
node1: Warning: Permanently added 'node1,172.31.47.109' (ECDSA) to the list of known hosts.
Starting resourcemanager
Starting nodemanagers
node1: Warning: Permanently added 'node1,172.31.47.109' (ECDSA) to the list of known hosts.
node2: Warning: Permanently added 'node2,172.31.43.28' (ECDSA) to the list of known hosts.
[ec2-user@master ~]$ jps
10743 Jps
10440 ResourceManager
10075 NameNode
[ec2-user@master ~]$ ssh node1
Warning: Permanently added 'node1,172.31.47.109' (ECDSA) to the list of known hosts.
Last login: Thu Feb 24 01:50:50 2022 from master
__| __|_ )
_| ( / Amazon Linux 2 AMI
___|___|___|
https://aws.amazon.com/amazon-linux-2/
8 package(s) needed for security, out of 17 available
Run "sudo yum update" to apply all updates.
[ec2-user@node1 ~]$ jps
6321 NodeManager
6481 Jps
6219 SecondaryNameNode
6093 DataNode
[ec2-user@node1 ~]$ ssh node2
Warning: Permanently added 'node2,172.31.43.28' (ECDSA) to the list of known hosts.
Last login: Thu Feb 24 01:50:54 2022 from node1
__| __|_ )
_| ( / Amazon Linux 2 AMI
___|___|___|
https://aws.amazon.com/amazon-linux-2/
8 package(s) needed for security, out of 17 available
Run "sudo yum update" to apply all updates.
[ec2-user@node2 ~]$ jps
5561 Jps
5276 DataNode
5404 NodeManager
2. 原因
/bin/sh是/bin/bash的软连接,使用sh调用执行脚本相当于打开了bash的POSIX标准模式,也就是说 /bin/sh 相当于 /bin/bash --posix。
3. 验证[ec2-user@master ~]$ ll /bin/sh
lrwxrwxrwx 1 root root 4 Jan 6 00:03 /bin/sh -> bash
[ec2-user@master ~]$ ll /bin/bash
-rwxr-xr-x 1 root root 935976 Jul 15 2020 /bin/bash
[ec2-user@master ~]$ bash --posix $HADOOP_HOME/sbin/start-all.sh
/usr/local/src/hadoop/libexec/hadoop-functions.sh: line 398: syntax error near unexpected token `<'
/usr/local/src/hadoop/libexec/hadoop-functions.sh: line 398: ` done < <(for text in "${input[@]}"; do'
/usr/local/src/hadoop/libexec/hadoop-config.sh: line 70: hadoop_deprecate_envvar: command not found
/usr/local/src/hadoop/libexec/hadoop-config.sh: line 87: hadoop_bootstrap: command not found
/usr/local/src/hadoop/libexec/hadoop-config.sh: line 104: hadoop_parse_args: command not found
/usr/local/src/hadoop/libexec/hadoop-config.sh: line 105: shift: : numeric argument required
/usr/local/src/hadoop/libexec/hadoop-config.sh: line 110: hadoop_find_confdir: command not found
/usr/local/src/hadoop/libexec/hadoop-config.sh: line 111: hadoop_exec_hadoopenv: command not found
/usr/local/src/hadoop/libexec/hadoop-config.sh: line 112: hadoop_import_shellprofiles: command not found
/usr/local/src/hadoop/libexec/hadoop-config.sh: line 113: hadoop_exec_userfuncs: command not found
/usr/local/src/hadoop/libexec/hadoop-config.sh: line 119: hadoop_exec_user_hadoopenv: command not found
/usr/local/src/hadoop/libexec/hadoop-config.sh: line 120: hadoop_verify_confdir: command not found
/usr/local/src/hadoop/libexec/hadoop-config.sh: line 122: hadoop_deprecate_envvar: command not found
/usr/local/src/hadoop/libexec/hadoop-config.sh: line 123: hadoop_deprecate_envvar: command not found
/usr/local/src/hadoop/libexec/hadoop-config.sh: line 124: hadoop_deprecate_envvar: command not found
/usr/local/src/hadoop/libexec/hadoop-config.sh: line 129: hadoop_os_tricks: command not found
/usr/local/src/hadoop/libexec/hadoop-config.sh: line 131: hadoop_java_setup: command not found
/usr/local/src/hadoop/libexec/hadoop-config.sh: line 133: hadoop_basic_init: command not found
/usr/local/src/hadoop/libexec/hadoop-config.sh: line 140: hadoop_shellprofiles_init: command not found
/usr/local/src/hadoop/libexec/hadoop-config.sh: line 143: hadoop_add_javalibpath: command not found
/usr/local/src/hadoop/libexec/hadoop-config.sh: line 144: hadoop_add_javalibpath: command not found
/usr/local/src/hadoop/libexec/hadoop-config.sh: line 146: hadoop_shellprofiles_nativelib: command not found
/usr/local/src/hadoop/libexec/hadoop-config.sh: line 152: hadoop_add_common_to_classpath: command not found
/usr/local/src/hadoop/libexec/hadoop-config.sh: line 153: hadoop_shellprofiles_classpath: command not found
/usr/local/src/hadoop/libexec/hadoop-config.sh: line 157: hadoop_exec_hadooprc: command not found
WARNING: Attempting to start all Apache Hadoop daemons as ec2-user in 10 seconds.
WARNING: This is not a recommended production deployment configuration.
WARNING: Use CTRL-C to abort.



