Ubuntu 16.04配置hive mysql db元数据

    默认hive使用的元信息数据库derby不是很好用。第一就是不支持多任务,第二就是配置hive环境变量然后启动hive因为derby的数据文件路径问题经常报错。

    配置hive的一个小前提是Hadoop环境已经配置ok,hfs可用。参考其官方quick start即可。hive的配置主要配置文件就一个hive-site.conf。

1,从默认xml复制一份。

cp hive-default.xml.template hive-site.xml

2,Ubuntu安装mysql,如果mysql已经安装跳过此步骤。

sudo apt install mysql-server mysql-client

在命令执行过程中会有对话框让输入mysql账号root的密码,连续输入两次完成mysql root账号密码配置。

严谨点对于一般mysql数据库不应用直接提供root账号作为应用账号。都需要新建个账号提供给hive使用。一是不安全,就类似linux服务一般会新建用户组来提供服务;二是生成环境如果db连接数满了mysql会预留给root一个连接,用于数据库管理。如果普通应用也使用则此功能就失效了。

3,修改hive-site.xml文件一共4处逐一修改如下即可。


<property>  
    <name>javax.jdo.option.ConnectionURL</name>  
    <value>jdbc:mysql://localhost:3306/hive</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>root</value>  
    <description>password to use against metastore database</description>  
  </property>  

4,命令行进入mysql。创建配置在connectionUrl后面的db,加过createDatabaseIfNoExist。但是不好用,还是手动创建的。

5,执行hive之前需要init schema,启动hive之前需要启动hdfs。

schematool -dbType mysql -initSchema

6,启动hive命令,会提示找不到mysql jar包。到mvnrepository下载个jar包放到lib下面即可。笔者hive2版本用的mysql jar包是5.1。添加上jar包启动ok。

猜你喜欢

转载自my.oschina.net/xiaopei/blog/1626995