HIVE를 설치하는 방법 Ubuntu (다운로드 및 설정 가이드)

⚡ 스마트 요약

Apache Hive 설치 Ubuntu 이미 실행 중인 하둡 클러스터 위에 얇은 데이터 웨어하우스 계층을 구축하는 방식이므로, 설정은 대부분 하나의 아카이브 압축을 풀고 세 개의 환경 변수를 올바른 디렉터리로 지정하는 것만으로 완료됩니다.

  • 🧱 하둡 우선: Hive는 테이블 데이터를 HDFS에 저장하고 클러스터에 작업을 제출하므로 모든 Hadoop 데몬이 이미 실행 중이어야 합니다.
  • ⬇️ 다운로드 소스: 바이너리 릴리스는 Apache 미러 페이지에서 제공되며, 3.x 계열은 2024년 10월에 지원이 종료되었습니다.
  • 📁 두 개의 설정 파일: HIVE_HOME은 bashrc 파일에, HADOOP_HOME은 Hive bin 디렉토리 내의 hive-config.sh 파일에 있어야 합니다.
  • 💾 HDFS 폴더: 첫 번째 테이블을 생성하기 전에, 웨어하우스 및 임시 디렉터리가 HDFS에 존재하고 해당 그룹에 쓰기 권한이 있어야 합니다.
  • 🧩 스키마 단계: schematool 유틸리티는 메타스토어 테이블을 생성하며, Hive 3.x 이상 버전은 초기화되지 않은 스키마를 대상으로 시작하지 않습니다.
  • 🔨 빠르게 확인하세요: 생성 명령 다음에 설명 명령이 실행되면 셸, 메타스토어 및 HDFS가 모두 올바르게 연결되었음을 확인할 수 있습니다.

Hive를 설치하는 방법 Ubuntu

Apache Hive를 설치하기 전에 전용 서버가 필요합니다. 하둡 모든 Hadoop 데몬을 설치하고 실행합니다.

하둡 설치에 대해서는 다음을 확인하세요. 링크.

모든 하둡 데몬이 정상적으로 작동하면 Hive 부분 설치를 시작하세요. 아래 안내는 네 단계로 진행됩니다.

Apache Hive 설치 과정

  1. 필수 조건 및 버전 호환성
  2. 하이브 설치
  3. Metastore 스키마 초기화
  4. Hive 셸 명령

Apache Hive 설치를 위한 필수 조건 Ubuntu

Hive는 독립형 데이터베이스가 아닙니다. HiveQL을 기존 클러스터에서 실행되는 작업으로 변환하는 쿼리 계층이므로, 거의 모든 설치 실패는 이러한 기존 클러스터에서 발생합니다. tracHive 자체의 문제가 아니라 필수 구성 요소가 누락된 문제입니다. 다운로드하기 전에 다음 사항을 확인하십시오.

  • 지원되는 JDK입니다. Hive 4.1.x는 JDK 17에서 실행되지만, Hive 4.2.x는 최소 요구 사항이 JDK 21로 높아졌습니다. 다음 명령어로 버전을 확인하세요. 자바 버전 그리고 JAVA_HOME이 내보내지는지 확인하세요.
  • 실행 중인 하둡 클러스터. NameNode와 DataNode 모두 활성 상태여야 합니다. 실행하세요. JPS NameNode, DataNode, ResourceManager 및 NodeManager가 모두 목록에 나타나는지 확인하십시오.
  • HDFS에 대한 쓰기 권한이 있습니다. Hive를 시작하는 계정에는 하위 디렉터리를 생성할 수 있는 권한이 필요합니다. HDFS.
  • 버전이 일치합니다. Hive 4.2.0은 Hadoop 3.4.1 및 Tez 0.10.5를 기반으로 빌드되었습니다. Hive 3.x 제품군은 2024년 10월에 지원이 종료되었으므로 새로 설치할 때는 4.x 제품군을 대상으로 해야 합니다.
  • 무료 자료. 단일 노드 학습 환경은 약 4GB의 RAM과 20GB의 여유 디스크 공간이면 원활하게 작동합니다.

위 사항들을 모두 확인하셨다면, 아래의 다운로드 및 압축 해제 과정은 문제없이 진행될 것입니다.

Hive를 설치하는 방법 Ubuntu

다음은 Hive를 설치하는 방법에 대한 단계별 프로세스입니다. Ubuntu:

1단계) Hive를 다운로드하고 설치합니다. Ubuntu

Hive 안정 버전 설치 파일을 다운로드하려면 다음을 참조하십시오. 아파치 URL 아래에 언급된 바와 같습니다.

