macbook hive安装

1 原材料

1.1 已经安装好的伪分布式hadoop,版本2.8.3(参见链接https://www.cnblogs.com/wooluwalker/p/9128859.html)

1.2 apache-hive-2.3.3-bin.tar.gz

1.3 已经安装好的mysql(mysql-5.7.22)

1.4 mysql-connector-java-8.0.11.jar 

【下载时要选中Platform Independent,下载的是zip 或 tar压缩包,解压即可得到jar包】

 

2 解压安装

2.1 tar -zxvf apache-hive-2.3.3-bin.tar.gz 解压hive安装文件

进入hive/bin,运行hive指令,报错:

Exception in thread "main" java.lang.RuntimeException: org.apache.hadoop.hive.ql.metadata.HiveException: org.apache.hadoop.hive.ql.metadata.HiveException: MetaException(message:Hive metastore database is not initialized. Please use schematool (e.g. ./schematool -initSchema -dbType ...) to create the schema. If needed, don't forget to include the option to auto-create the underlying database in your JDBC connection string (e.g. ?createDatabaseIfNotExist=true for mysql))

以上报错是因为hive运行之前,需要初始化元数据,使用schematool -initSchema -dbType 指定元数据库的类型,hive默认的derby元数据库有不能支持并发操作等弊端,需要替换成mysql,因此需要新替换原数据库,再初始化元数据库

3 替换元数据库为mysql

3.1 复制hive/conf/hive-default.xml.template为hive-site.xml,删除原<configuration>标签中的所有内容,并添加如下内容---数据库连接的基本配置

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

3.3 手动创建hive元数据库,此库必须是latin1,否则会出现奇怪的问题,如下图:

手动创建元数据库hive:
create database hive character set latin1;

3.4 将mysql-connector-java-8.0.11.jar 放在hive-2.3.3/lib目录下

3.5 如果mysql出现没有权限的问题,在安装mysql的机器上执行

#(执行下面的语句 *.*:所有库下的所有表 %:任何IP地址或主机都可以连接)

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

4 初始化元数据库

在hive的 bin目录执行如下代码:

schematool -initSchema -dbType mysql 

 看到结果中输入:

Initialization script completed

schemaTool completed

说明初始化成功!

现在即可以在hive中操作,也可以在mysql元数据库汇总看到对应的元数据库信息

posted @ 2018-06-03 16:17  后山前堂客  阅读(307)  评论(0)    收藏  举报