복붙노트

[HADOOP] ssh : 호스트 이름을 확인할 수 없습니다. 알 수없는 이름 또는 서비스

HADOOP

ssh : 호스트 이름을 확인할 수 없습니다. 알 수없는 이름 또는 서비스

Amazon 인스턴스, 2 노드 클러스터에서 hadoop을 설정하려고합니다. 각 인스턴스에는 공개 dns가 있으며 참조를 사용합니다. 따라서 두 시스템의 / etc / hosts 파일에서 다음과 같은 줄을 추가합니다.

{public dns of 1st instance} node1
{public dns of 2st instance} node2

또한 단순히 다음을 수행하여 각 인스턴스에서 다른 인스턴스로 ssh 할 수 있습니다.

ssh {public dns of the other instance}

내가 가지고있는 첫 번째 인스턴스 파일의 hadoop / conf / slaves에서 :

localhost
node2

스크립트 bin / start-dfs.sh를 시작할 때 마스터에서 namenode, datanode 및 secondary namenode를 시작할 수 있지만 다음과 같이 표시됩니다.

node2: ssh: Could not resolve hostname node2: Name or service not known

시도하면 똑같이 인쇄됩니다.

ssh node2

문제는 node2를 두 번째 인스턴스의 공개 dns와 연결하도록 지시하는 방법입니다. 추가하기에 충분하지 않습니까?

{public dns of 2st instance} node2

/ etc / hosts 파일에 줄을? 인스턴스를 재부팅해야합니까?

해결법

  1. ==============================

    1./ etc / hosts는 IP 주소와 관련된 실제 DNS가없는 경우 로컬 DNS처럼 작동합니다.

    / etc / hosts는 IP 주소와 관련된 실제 DNS가없는 경우 로컬 DNS처럼 작동합니다.

    슬레이브 및 마스터 파일에서 {public dns of 1st instance}를 직접 사용할 수 있다면 실제로 {public dns of 1st instance} node1 매핑이 필요합니까?

    또한 퍼블릭 IP 주소를 사용하는 대신 Amazon 인스턴스의 프라이빗 IP 주소를 사용하는 것이 좋습니다. 각 인스턴스의 터미널에서 ifconfig를 수행하고 프라이빗 IP 주소가 있는지 확인할 수 있습니다. 아마도 기본적으로 10.x.x.x / 172.x.x.x / 192.x.x.x로 시작합니까? 그런 다음 각 Amazon 인스턴스의 / etc / hosts에 대신 매핑 할 수 있습니다.

    따라서 각 컴퓨터의 / etc / hosts는 다음과 같아야합니다.

    기계 -1 :

    {IP_address_1st_instance} node1
    {IP_address_2st_instance} node2
    

    기계 -2 :

    {IP_address_1st_instance} node1
    {IP_address_2st_instance} node2
    

    그리고 이것은 아마존 인스턴스 (머신)가 어떻게 든 매핑 할 계획이라면 서로를 해결할 수 있도록하기위한 것입니다.

  2. from https://stackoverflow.com/questions/18134231/ssh-could-not-resolve-hostname-name-or-service-not-known by cc-by-sa and MIT license