hive的三种模式及配置

12 篇文章 2 订阅

hive依赖于hadoop集群和mysql数据库,hadoop集群安装不在详述,mysql见3(3)

1、配置分布

 NameNodeDataNodeZookeeperDFSZKFCJournalNodehive(单用户)hive(多用户)mysql
node011  1    
node02 11 1   
node03 11 1   
node04 11 1 1(服务端) 
node051  1 11(客户端) 
node06       1

2、配置环境变量

在hive-env.sh中配置环境

export HADOOP_HOME=/opt/module/hadoop-2.7.2  #自己实际hadoop路径
export HIVE_CONF_DIR=/opt/module/hive/conf   #自己实际hive配置路径

3、local模式(内嵌derby)

此模式是基于hive内嵌derby数据库,一般用作Unit Test,只需在hive-site.xml配置即可

<?xml version="1.0"?>  
<?xml-stylesheet type="text/xsl" href="configuration.xsl"?>  
<configuration>  
<property>  
  <name>javax.jdo.option.ConnectionURL</name>  
  <value>jdbc:derby:;databaseName=metastore_db;create=true</value>  #指定derby地址和数据库库名
</property>  
<property>  
  <name>javax.jdo.option.ConnectionDriverName</name>  
  <value>org.apache.derby.jdbc.EmbeddedDriver</value>  #derby驱动
</property>  
<property>  
  <name>hive.metastore.local</name>  
  <value>true</value>  #本地模式
</property>   
<property>  
  <name>hive.metastore.warehouse.dir</name>  
  <value>/user/hive/warehouse</value>  
</property>  
</configuration>

这里需要说的是,本地模式和远程模式的区别在于是metastore和hive服务是否在同一进程,其“远程”主要体现在metastore和hive服务离得远,二者是否分离, 不是mysql数据库是否在同一台机器

4、本地模式

该模式下hive服务和metastore服务运行在同一个进程中,mysql可以在安装同一台机器上,也可以在远程机器上

该模式只需将hive-site.xml中的ConnectionURL指向mysql,并配置好驱动名、数据库连接账号即可

(2)在$HIVE_HOME/conf下hive-site.xml配置以下内容

<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<?xml-stylesheet type="text/xsl" href="configuration.xsl"?>
<configuration>
<property>
  <name>hive.metastore.warehouse.dir</name>
  <value>/data/hive/warehouse</value>#hdfs目录
</property>
<property>
  <name>hive.metastore.local</name>
  <value>true</value>
</property>
<property>
  <name>javax.jdo.option.ConnectionURL</name>
  <value>jdbc:mysql://192.168.1.76/hive_remote?createDatabaseIfNotExist=true</value>#msql地址
</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> #mysql用户名
</property>
<property>
  <name>javax.jdo.option.ConnectionPassword</name>
  <value>123456</value> #密码
</property>
</configuration>

(3)安装mysql

    yum源安装:yum -y install mysql-server

    启动mysql服务:service mysqld start

    连接mysql:mysql(无密码,直接进入)

    修改root用户权限(允许所有主机连接root用户,密码为123456)

    GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY '123456' WITH GRANT OPTION;

    刷新生效:flush privileges;

    退出连接:quit;

5、远程模式(mysql)

该模式下hive服务和metastore在不同的进程内,可能是不同的机器,因此需要单独启动metastore服务。该模式需要hive.metastore.local设置为false,并将hive.metastore.uris设置为metastore服务器URI,如有多个metastore服务器,URI之间用逗号分隔。

hive的服务端和客户端可以同一台机一起配置,也可以在不同机器分开配置,分开如下

(1)服务端配置,hive-site.xml

<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<?xml-stylesheet type="text/xsl" href="configuration.xsl"?>
<configuration>
<property>
  <name>hive.metastore.warehouse.dir</name>
  <value>/data/hive/warehouse</value>#hdfs存储目录,和客户端保持一致
</property>
<property>
  <name>hive.metastore.local</name> #元数据在本机
  <value>false</value>
</property>
<property>
  <name>javax.jdo.option.ConnectionURL</name>
  <value>jdbc:mysql://192.168.1.76/hive_remote?createDatabaseIfNotExist=true</value>#msql地址
</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> #mysql用户名
</property>
<property>
  <name>javax.jdo.option.ConnectionPassword</name>
  <value>123456</value> #密码
</property>
</configuration>

(2)客户端配置,hive-site.xml

<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<?xml-stylesheet type="text/xsl" href="configuration.xsl"?>
<configuration>
<property>
  <name>hive.metastore.warehouse.dir</name>
  <value>/data/hive/warehouse</value> #hdfs存储目录,和服务端保持一致
</property>
<property>
  <name>hive.metastore.local</name>
  <value>false</value> #元数据不在本机
</property>
<property>
  <name>hive.metastore.uris</name>
  <value>thrift://192.168.1.74:9083</value> #服务端通信地址、端口
</property>
</configuration>

(4)启动hive服务端metastore服务

     $HIVE_HOME/bin/hive --service metastore 

(5)客户端连接测试

    连接:$HIVE_HOME/bin/hive

hive> show tables;
OK
tt
Time taken: 0.187 seconds, Fetched: 1 row(s)
hive>

 

 

 

  • 1
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值