https://www.apache.org/dyn/closer.cgi/hive/ — ~로 가세요 URL 그리고 아파치 미러 다운로드 링크를 선택하세요. Apache Hive 다운로드 페이지 각 릴리스와 해당 Hadoop 버전이 어떻게 쌍을 이루는지 나열합니다.

미러 페이지는 아래 그림과 같이 사용 가능한 Hive 릴리스 디렉터리 목록과 함께 열립니다.

Apache Hive 릴리스 디렉터리 목록을 보여주는 Apache 미러 페이지입니다.

Hive 설치 프로그램의 최신 버전을 선택하세요. (제 경우에는 hive – 3.1.2입니다.) 릴리스 폴더에는 바이너리 및 소스 아카이브가 나란히 나열됩니다.

바이너리 및 소스 배포 아카이브를 보여주는 Hive 릴리스 폴더

bin 파일을 클릭하면 다운로드가 시작됩니다.

apache-hive bin tar.gz 배포 파일 다운로드를 위한 브라우저 안내 메시지

2단계) 예시tract tar 파일

다운로드한 tar 파일이 있는 위치로 이동한 다음 실행하세요.trac다음 명령어를 사용하여 tar 파일을 압축 해제하고 Hive를 설치하세요. Ubuntu 귀하의 시스템에.

tar -xvf  apache-hive-3.1.2-bin.tar.gz

터미널은 새 Hive 디렉터리에 파일이 압축 해제될 때마다 각 파일의 내용을 출력합니다.

Hive tar 아카이브가 실행되는 동안의 터미널 출력trac테드 온 Ubuntu

3단계) ​​Apache Hive에 다양한 구성 속성 배치

이 단계에서는 두 가지 작업을 수행할 것입니다.

  1. bashrc 파일에 Hive 홈 경로를 추가합니다.
  2. hive-config.sh에 Hadoop 홈 경로 위치를 지정합니다.

1) ~/.bashrc 파일에 Hive 경로를 명시하세요.

아래 명령어를 사용하여 파일을 편집 모드로 엽니다.

Hive 환경 변수를 편집하기 위해 bashrc 파일을 여는 명령입니다.

  • 위 스크린샷에 표시된 대로 bashrc 파일을 엽니다.
  • bashrc 파일에 Hive 홈 경로, 즉 HIVE_HOME 경로를 명시하고 아래와 같이 export 명령을 실행하세요.

bashrc 파일 끝에 HIVE_HOME 및 PATH 내보내기 줄이 추가되었습니다.

Code bashrc에 추가해야 합니다:

export HIVE_HOME="/home/guru99hive/apache-hive-1.2.0-bin"
export PATH=$PATH:$HIVE_HOME/bin

파일을 다시 로드하세요 소스 ~ / .bashrc 따라서 새 경로는 현재 터미널 세션에 적용됩니다.

2) hive-config.sh에서 Hadoop 경로 내보내기

하둡 생태계와 통신하기 위해 Hive 설정 파일에 하둡 홈 경로를 정의합니다. 아래와 같이 hive-config.sh 파일을 엽니다.

Hive bin 디렉토리에서 hive-config.sh 파일을 열기 위해 사용되는 명령어입니다.

아래와 같이 hive-config.sh 파일에 HADOOP_HOME 경로를 명시하십시오.

hive-config.sh 파일 내에 선언된 HADOOP_HOME 경로

4단계) Hadoop에서 Hive 디렉터리 생성

하둡과 통신하려면 아래와 같이 하둡에 디렉터리를 생성해야 합니다. Hive는 관리 테이블 데이터를 warehouse 디렉터리에 기록하고 스테이징 출력을 tmp 디렉터리에 기록합니다.

Hive tmp 및 warehouse 디렉터리를 생성하는 HDFS 명령

하둡에서 Hive 폴더를 생성할 수 있도록 루트 권한을 부여하는 방법입니다. 오류 메시지가 표시되지 않으면 하둡이 Hive 폴더에 대한 권한을 성공적으로 부여한 것입니다.

HDFS의 Hive 폴더에 그룹 쓰기 권한이 부여되었음을 보여주는 터미널 화면입니다.

5단계) Hive 셸에 접속합니다.

Hive 셸에 접속하려면 다음 명령어를 입력하세요. '. /하이브' 아래와 같이 명령.

Hive bin 디렉토리에서 Hive 셸 프롬프트가 열립니다. Ubuntu

Hive 메타스토어 스키마 초기화 방법

