Windows 배포 Hive(Cygwin 없음)

4343 단어 bigdatahadoophive
Hive를 배치하기 전에 Hadoop과 MySQL을 구축해야 합니다. mysql 데이터베이스는 메타데이터를 저장하는 데 사용됩니다. (기본 데이터베이스는 Derby)
환경 버전
OS: Windows 10
java:jdk1.8.0_111
Hadoop: hadoop-2.7.3
Hive: Hive-2.2.0
배포 준비
1. Hive배치 패키지를 다운로드하고 압축을 풀다.
2. mysql-connector-java-5.1.22-bin을 다운로드합니다.jar, hive의lib 디렉터리에 놓으십시오.
3. 환경 변수 추가 HIVEHOME, Hive 디렉토리를 가리키고%HIVEHOME%\bin이 환경 변수 Path에 추가됩니다.
구성 파일 수정
hive-site.xml 설정
mysql 관련 설정
javax를 주의하십시오.jdo.option.ConnectionPassword에 해당하는value는 루트의 암호입니다.암호 설정이 잘못되면 연결이 거부된 Error가 보고됩니다.

        javax.jdo.option.ConnectionURL
        jdbc:mysql://localhost:3306/hive?createDatabaseIfNotExist=true
        JDBC connect string for a JDBC metastore
    

    
      javax.jdo.option.ConnectionDriverName
      com.mysql.jdbc.Driver
      Driver class name for a JDBC metastore
    

    
      javax.jdo.option.ConnectionUserName
      root
      username to use against metastore database
    

    
      javax.jdo.option.ConnectionPassword
      root's password
      password to use against metastore database
    

Hive 설정에 필요한 디렉터리
하이브의 디렉터리가 D:/envpath/apache-hive-2.2.0-bin이라고 가정하면 다음과 같이 설정할 수 있습니다.

    hive.exec.local.scratchdir    
    D:/envpath/apache-hive-2.2.0-bin/hive/scratch_dir
    Local scratch space for Hive jobs
  

  
    hive.downloaded.resources.dir    
    D:/envpath/apache-hive-2.2.0-bin/hive/resources_dir/${hive.session.id}_resources    
    Temporary local directory for added resources in the remote file system.
  

   
    hive.querylog.location
    D:/envpath/apache-hive-2.2.0-bin/hive/querylog_dir
    Location of Hive run time structured log file
  

   
    hive.server2.logging.operation.log.location
    D:/envpath/apache-hive-2.2.0-bin/hive/operation_dir
    Top level directory where operation logs are stored if logging functionality is enabled
  

HDFS에 디렉토리 만들기
생성/user/hive/warehouse
>hdfs dfs -mkdir /user
>hdfs dfs -mkdir /user/hive
>hdfs dfs -mkdir /user/hive/warehouse

이후localhost:50070에 가서 파일 시스템의 디렉터리를 보고utilities->browse the file 시스템을 클릭하십시오.
/tmp 디렉토리를 클릭하면 다음과 같은 문제가 발생합니다.
Permission denied: user=dr.who, access=READ_EXECUTE, inode="/tmp":DELL_PC:supergroup:drwx-wx-wx

이 지침에 따라 다음과 같은 명령을 수행하여 권한을 수정해야 합니다.
>hdfs dfs -chmod -R 755 /tmp

MySQL 구성
Hive 데이터베이스를 만들려면 다음과 같이 하십시오.
create database hive default character set latin1;

만약 루트 사용자가 데이터베이스에 연결하지 않는다면 권한을 부여해야 한다.여기의user는hive-site와야 합니다.xml에서 설정한 일치입니다.다음 문장은 사용자user가hive 데이터베이스를 조작할 수 있도록 권한을 부여하고 비밀번호는password입니다.
grant all on hive.* to user@'localhost'  identified by 'password';
flush privileges;

Hive 시작
Hadoop 시작
>cd %HADOOP_HOME%/sbin
>start-all  //       deprecated,      strat-dfs,start-yarn

metastore 시작
hive --service metastore

여기 시동 걸고 com에 대해서 알려드렸어요.google.common.base.Stopwatch.elapsed의 NoSuchMethodError 예외입니다.Stopwatch 클래스는 구바에서 인용된 것으로 하도프 -2.7.3과 하이브 -2.2.0에 모두 구바 패키지가 있지만 버전이 다르면 버전 충돌이 생겼을 수 있다.Hive는guava-11.0.1판,hadoop은guava-14.0.1이므로hadoop의 원본의guava-11.0.1을 사용합니다.jar는 모두guava-14.0.1로 바꿉니다.jar.Hadoop을 다시 시작하고 metastore를 시작하면 NoSuchMethodError 예외가 더 이상 보고되지 않습니다.
테스트 Hive
테이블 테스트 생성table, showtable을 실행하면 테스트가 출력됩니다.table.
hive>create table test_table(id INT, name string);
hive>show tables;
HDFS의 user/hive/warehouse에 test테이블의 디렉토리입니다.
참조 자료:
https://blog.csdn.net/tornadojava/article/details/56835459
https://blog.csdn.net/f7anty/article/details/72629622

좋은 웹페이지 즐겨찾기