명령의 실제 경로를 찾지 못하는 명령

명령의 실제 경로를 찾지 못하는 명령

Hortonworks(HDP)가 설치된 RHEL 7.x가 있으며 which다음 명령을 사용할 수 있는 이유에 대한 제안이 필요합니다.

하둡이 없어...

Hadoop 클라이언트는 아래에 설치되어 /usr/bin있으며 env당사에서 얻습니다.

[root@hadoop_machine ~]# env | grep PATH
PATH=/usr/lib64/qt-3.3/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin

그렇게되어야합니다. 그렇다면 왜 이 오류가 발생합니까 which hadoop?

[root@hadoop_machine ~]# which hadoop
/usr/bin/which: no hadoop in (/usr/lib64/qt-3.3/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin)

[root@hadoop_machine ~]# ls -ltr /usr/bin | grep hadoop
lrwxrwxrwx. 1 root root         44 Jun  4 11:24 yarn -> /usr/hdp/current/hadoop-yarn-client/bin/yarn
lrwxrwxrwx. 1 root root         51 Jun  4 11:24 mapred -> /usr/hdp/current/hadoop-mapreduce-client/bin/mapred
lrwxrwxrwx. 1 root root         44 Jun  4 11:24 hdfs -> /usr/hdp/current/hadoop-hdfs-client/bin/hdfs
lrwxrwxrwx. 1 root root         41 Jun  4 11:24 hadoop -> /usr/hdp/current/hadoop-client/bin/hadoop

답변1

hadoop의 실행 파일은 /usr/bin에 대한 심볼릭 링크 입니다 /usr/hdp/current/hadoop-client/bin/hadoop. 기호 링크의 대상이 존재하지 않을 가능성이 높습니다. 존재하는 경우, 집행 가능한지 확인하기 위해 조사되어야 합니다.

which심볼릭 링크가 가리키는 파일이 누락되었거나(죽은 심볼릭 링크) 실행할 수 없는 경우 표시되지 않습니다.

또한 command -v대신 사용하는 것이 더 나은 경우가 많습니다 which(특히 이식성이 있다고 예상되는 스크립트의 경우).

관련된:

관련 정보