Hive三种模式的简单介绍及具体搭建流程

理论基础

hive有三种运行模式:
    内嵌模式、本地模式、远程模式。


内嵌模式:
    元数据保村在内嵌的derby中,允许一个会话链接,尝试多个会话链接时会报错。

本地模式:
    本地安装mysql 替代derby存储元数据。
    由于元数据的获取需要访问mysql,所以这就要求每一个用户必须要有对MySQL的访问权利。

远程模式:
    以本地模式为基础。
    mysql数据库所在的节点提供metastore service服务,其他节点可以连接该服务来获取元数据信息。
    各种客户端通过 beeline 来连接,连接之前无需知道数据库的用户名和密码。
    

    

一、前 期准备

安装好hadoop并启动。

hadoop搭建:

Hadoop伪分布搭建               

Hadoop全分布搭建

Zookeeper搭建及Zookeeper实现Hadoop的HA

搭建远程模式的时候,使用全分布[HA]的方式。其他情况随意。

二、搭建内嵌模式

1、tar -zxvf /opt/source/apache-hive-2.3.4-bin.tar.gz -C ../apps

2、mv apache-hive-2.3.4-bin/ hive-2.3.4

3、vi + /etc/profile
    export HIVE_HOME=/opt/apps/hive-2.3.4
    export PATH=$PATH:$HIVE_HOME/bin 

4、cd /opt/apps/hive-2.3.4/conf 

5、cp hive-env.sh.template hive-env.sh && vi hive-env.sh
    HADOOP_HOME=/opt/apps/hadoop-2.6.5

6、cp hive-default.xml.template hive-site.xml && vi hive-site.xml
    删除configuration内部所有内容


    
        hive.metastore.warehouse.dir
        /user/hive/warehouse
    

    
        javax.jdo.option.ConnectionURL
        jdbc:derby:;databaseName=metastore_db;create=true
    

    
        javax.jdo.option.ConnectionDriverName
        org.apache.derby.jdbc.EmbeddedDriver
    

      
        hive.metastore.local
        true
    

    

6、初始化元信息(每次启动hive都需要执行这一步)
    cd /opt/apps/hive-2.3.4/bin && ./schematool -dbType derby -initSchema
    如果失败的话:
         去mysql中删除hive创建的database重新初始化。

7、验证是否搭建成功
    先执行hive    
    hive> create table a(id int);
    OK
    Time taken: 1.436 seconds
    hive> select count(*) from a;
    OK
    0
    
    如果建表能建,且查询没问题,则搭建成功。

    
        
    

三、搭建本地模式 

搭建mysql

1、yum -y install mysql-server

2、chkconfig mysqld on && service mysqld start

3、mysql

4、use mysql;

5、grant all privileges on *.* to 'root'@'%' identified by '123456' with grant option;

6、delete from user where host<>'%';    #####删除多余的会对权限造成影响的数据

7、flush privileges;
    或者重启mysql服务。

-------------------------------------------------------------------
-------------------------------------------------------------------

搭建hive

1、tar -zxvf /opt/source/apache-hive-2.3.4-bin.tar.gz -C ../apps

2、cd ../apps && mv apache-hive-2.3.4-bin/ hive-2.3.4

3、vi + /etc/profile
    export HIVE_HOME=/opt/apps/hive-2.3.4
    export PATH=$PATH:$HIVE_HOME/bin 

4、 vi /opt/apps/hive-2.3.4/bin/hive-config.sh
        export HIVE_HOME=/opt/apps/hive-2.3.4
        export HADOOP_HOME=/opt/apps/hadoop-2.6.5
        export JAVA_HOME=/usr/java/jdk1.7.0_80 

5、cd /opt/apps/hive-2.3.4/conf && cp hive-default.xml.template hive-site.xml && vi hive-site.xml
    删除configuration内部所有内容

 
    
        hive.metastore.local
        true


    
        javax.jdo.option.ConnectionURL 
        jdbc:mysql://Linux005:3306/hive_remote?createDatabaseIfNotExist=true
    

    
        javax.jdo.option.ConnectionDriverName
        com.mysql.jdbc.Driver
    

     
        javax.jdo.option.ConnectionUserName
        root
    


      
        javax.jdo.option.ConnectionPassword  
    123456 
    


