hive的三种模式及配置

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/lzxlfly/article/details/80793164

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

1、配置分布

  NameNode DataNode Zookeeper DFSZKFC JournalNode hive(单用户) hive(多用户) mysql
node01 1     1        
node02   1 1   1      
node03   1 1   1      
node04   1 1   1   1(服务端)  
node05 1     1   1 1(客户端)  
node06               1

2、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>

3、单用户模式(mysql)

    通过网络连接到一个数据库中,是最经常使用到的模式

(1)复制mysql驱动包到$HIVE_HOME/lib下

(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;

4、多用户模式

(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>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>

(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服务端程序

    $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>

猜你喜欢

转载自blog.csdn.net/lzxlfly/article/details/80793164