hive2.01+mysql5.5

1.环境介绍:

root@hzl-ThinkPad-L460:~# hive --version
hive 2.0.1
Subversion git://reznor-mbp-2.local/Users/sergey/git/hivegit -r e3cfeebcefe9a19c5055afdcbb00646908340694
Compiled by sergey on Tue May 3 21:03:11 PDT 2016
From source with checksum 5a49522e4b572555dbbe5dd4773bc7c2
root@hzl-ThinkPad-L460:~# mysql -V;
mysql  Ver 14.14 Distrib 5.5.53, for debian-linux-gnu (x86_64) using    readline 6.3

2.安装hive
下载hive安装包,可以从 Apache 其中一个镜像站点中下载最新稳定版的 hive, apache-hive-2.1.0-bin.tar.gz。
解压安装hive,使用以下命令安装 hive:

sudo tar -xzvf apache-hive-2.1.0-bin.tar.gz    ##解压
sudo ln -s apache-hive-2.1.0-bin hive    ##创建软链接

3.设置 hive环境变量
编辑 .bashrc 文件, 在其中添加以下内容:

# hive Env
export hive_HOME=/root/app/hive
export PATH=$PATH:$hive_HOME/bin

使环境变量生效:

source .bashrc

4.配置hive
配置文件重命名,在运行 hive 之前需要使用以下命令修改配置文件:

cd /root/app/hive/conf
cp hive-env.sh.template hive-env.sh
cp hive-default.xml.template hive-site.xml
cp hive-log4j2.properties.template hive-log4j2.properties
cp hive-exec-log4j2.properties.template hive-exec-log4j2.properties

修改hive-env.sh
因为 hive 使用了 Hadoop, 需要在 hive-env.sh 文件中指定 Hadoop 安装路径:

export JAVA_HOME=/root/app/java    ##Java路径
export HADOOP_HOME=/root/app/hadoop   ##Hadoop安装路径
export hive_HOME=/root/app/hive    ##hive安装路径
export hive_CONF_DIR=/root/app/hive/conf    ##hive配置文件路径

修改hive-site.xml替换hive-site.xml文件中的 system:java.io.tmpdir {system:user.name}

  <property>
    <name>system:java.io.tmpdir</name>
    <value>/root/hive</value>
  </property>
  <property>
    <name>system:user.name</name>
    <value>root</value>
  </property>

配置hive Metastore
默认情况下, hive的元数据保存在了内嵌的 derby 数据库里, 但一般情况下生产环境使用 MySQL 来存放 hive 元数据。将 mysql-connector-java-5.1.39.jar 放入 $hive_HOME/lib 下。
hive-site.xml 中配置 MySQL 数据库连接信息

<property>
 <name>javax.jdo.option.ConnectionURL</name>
 <value>jdbc:mysql://localhost:3306/hive?createDatabaseIfNotExist=true&amp;characterEncoding=UTF-8&amp;useSSL=false</value>
</property>
<property>
 <name>javax.jdo.option.ConnectionDriverName</name>
 <value>com.mysql.jdbc.Driver</value>
</property>
<property>
 <name>javax.jdo.option.ConnectionUserName</name>
 <value>hive</value>
</property>
<property>
 <name>javax.jdo.option.ConnectionPassword</name>
 <value>hive</value>
</property>

为hive创建HDFS目录
在 hive 中创建表之前需要使用以下 HDFS 命令创建 /tmp 和 /user/hive/warehouse (hive-site.xml 配置文件中属性项 hive.metastore.warehouse.dir 的默认值) 目录并给它们赋写权限。

hdfs dfs -mkdir /tmp
hdfs dfs -mkdir /usr/hive/warehouse
hdfs dfs -chmod g+w /tmp
hdfs dfs -chmod g+w /usr/hive/warehouse

运行hive
在命令行运行 hive 命令时必须保证 HDFS 已经启动。可以使用 start-dfs.sh 来启动 HDFS。
从 hive 2.1 版本开始, 我们需要先运行 schematool 命令来执行初始化操作。

schematool -dbType mysql -initSchema

要使用 hive CLI(hive command line interface), 可以在终端输入以下命令:

hive

问题总结

这里写图片描述

解决方案:将 $hive_HOME/lib 下 的 mysql-connector-java-6.0.3.jar 替换成 mysql-connector-java-5.1.39.jar。 原因分析:mysql-connector-java 6.x 版本 和 5.1.x 版本不兼容 , nullNamePatternMatchesAll 连接属性的默认值在 mysql-connector-java 5.1 和 6.0 之间发生了改变. 在 5.1 版本中默认值是 true, 而 6.0 版本中默认值是 false。可以参考文章 https://liquibase.jira.com/browse/CORE-2723

2.这里写图片描述

修改 system:java.io.tmpdir {system:user.name}

3.hive2.10和如上的mysql版本使用所有jdbc都不能成功load。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值