7、将mysql连接驱动包“   mysql-connector-java-5.1.32-bin.jar  ”放到hive家目录的lib文件夹下

8、初始化元信息
    cd /opt/apps/hive-2.3.4/bin && ./schematool -dbType mysql -initSchema
    如果失败的话:
         去mysql中删除hive创建的database重新初始化。

#####好像第一次连接hive直接就会自动初始化元数据,所以这一步似乎是不需要的


9、验证是否搭建成功
    先执行hive    
    hive> create table a(id int);
    OK
    Time taken: 1.436 seconds
    hive> select count(*) from a;
    OK
    0
    
    如果建表能建,且查询没问题,则搭建成功。

四、远程模式的搭建

规划:

Linux001 :MySQL服务器

Linux002:metastore服务器

Linux003:Hive客户端

Linux004:Hive服务端

1、Linux001搭建MySQL步骤

搭建mysql

1、yum -y install mysql-server

2、chkconfig mysqld on && service mysqld start

3、mysql

4、use mysql;

5、grant all privileges on *.* to 'root'@'%' identified by '123456' with grant option;

6、delete from user where host<>'%';    #####删除多余的会对权限造成影响的数据

7、flush privileges;
    或者重启mysql服务。

2、Linux004搭建Hive服务端

1、tar -zxvf /opt/source/apache-hive-2.3.4-bin.tar.gz -C ../apps

2、mv apache-hive-2.3.4-bin/ hive-2.3.4

3、vi + /etc/profile
    export HIVE_HOME=/opt/apps/hive-2.3.4
    export PATH=$PATH:$HIVE_HOME/bin 

4、 vi /opt/apps/hive-2.3.4/bin/hive-config.sh
        export HIVE_HOME=/opt/apps/hive-2.3.4
        export HADOOP_HOME=/opt/apps/hadoop-2.6.5
        export JAVA_HOME=/usr/java/jdk1.7.0_80
        

5、cd /opt/apps/hive-2.3.4/conf && cp hive-default.xml.template hive-site.xml && vi hive-site.xml

 
    
        hive.metastore.local
        false


    
        javax.jdo.option.ConnectionURL 
        jdbc:mysql://Linux001:3306/hive_metadata?createDatabaseIfNotExist=true
    

    
        javax.jdo.option.ConnectionDriverName
        com.mysql.jdbc.Driver
    

     
        javax.jdo.option.ConnectionUserName
        root
    


      
        javax.jdo.option.ConnectionPassword  
    123456 
    


6、将mysql连接驱动包“   mysql-connector-java-5.1.32-bin.jar  ”放到hive家目录的lib文件夹下



7、验证是否搭建成功
    先执行hive    
    hive> create table a(id int);
    OK
    Time taken: 1.436 seconds
    hive> select count(*) from a;
    OK
    0
    
    如果建表能建,且查询没问题,则搭建成功。



2、Linux002搭建metastore服务器

1、执行“Linux004搭建hive服务端”的前7步。

2、启动metastore服务器
    hive --service metastore 
    注意:该命令会阻塞
    

3、Linux003搭建Hive客户端

1、执行“Linux004搭建hive服务端”的前5步。

2、cp hive-default.xml.template hive-site.xml && vi hive-site.xml
    删除configuration内部所有内容

    
        hive.metastore.warehouse.dir
        /user/hive/warehouse??
    
 
    
        hive.metastore.local
        false


    
        hive.metastore.uris 
        thrift://Linux002:9083
    

3、执行“Linux004搭建hive服务端”的第7步。

在这台机子上启动Hive前需要先启动Linux003上的metastore。

 

你可能感兴趣的:(Hive,数据仓库Hive学习总结)