복붙노트

[HADOOP] beeline은 hiveserver2에 연결할 수 없습니다.

HADOOP

beeline은 hiveserver2에 연결할 수 없습니다.

CDH 5.3 인스턴스가 있습니다. 먼저 hive-metastore를 시작한 다음 hive-server를 명령 줄에서 시작하여 hive-server2를 시작합니다. 이 후 beeline을 내 하이브 - 서버 2에 연결하는 데 사용하지만 분명히 그렇게 할 수는 없습니다.

Could not open connection to jdbc:hive2://localhost:10000: java.net.ConnectException: Connection refused (state=08S01,code=0)

또 다른 문제는 하이브 - 서버 2가 포트 10000에서 수신 대기 중인지 확인하려고했습니다. 나는 "sudo netstat -tulpn | grep : 10000"을 만들었지 만 응용 프로그램이 하나도 나오지 않았습니다. 또한 hive-site.xml에 다음과 같은 속성을 추가했으나 사용할 수 없습니다. 왜 그것이 netstat에 나타나지 않습니까?

<property>
   <name>hive.server2.thrift.port</name>
   <value>10000</value>
   <description>TCP port number to listen on, default 10000</description>
 </property>

beeline의 connect 명령 :

!connect jdbc:hive2://localhost:10000 org.apache.hive.jdbc.HiveDriver

사용자 이름과 비밀번호를 묻는 질문에 "user"와 "password"테스트 만 입력하면됩니다. 각 값에 대한 다음 오류가 throw됩니다. 어떤 도움을 주시면 감사하겠습니다.

해결법

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

    1.하이브 다양한 모드를 가진 클라이언트로부터 beeline에 연결.

    하이브 다양한 모드를 가진 클라이언트로부터 beeline에 연결.

    1. 임베디드 모드 :         서버와 클라이언트 모두 동일한 시스템에서 실행됩니다. TCP 연결이 필요하지 않습니다.

     If hive.server2.authentication is "NONE" in HIVE_HOME/conf/hive-site.xml then connect beeline with below url
    
    Connection URL:
                   !connect jdbc:hive2://
    

    2. 원격 모드 :         인증 스키마에 따라 쿼리를 실행하는 여러 클라이언트를 지원합니다.

    인증 방식 :

    i.)SASL Authentication:
    
       If value of "hive.server2.authentication" property in HIVE_HOME/conf/hive-site.xml to be set as "SASL" then connect hive beeline with below url
    
       Beeline URL:
                 !connect jdbc:hive2://<host>:<port>/<db>
    
    ii.)NOSASL Authentication:
       If "hive.server2.authentication" is nosasl then connect the beeline like below.
       Beeline URL:
    
                 !connect jdbc:hive2://<host>:<port>/<db>;auth=noSasl
    

    희망이 정말 당신을 돕는

    참고 문헌 :

    https://docs.hortonworks.com/HDPDocuments/HDP2/HDP-2.3.2/bk_dataintegration/content/beeline-vs-hive-cli.html

  2. ==============================

    2.나는 여기에도 같은 문제가 있었다. hiveserver2를 시작하지 못했기 때문에 오류가 콘솔에 표시되지 않지만 하이브 로그에 표시됩니다. 필자의 경우 하이브 로그는 /tmp/ubuntu/hive.log에 있습니다.

    나는 여기에도 같은 문제가 있었다. hiveserver2를 시작하지 못했기 때문에 오류가 콘솔에 표시되지 않지만 하이브 로그에 표시됩니다. 필자의 경우 하이브 로그는 /tmp/ubuntu/hive.log에 있습니다.

    hive-server2를 시작하지 못하게하는 다른 이유가있을 수 있지만이 로그 파일을 살펴볼 가치는 있습니다.

  3. ==============================

    3.이 경우 귀하의 hiveserver2 서비스가 시작되지 않았습니다. 점검 및 수정하기 위해 불어가는 단계를 따르십시오. 단계: 1. "서비스 : HiveServer2가 시작되었습니다."를 확인하기 위해 hive.log 파일을보십시오.

    이 경우 귀하의 hiveserver2 서비스가 시작되지 않았습니다. 점검 및 수정하기 위해 불어가는 단계를 따르십시오. 단계: 1. "서비스 : HiveServer2가 시작되었습니다."를 확인하기 위해 hive.log 파일을보십시오.

    1) find / -name hive.log
    2) vim hive.log
      in hive.log file ,if you can not find "Service:HiveServer2 is started.",then prove hiveserver2 is not started.
    

    2. 하이버 서버 2 시작   명령 : ./bin/hiveserver2

    3.hive.log를 참조하십시오.   "서비스 : HiveServer2가 시작되었습니다." hive.log에. beverage에 의해 hiveserver2를 연결하십시오.

    4. 연결 hiveserver2  ./bin/beeline  ! connect jdbc : hive2 : // localhost : 10000

    5. 아래 정보가 나타날 수 있습니다.

    Beeline version 1.2.1 by Apache Hive
    beeline> !connect jdbc:hive2://localhost:10000
    Connecting to jdbc:hive2://localhost:10000
    Enter username for jdbc:hive2://localhost:10000: root
    Enter password for jdbc:hive2://localhost:10000: ******
    Connected to: Apache Hive (version 1.2.1)
    Driver: Hive JDBC (version 1.2.1)
    Transaction isolation: TRANSACTION_REPEATABLE_READ
    
  4. ==============================

    4.다음은 나를 위해 일했습니다. 처음으로 하이브를 설치하고 구성한 경우, 현재 터미널에서 다음 명령을 사용하여 하이브 서비스를 시작하십시오.

    다음은 나를 위해 일했습니다. 처음으로 하이브를 설치하고 구성한 경우, 현재 터미널에서 다음 명령을 사용하여 하이브 서비스를 시작하십시오.

     >hive --service hiverserver2 &
    

    Hiverver2의 프로세스 ID가 콘솔에 나타납니다. 그런 다음 다른 터미널을 사용하여 beeline에서 하이브에 연결을 다시 시도하십시오.

     >beeline -u "jdbc:hive2://localhost:10000/default" -n <username> -p <password> -d "org.apache.hive.jdbc.HiveDriver"
    
  5. ==============================

    5.hiveserver2 사용자 이름과 암호를 hive-site.xml에서 기본적으로 사용자 이름 (익명) 및 암호 (익명)로 확인해야합니다. 그렇지 않으면 암호와 사용자 이름을 제공하지 않고 입력하십시오.

    hiveserver2 사용자 이름과 암호를 hive-site.xml에서 기본적으로 사용자 이름 (익명) 및 암호 (익명)로 확인해야합니다. 그렇지 않으면 암호와 사용자 이름을 제공하지 않고 입력하십시오.

  6. ==============================

    6.자세한 정보를 볼 수 있도록 자세한 옵션을 시도하십시오 ...

    자세한 정보를 볼 수 있도록 자세한 옵션을 시도하십시오 ...

    beeline -u "jdbc:hive2://localhost:10000/default;user=user;password=*******" --verbose
    
  7. ==============================

    7.hive2service 배포 IP를 확인하십시오.

    hive2service 배포 IP를 확인하십시오.

    나는 같은 문제를 만난다. cloudera 서버 ip (XXX.42)를 사용하여 hive2 서비스를 연결한다. 실제로 하이브 (hive2service) 서비스는 다른 시스템 (XXX.41)에서 사용 중지되었습니다.

  8. from https://stackoverflow.com/questions/28898936/beeline-not-able-to-connect-to-hiveserver2 by cc-by-sa and MIT license