欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

hive的远程访问模式搭建

程序员文章站 2022-05-29 08:06:05
...

 

目录

 

安装规划:

安装准备:

安装步骤:

一、安装mysql

二、安装好数据库进行以下操作

       1. 配置环境变量

                2. 配置hive-env.sh

       3. 配置hive-site-xml 文件 

                4. 将mysql设置为hive的元数据库

                5. 服务端启动hive

        三、客户端配置

       1. 编辑配置文件

       2. 启动多用户的hive


安装规划:

  • 远程模式:mysql数据库所在的节点提供metastore service服务,其他节点可以连接该服务来获取元数据信息。

  • 集群  master,slave001,slave002
  • 服务端:slave001作为hive服务端
  • 客服端:slave002作为客户端连接
  • 元数据存储:master提供mysql数据库存储元数据。

安装准备:

  • hive版本是:hive-2.3.5
  • mysql驱动版本:mysql-connector-java-8.0.18.jar
  • jdk版本1.8。jdk-8u231-linux-x64
  • slave001安装hive,,master上安装mysql数据库。
  • master,slave001,slave002三台机器搭建hadoop集群。

安装步骤:

一、安装mysql

  • 在master上安装mysql数据库,可以使用yum安装或者上传安装包使用rpm命令安装
create user 'hive' identified by 'root';
GRANT ALL PRIVILEGES ON *.* TO [email protected]'%' IDENTIFIED BY 'root' with grant option;
GRANT ALL PRIVILEGES ON *.* TO [email protected]'localhost' IDENTIFIED BY 'root' with grant option;
flush privileges  

二、安装好数据库进行以下操作

  1. 配置环境变量
  2. 配置 hive-env.sh
  3. 配置 hive-site.xml
  4. 将mysql设置为hive的元数据库
  5. 将mysql设置为hive的元数据库成功之后,服务端启动hive 
  • 配置环境变量

    vi  /etc/profile
        export HIVE_HOME=/root/opt/hive-2.3.5
        export PATH=$PATH:$HIVE_HOME/bin 
    
    
    使环境变量生效并验证环境变量生效
    
    source /etc/profile
    

     

  • 配置hive-env.sh

cp /root/opt/hive-2.3.5/conf/hive-env.sh.template /root/opt/hive-2.3.5/conf/hive-env.sh
HADOOP_HOME = /root/opt/hadoop
exprot HIVE_CONF_DIR = /root/opt/hive
  •  配置hive-site-xml 文件 

  •    以下为hive-site.xml的配置

vi /root/opt/hive-2.3.5/conf/hive/hive-site.xml
<property>  
  <name>hive.metastore.warehouse.dir</name>  
  <value>/user/multiuserhive/warehouse</value>  
</property>  
<property>  
  <name>javax.jdo.option.ConnectionURL</name>  
  <value>jdbc:mysql://slave002:3306/hive?createDatabaseIfNotExist=true</value>  
</property>  
<property>  
  <name>javax.jdo.option.ConnectionDriverName</name>  
  <value>com.mysql.jdbc.Driver</value>  
</property>  
<property>  
  <name>javax.jdo.option.ConnectionUserName</name>  
  <value>root</value>  
</property>  
<property>  
  <name>javax.jdo.option.ConnectionPassword</name>  
  <value>root</value>  
</property>  

  • 注意:作为服务端需要连接mysql,所以需要将mysql的驱动包拷贝到hive的lib目录下
  • 将mysql设置为hive的元数据库

  • schematool -dbType mysql initSchema 没有配置环境变量的时候在hive的bin目录下面  ./schematool -dbType mysql initSchema  初始化
  • hive --service metastore (该启动非后台启动,退出后客户端就连接不上) (注意:启动这个命令的时候界面会卡在那里但是实际上是成功的。)注意:该命令会阻塞
  • 后台启动metastore: hive --service metastore &
  • 注意一定要在初始化成功之后,启动metastore 之后再  启动hive
  • 服务端启动hive

  • 配置环境变量之后  :hive  没有配置环境变量  在bin目录下启动./hive
  • 验证是否搭建成功
        先执行hive    
        hive> create table a(id int);
        OK
        Time taken: 1.436 seconds
        hive> select count(*) from a;
        OK
        0
        
        如果建表能建,且查询没问题,则搭建成功。

  ---------客户端配置-------------

   三、客户端配置

     选择服务器slave002作为hive客户端,并将配置好的服务端的hive目录拷贝到该节点上

  1. 编辑配置文件

vi /root/opt/hive-2.3.5/conf/hive/hive-site.xml
<property>  
  <name>hive.metastore.warehouse.dir</name>  
  <value>/user/multiuserhive/warehouse</value>  
</property> 
<!--配置是否在本地开启memstore服务-->
<property>  
  <name>hive.metastore.local</name>  
  <value>false</value>  
</property>  
<!--配置元数据服务的url-->
<property>  
  <name>hive.metastore.uris</name>  
  <value>thrift://slave:9083</value>  <!--slave001是hive服务器的ip-->
</property>  

 

  • 启动多用户的hive

  • hive --service metastore (该启动非后台启动,退出后客户端就连接不上)
  • 后台启动metastore: hive --service metastore &
  • 在客户端slave002上连接hive服务:hive