일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | ||||||
2 | 3 | 4 | 5 | 6 | 7 | 8 |
9 | 10 | 11 | 12 | 13 | 14 | 15 |
16 | 17 | 18 | 19 | 20 | 21 | 22 |
23 | 24 | 25 | 26 | 27 | 28 |
- 자소서 빨리
- mac hive
- is not allowed to impersonate hive (state=08S01
- 카카오 자물쇠와 열쇠
- 자소서 시간 줄이기
- 기업 조사 빨리 하는 법
- mac hadoop 설정
- Safe mode is ON
- Resources are low on NN
- mac hive 3
- hive beeline 실행
- Could not open client transport with JDBC Uri: jdbc:hive2://localhost:10000
- 백준 18428
- 도커 교과서
- 카카오 2020 코테
- hive beeline 설정
- 카카오 2020 코딩테스트
- 이더리움
- 이더리움 #ethereum
- mac hadoop 3
- mac hadoop
- hive beeline 에러
- Failed to connect to localhost:10000
- hive beeline
- code=0)
- mac hadoop 설치
- 자소서 빨리 쓰는 법
- 자소서 너무 오래 걸림
- hadoop safe mode
- hadoop safe mode leave
- Today
- Total
A seeker after truth
beeline 연결법, 에러 해결법 본문
1. beeline 이 무엇이며, 왜 필요한가
일단 저는 beeline 이란 무엇인지, 어떤 역할을 하는 아이인지, 왜 등장한 것인지에 대해서 모릅니다.
현재 그걸 알아볼 여유가 없습니다.
다만 이게 꼭 필요하게 된 이유를 알게 된 계기가 있습니다.
저는 hive 에서 조회(show tables, select ~~~) 즉 dml 쿼리 말고 create 등의 ddl query 실행 작업이 필요했는데,
hive 에서 이걸 하려 하면 자꾸 다음과 같은 에러가 발생했습니다.
FAILED: Execution Error, return code 1 from org.apache.hadoop.hive.ql.exec.DDLTask. MetaException(message:Got exception: java.net.ConnectException Call From MacBookPro.local/127.0.0.1 to localhost:8020 failed on connection exception: java.net.ConnectException: Connection refused; For more details see: http://wiki.apache.org/hadoop/ConnectionRefused)
그래서 다른 참고 자료들을 봤을때, 반드시 beeline 을 통해서만 hive 쿼리를 실행해야 하는 모양이더라고요. 이것 만큼은 확실했습니다.
hive 홈 경로에서 단순히 bin/beeline 을 실행하고 sql 문을 실행하면 계속 아래와 같은 결과가 나타납니다.
No current connection
2. beeline 설정과 실행
간단합니다. 우선 hive 를 설치한 홈 경로에서 (3.1.3 버전의 경우) conf 폴더 아래의 hive-site.xml 파일을 vim 등의 텍스트 에디터로 엽니다. 저는 vim 을 기준으로 말씀드리겠습니다.
vim 의 단축키 를 이용하겠습니다.
들어가자마자 슬래시(/) 를 입력한 뒤 hive.server2.thrift.bind.host 를 입력하고 엔터칩니다.
그럼 해당 키워드를 지닌 부분으로 바로 이동합니다
아마 처음에는 <value/> 이렇게만 되어있고 아무 값도 없을 겁니다. 이 부분에 hive 가 서비스 되고 있는 서버의 ip 주소를 입력해줍니다. 저의 경우 로컬에서 실행하고 있으므로 위와 같이 기입한 뒤 저장했습니다.
또한 hadoop 의 설정 파일 중 하나인 core-site.xml 에 다음과 같은 설정을 추가해줍니다.
<property>
<name>hadoop.proxyuser.[username].groups</name>
<value>*</value>
</property>
<property>
<name>hadoop.proxyuser.[username].hosts</name>
<value>*</value>
</property>
다음으로 spark 홈 경로에서 sbin 폴더 밑의 start-thriftserver.sh 를 실행합니다 (이 부분은 실제로 꼭 필요한 단계인지 아닌지 잘 모르겠습니다)
그리고서 hive 홈에서 bin/beeline -u jdbc:hive2://127.0.0.1:10000 을 입력하면
시작도 제대로 되고 잘 실행됩니다.
만약 위와 같은 설정을 하지 않고 하면?
WARN jdbc.HiveConnection: Failed to connect to localhost:10000
Error: Could not open client transport with JDBC Uri: jdbc:hive2://localhost:10000: Failed to open new session: java.lang.RuntimeException: org.apache.hadoop.ipc.RemoteException(org.apache.hadoop.security.authorize.AuthorizationException): User: ~ is not allowed to impersonate hive (state=08S01,code=0)
와 같은 에러를 만나게 됩니다.
주의할 점이 한 가지 더있습니다. 다른 자료들을 찾아보면 종종 위와 같이 beeline을 실행하기 전에 hive server2 를 먼저 실행하라며 다음과 같은 명령을 먼저 입력하라는 내용이 있는 경우가 있습니다.
hive --service hiveserver2
근데 이 명령을 실행한 뒤 beeline -u jdbc:hive2://127.0.0.1:10000 명령을 입력해 실행하는 경우에도 위와 같은 에러를 만나게 되니 주의해야 합니다.
*참고자료
https://www.gooper.com/ss/bigdata/2963
https://github.com/chuqbach/Big-Data-Installation/issues/2
https://thebook.io/006908/part02/ch05/03/03/02-01/
*별개로 괜찮은 hiveserver2, beeline 관련 자료
'Data > hadoop ecosystem' 카테고리의 다른 글
21년도에 스파크 실시간 처리 영상 남겨둔 것 (0) | 2024.03.09 |
---|---|
한 페이지로 정리하는 spark 개념 (0) | 2022.06.22 |
hadoop safe mode, 아무리 leave 해도 계속 ON 될때는?! (0) | 2022.04.27 |
매우 끔찍했던 mac 하둡 hadoop 설치, hive 설치 3.x 버전 with 상세 설명 (2) | 2022.04.21 |