Hive는 모든 테이블 이름, 열 이름 및 데이터 형식을 메타스토어라는 관계형 저장소에 저장합니다. 새로 설치하면 이 저장소는 비어 있으며, Hive 3.x 버전부터는 스키마 테이블이 생성될 때까지 셸이 시작되지 않습니다. Hive bin 디렉터리에 있는 schematool 유틸리티를 사용하여 스키마 테이블을 생성할 수 있습니다.

1인 학습 환경의 경우, 함께 제공되는 Derby 데이터베이스로 충분합니다.

$HIVE_HOME/bin/schematool -dbType derby -initSchema

이 명령은 생성된 스키마 버전을 출력하고 끝납니다. schemaTool 완료됨Derby는 명령이 실행된 디렉토리에 파일을 저장하므로, 이후에는 항상 동일한 디렉토리에서 Hive를 실행해야 합니다.

Derby는 한 번에 하나의 활성 세션만 허용하므로 공유 클러스터에는 적합하지 않습니다. Point Hive는 다음과 같습니다. MySQL 대신 hive-site.xml에 연결 속성을 추가하고 다른 데이터베이스 유형으로 도구를 다시 실행하십시오.

$HIVE_HOME/bin/schematool -dbType mysql -initSchema

전체 숙소 목록과 운전기사 배치 정보는 안내서에 자세히 나와 있습니다. Hive 메타스토어를 다음과 같이 구성합니다. MySQL기억해 둘 만한 깃발이 두 개 더 있습니다.

  • -정보 아무것도 변경하지 않고 메타스토어에 현재 기록된 스키마 버전을 보고합니다.
  • -스키마 업그레이드 기존 메타스토어를 새로 설치된 Hive 릴리스의 스키마 버전으로 마이그레이션합니다.

스키마가 설정되었으므로 셸은 첫 번째 HiveQL 문을 수락할 준비가 되었습니다.

Hive 셸 명령

여기서는 Hive 셸 명령어 "create"를 사용하여 열 이름을 지정하고 샘플 테이블을 생성해 보겠습니다.

Hive에서 데이터베이스를 생성하는 샘플 코드입니다. 아래 스크린샷은 생성문과 describe 명령의 출력 결과를 순서대로 보여줍니다.

Hive 셸에서 테이블 생성 및 제품 설명 명령을 실행했을 때의 출력 결과입니다.

위 스크린샷에서 다음과 같은 점을 확인할 수 있습니다.

1) Hive에서 열 이름이 포함된 샘플 테이블 생성

  • 여기서 테이블 이름은 세 개의 열 이름이 있는 "product"입니다. 제품, 이름, 가격
  • 세 개의 열 이름은 각각의 데이터 유형으로 표시됩니다.
  • 모든 필드는 쉼표(', ')로 구분됩니다.

2) Hive 테이블 정보 표시

  • "describe" 명령어를 사용하면 Hive에 있는 테이블 정보를 확인할 수 있습니다.
  • 여기에는 테이블 스키마에 있는 열 이름과 해당 데이터 유형이 표시됩니다.
  • 마지막으로, 이 명령을 실행하는 데 걸린 시간과 가져온 행 수가 표시됩니다.

데이터베이스를 생성하는 샘플 코드 하이브 (자가 점검용)

1) product 테이블 생성 (product int, pname string, price float)

Row format delimited
Fields terminated by ',';

2) 제품을 설명하십시오;

테이블이 describe 명령에 응답하면 셸, 메타스토어 및 HDFS가 모두 연결됩니다. 이후 동일한 세션에서 더 넓은 범위의 요청을 수락할 수 있습니다. 테이블 생성, 수정 및 삭제 진술 및 정렬 기준, 그룹 기준 및 클러스터 기준 검색어.

일반적인 Hive 설치 오류 Ubuntu 그리고 그것을 고치는 방법

대부분의 첫 실행 실패는 Hive 자체보다는 Hive 주변 환경에서 발생합니다. 아래 표는 가장 자주 나타나는 오류 메시지와 그 원인, 그리고 오류를 해결하는 명령어를 보여줍니다.

