本地模式搭建Hive

193 阅读1分钟

本文已参与「新人创作礼」活动,一起开启掘金创作之路。​​ ​

前面在使用内嵌模式搭建Hive的时候,默认使用的是derby来存储元数据。这里我们使用本地模式搭建时,尝试使用mysql来进行数据存储。

  • 安装mysql

参考:blog.csdn.net/QYHuiiQ/art…

在之前已经搭建了三台节点的hadoop集群(blog.csdn.net/QYHuiiQ/art…),这里我们将mysql安装在hadoop03节点上。

  •  配置hive

参考搭建内嵌模式时的操作(内嵌模式搭建Hive_QYHuiiQ的博客-CSDN博客):

解压并配置环境变量,配置hive-env.sh,配置hive-site.xml。

这里我们就直接使用内嵌模式时在hadoop02节点上搭建的hive。

修改完上述的配置之后,继续修改hive-site.xml中mysql相关的配置:

[root@hadoop02 conf]# pwd
/usr/local/wyh/apache-hive-2.3.9-bin/conf
[root@hadoop02 conf]# vi hive-site.xml

将javax.jdo.option.ConnectionURL的值修改为mysql的连接信息:

<property>
    <name>javax.jdo.option.ConnectionURL</name>
    <value>jdbc:mysql://hadoop03:3306/hive?createDatabaseIfNotExist=true</value>//这里的hive是数据库名称,如果不存在的话会自动创建
    <description>
      JDBC connect string for a JDBC metastore.
      To use SSL to encrypt/authenticate the connection, provide database-specific SSL flag in the connection URL.
      For example, jdbc:postgresql://myhost/db?ssl=true for postgres database.
    </description>
  </property>

将javax.jdo.option.ConnectionDriverName的值修改为mysql的驱动:

<property>
    <name>javax.jdo.option.ConnectionDriverName</name>
    <value>com.mysql.jdbc.Driver</value>
    <description>Driver class name for a JDBC metastore</description>
  </property>

将javax.jdo.option.ConnectionUserName的值修改为mysql的登陆用户名:

<property>
    <name>javax.jdo.option.ConnectionUserName</name>
    <value>root</value>
    <description>Username to use against metastore database</description>
  </property>

将javax.jdo.option.ConnectionPassword的值修改为mysql上述用户名对应的密码:

<property>
    <name>javax.jdo.option.ConnectionPassword</name>
    <value>123456</value>
    <description>password to use against metastore database</description>
  </property>
  • 在hadoop02上安装mysql connector

由于在hadoop02上的hive要去连接hadoop03上的mysql,需要在hadoop02上安装mysql驱动,这个类似于我们平时写的java程序同样需要connector jar包。

下载connector jar:

MySQL :: Download MySQL Connector/J (Archived Versions)

 下载之后得到的是zip,需要先解压缩之后才可以得到jar:

 将jar放在$HIVE_HOME/lib目录下:

[root@hadoop02 wyh]# cp mysql-connector-java-5.1.28-bin.jar ./apache-hive-2.3.9-bin/lib/
  • 初始化数据库
[root@hadoop02 apache-hive-2.3.9-bin]# schematool -initSchema -dbType mysql
  • 验证数据库是否创建成功

在hadoop03上登陆mysql服务查看:

mysql> show databases;

可以看到它已经帮我们创建了名称为hive的数据库:

以上就是本地模式搭建Hive的过程。