2014-01-20 2 views
4

전 세계 Hadoop 및 Hive를 처음 사용했습니다.하이브가 테이블을 표시하지 않습니다.

이상한 문제가 있습니다. 하이브 프롬프트에서 일할 때. 나는 소수의 테이블을 만들고 하이브는 그 테이블을 보여주고있었습니다.

하이브 터미널 "show tables;를 다시 시작할 때 하이브 세션을 종료 한 후 어떤 테이블도 보이지 않습니다!. HDFS에서 '/ user/hive/warehouse'에있는 테이블을 볼 수 있습니다.

내가 뭘 잘못하고있다. 이걸 좀 도와 주실 수 있습니까?

+0

메타 스토어 구성을 게시 할 수 있습니까? –

+0

저는 Hadoop과 Hive를 처음 접했습니다. 어떻게 그 방법을 가르쳐 주시겠습니까? 아니면 내가 그것을 어디에서 찾을 수 있습니까? – Bhagwant

+0

당신이 metastore로 기본 더비를 사용하고있는 것처럼 보입니다. (내 추측이 맞다면 당신이 새로운 hive-site.xml을 사용하지 않았을 것입니다.), 오류 또는 예외를 게시하십시오. –

답변

6

BalduZ가 맞습니다. $ HIVE_HOME에/conf의/하이브를 site.xml

속성 이름 = javax.jdo.option.ConnectionURL

속성 값 = JDBC를이 설정 : 더비 :; 여기서 databaseName =/가정/youruser/hive_metadata/metastore_db을; create = true

다음 번에 모든 dir 위치에서 하이브를 실행할 수 있습니다. 이렇게하면 문제가 해결됩니다.

+0

안녕하세요, 당신은 더비를 설치하지 않고 이것을 채취 할 수 있습니까? – larry

+0

하이브 패키지와 함께 제공되는 기본 데이터베이스는 더비입니다. 별도로 설치할 필요가 없습니다. 위의 속성을 설정하면 하이브에게 임베디드 더비를 사용하고 특정 위치 (/home.yourusername/hive_metadata/metastore_db)를 지정하여 더비 - 메타 파일을 저장하도록 지시합니다. 지정하지 않으면 @Balduz에 의해 언급 된 문제가 발생할 것입니다. –

+0

와우, 나는 단지 내가 더비를 독립적으로 설치하고 서비스를 시작한다는 매우 어리석은 일을했다고 생각합니다. – larry

4

기본 하이브 세션에서 만든 테이블을보기 위해 동일한 디렉터리에서 호출해야하기 때문에 하이브를 작동하도록 호출하는 것이 문제입니다.

예를 들어, 사용자가 ~/test/hive에있을 때 하이브를 호출하고 다음에 하이브를 사용하면 ~/test에서 하이브를 시작할 때 이전에 만든 테이블을 볼 수 없습니다. 가장 쉬운 해결책은 항상 동일한 디렉토리에서 하이브를 시작하는 것입니다.

그러나 더 나은 해결책은 하이버를 구성하여 메타 스토어로 MySQL과 같은 데이터베이스를 사용하는 것입니다. 이를 수행하는 방법을 찾을 수 있습니다 here.

관련 문제