화면 메시지 가능한 원인 수정
hive: 명령어를 찾을 수 없습니다 HIVE_HOME/bin이 PATH에 없습니다. bashrc 파일의 export 라인을 다시 확인한 후 실행하세요. 소스 ~ / .bashrc
메타스토어에서 버전 정보를 찾을 수 없습니다. 메타스토어 스키마가 초기화되지 않았습니다. 선택한 데이터베이스 유형에 대해 schematool을 -initSchema 옵션과 함께 실행합니다.
localhost:9000 호출이 연결 예외로 인해 실패했습니다. HDFS가 실행 중이 아닙니다. 하둡 데몬을 시작하고 네임노드와 데이터노드가 나타나는지 확인하십시오. JPS
네임노드가 안전 모드에 있습니다. 네임노드는 아직 시작 안전 모드에 있습니다. 안전 모드에서 나가려면 hdfs dfsadmin -safemode leave
권한이 거부되었습니다: /user/hive/warehouse에 대한 쓰기 권한 창고 디렉토리에 그룹 쓰기 권한이 없습니다. 재신청 hdfs dfs -chmod g+w 창고 및 임시 디렉터리에
Preconditions.checkArgument에서 NoSuchMethodError가 발생했습니다. Hive와 Hadoop은 서로 다른 Guava jar 버전을 제공합니다. Hive 라이브러리 디렉터리에 있는 기존 Guava jar 파일을 삭제하고 그 자리에 Hadoop jar 파일을 복사하세요.

Hive 문제와 Hadoop 문제를 빠르게 구분하는 방법은 다음 명령어를 실행하는 것입니다. JPS 먼저, 데몬이 누락된 경우 클러스터에 문제가 있는 것이고, 데몬이 존재하는데도 셸 실행에 실패하는 경우 Hive 구성 또는 메타스토어 스키마에 문제가 있는 것입니다. 셸이 안정적으로 작동하면 다음 단계로 넘어갈 수 있습니다. HiveQL 연산자 및 내장 함수 참고 자료는 자연스러운 다음 단계입니다.

자주 묻는 질문

관리형 테이블을 사용하면 Hive가 메타데이터와 파일 모두를 소유할 수 있으므로 삭제하세요.ping 이 작업은 웨어하우스 디렉터리의 데이터를 삭제합니다. 외부 테이블에는 메타데이터만 기록되고 삭제됩니다.ping 이 기능은 기본 파일을 그대로 유지합니다.

Hive는 JVM과 Hadoop이 실행되는 모든 곳에서 실행되지만, 셸 스크립트는 Unix 환경을 가정합니다. Windows 대부분의 팀은 WSL2 또는 Docker 이미지를 사용합니다. macOS JAVA_HOME과 HADOOP_HOME이 내보내지면 동일한 tar 아카이브가 작동합니다.

Beeline은 Hive를 셸 프로세스 내부에 로드하는 대신 HiveServer2에 연결하는 JDBC 클라이언트입니다. 동시 사용자 접속 및 인증을 지원하며, 기존 Hive CLI는 더 이상 사용되지 않으므로 새로운 설치 시에는 Beeline을 표준으로 사용하는 것이 좋습니다.

최신 검색 엔진은 과거 쿼리 통계를 학습된 비용 모델에 입력하여 스캔 크기, 파티션 가지치기 및 조인 순서를 예측합니다. 클라우드 공급업체는 동일한 신호를 파일 압축, 파티션 레이아웃 및 컨테이너 크기 조정에 대한 자동 권장 사항으로 제공합니다.

Copilot은 bashrc 내보내기, hive-site.xml 블록 및 schematool 호출을 신속하게 생성하며, 에이전트 기반 실행기는 이를 샌드박스 환경에서 실행할 수 있습니다. 생성된 출력은 초안으로 간주하십시오. 버전 번호, 포트 및 디렉터리 경로는 사용자 클러스터에서 검증해야 합니다.

Hive 자체가 씬 클라이언트이기 때문에 학습용으로는 약 4GB의 RAM과 20GB의 여유 디스크 공간이면 충분합니다. 프로덕션 환경의 노드 크기는 Hive 자체보다는 Hadoop 클러스터와 메타스토어 데이터베이스를 기준으로 구성해야 합니다.

새 릴리스를 이전 릴리스 옆에 압축 해제하고, HIVE_HOME을 다시 지정한 다음, schematool을 -upgradeSchema 옵션과 함께 실행하여 메타스토어가 일치하도록 합니다. 제거는 Hive 디렉터리와 strip 파일을 삭제하면 됩니다.ping bashrc의 내보내기 라인은 그대로 유지되고, HDFS 웨어하우스 데이터는 보존됩니다.

아니요. MapReduce는 Hive 실행 엔진으로 더 이상 사용되지 않으며, Hive 4.x는 기본적으로 Apache Tez에서 실행됩니다. MapReduce Tez도 동일한 지시형 직무 모델을 따르기 때문에 해당 모델은 여전히 ​​이해할 가치가 있습니다.

이 게시물을 요약하면 다음과 같습니다.