hive2.2.0安装与配置(元数据保存在mysql中)

版权声明:原创文章,转载请注明出处 https://blog.csdn.net/xianpanjia4616/article/details/86328183

Hive有3中运行模式,今天主要来介绍一下把元数据保存在mysql中的配置方法.

(1)内嵌模式
将元数据保存在本地内嵌的 Derby 数据库中,这是使用 Hive 最简单的方式。但是这种方式缺点也比较明显,因为一个内嵌的 Derby 数据库每次只能访问一个数据文件,这也就意味着它不支持多会话连接。

(2)本地模式
这种模式是将元数据保存在本地独立的数据库中(一般是 MySQL),这用就可以支持多会话和多用户连接了。

(3)远程模式
此模式应用于 Hive 客户端较多的情况。把 MySQL 数据库独立出来,将元数据保存在远端独立的 MySQL 服务中,避免了在每个客户端都安装 MySQL 服务从而造成冗余浪费的情况。


1.解压tar包(使用的是hive-2.2.0),并重命名;

[root@master hive]#  tar -zxvf apache-hive-2.2.0-bin.tar.gz
[root@master hive]#  mv apache-hive-2.2.0-bin hive-2.2.0

2.修改环境变量,vi /etc/profile

export HIVE_HOME=/home/jason/bigdata/hive/hive-2.2.0
export PATH=$PATH:$HIVE_HOME/bin

保存,退出后,别忘了,source /etc/profile使之生效.

3.修改hive的配置文件,hive-site.xml

<configuration>
    <property>
        <name>javax.jdo.option.ConnectionURL</name>
        <value>jdbc:mysql://192.168.17.142:3306/hive?createDatabaseIfNotExist=true</value>
        <description>JDBC connect string for a JDBC metastore</description>    
    </property>   
    <property> 
        <name>javax.jdo.option.ConnectionDriverName</name> 
        <value>com.mysql.jdbc.Driver</value> 
        <description>Driver class name for a JDBC metastore</description>     
    </property>               

    <property> 
        <name>javax.jdo.option.ConnectionUserName</name>
        <value>root</value>
        <description>username to use against metastore database</description>
    </property>
    <property>  
        <name>javax.jdo.option.ConnectionPassword</name>
        <value>12345678</value>
        <description>password to use against metastore database</description>  
    </property>          
<property>  
   <name>hive.metastore.schema.verification</name>  
   <value>false</value>  
 </property>  
<property>
    <name>datanucleus.autoCreateSchema</name>
    <value>true</value>
</property>
<property>
    <name>datanucleus.autoCreateTables</name>
    <value>true</value>
</property>
<property>
    <name>datanucleus.autoCreateColumns</name>
    <value>true</value>
</property>

<property>
    <name>hive.metastore.warehouse.dir</name>
    <value>/hive</value>
    <description>location of default database for the warehouse</description>
</property>
</configuration>

4.初始化hive在mysql的元数据信息.

schematool -dbType mysql -initSchema

 在使用的过程中会有两个报错,如5,6所示,报错信息和解决方法都贴了出来.

5.MySQL server version for the right syntax to use near 'OPTION SQL_SELECT_LIMIT=DEFAULT' at line 1

解决办法:
是mysql的版本和驱动的版本不匹配导致的,我的mysql版本是5.6的,刚开始使用的驱动是5.1.18,
,但是mysql5.6已经抛弃了这个参数,所以会报上面错误,换成驱动mysql-connector-java-5.1.31-bin.jar放到hive/lib/下面.

6.message:For direct MetaStore DB connections, we don't support retries at the client level.

这个报错是因为需要在mysql中设置hive的字符集.

alter database hive character set latin1;

7.启动hive. bin/hive

如果有写的不对的地方,欢迎大家指正,如果有什么疑问,可以加QQ群:340297350,谢谢

猜你喜欢

转载自blog.csdn.net/xianpanjia4616/article/details/86328183