Apache Hive 安装详解及相关问题解决方案

摘 要

本文介绍hive工具的安装及整合mysql

下载Hive

点击hive官方下载

hive目前两个运行版本分为两个分支:1.x 、2.x

1.x主要是运行在MapReduce上面。

2.x主要运行在Spark上面。

安装及配置

  1. 上传并解压Hive

将Hive上传到hadoop集群服务器/itunic/目录下,并解压到当前目录。

tar -zxvf apache-hive-1.2.1-bin.tar.gz

2.将hive配置到环境变量

vi /etc/profile
#set hive env
export HIVE_HOME=/itunic/hive
export PATH=${HIVE_HOME}/bin:$PATH
#让环境变量生效
source /etc/profile

3.修改Hive配置文件

修改hive-env.sh文件

进入${HIVE_HOME}/conf/目录下,执行:

#将hive-env 模板文件复制一份
cp hive-env.sh.template hive-env.sh
#复制完成后进入该文件的编辑模式
vi hive-env.sh
#将以下内容写入到hive-env.sh文件中
#jdk的安装目录
export JAVA_HOME=/itunic/jdk
#hadoop的安装目录
export HADOOP_HOME=/itunic/hadoop
#hive的安装目录
export HIVE_HOME=/itunic/hive
  • 修改log4j文件

进入${HIVE_HOME}/conf/目录下,执行:

#copy hive-log4j模板文件
cp hive-log4j.properties.template hive-log4j.properties
#编辑该文件
vi hive-log4j.properties
#将EventCounter修改成org.apache.hadoop.log.metrics.EventCounter
#log4j.appender.EventCounter=org.apache.hadoop.hive.shims.HiveEventCounter
log4j.appender.EventCounter=org.apache.hadoop.log.metrics.EventCounter
  • 整合Mysql

由于hive自身的derby模式,只运行有一个Session连接。在多人使用hive的时候,会造成线程不安全问题。这里我们采取将于mysql整合,把hive的元数据保存进mysql。因为mysql本身支持多session,这样就可以避免多人使用hive时,造成的线程不安全问题。

进入${HIVE_HOME}/conf/目录下,执行:

  1. vi hive-site.xml

将以下信息写入到hive-site.xml文件中

<configuration>
 <property>
 <name>javax.jdo.option.ConnectionURL</name>
 <value>jdbc:mysql://localhost:3306/hive?createDatabaseIfNotExist=true</value>
 </property>
 <property>
 <name>javax.jdo.option.ConnectionDriverName</name>
 <value>com.mysql.jdbc.Driver</value>
 </property>
 <property>
 <name>javax.jdo.option.ConnectionUserName</name>
 <value>root</value>
 </property>
 <property>
 <name>javax.jdo.option.ConnectionPassword</name>
 <value>root</value>
 </property>
</configuration>

6.copy Mysql 驱动

安装hive和mysq完成后,将mysql的连接jar包拷贝到$HIVE_HOME/lib目录下

7.启动hive

bin/hive

附录

1.如果报错Terminal initialization failed; falling back to unsupported

将${HIVE_HOME}/lib 里面的jline2.12替换了hadoop 中${HADOOP_HOME}/share/hadoop/yarn/lib/jline-0.09*.jar

2.如果启动hive报mysql没有权限,在mysql授权(在安装mysql的机器上执行)

mysql -uroot -p
#(执行下面的语句  *.*:所有库下的所有表   %:任何IP地址或主机都可以连接)
GRANT ALL PRIVILEGES ON *.* TO 'root'@'localhost' IDENTIFIED BY 'root' WITH GRANT OPTION;
FLUSH PRIVILEGES;

3.如果抛出异常

Logging initialized using configuration in jar:file:/itunic/apache-hive-2.0.0-bin/lib/hive-common-2.0.0.jar!/hive-log4j2.properties
Exception in thread "main" java.lang.RuntimeException: 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)

则需要执行以下命令即可解决

schematool -dbType mysql -initSchema

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏Jed的技术阶梯

Hive多用户模式安装

hadoop01-hadoop04:hadoop集群 hadoop01:MySQL服务器 hadoop02:Hive服务端 hadoop03-hadoop...

1372
来自专栏Scott_Mr 个人专栏

Carthage的安装和使用

3708
来自专栏张泽旭的专栏

hadoop集群安装

分布式安装 修改IP地址和主机名(主机名可以不用修改) hadoop1.com 192.168.213.146 192.168.213.255 255.255....

1152
来自专栏运维

Codis安装部署全架构

Codis 是一个分布式 Redis 解决方案, 对于上层的应用来说, 连接到 Codis Proxy 和连接原生的 Redis Server 没有明显的区别 ...

712
来自专栏Java技术分享

2.Linux系统学习笔记-目录架构-常用命令

一些常用的基本命令: uname  -a     查看内核版本         ls  -al     显示所有文件的属性   pwd          显...

1866
来自专栏Java学习123

CentOS 6.3下Samba服务器的安装与配置

4839
来自专栏Java技术分享

Linux系统学习笔记-目录架构-常用命令

uname  -a     查看内核版本        

19410
来自专栏Hadoop实操

CENTOS7.2安装CDH5.10和Kudu1.2(一)

本文档描述CENTOS7.2操作系统部署CDH企业版的过程。Cloudera企业级数据中心的安装主要分为4个步骤:

3916
来自专栏蔡鹏的专栏

开源的分布式分析引擎 Kylin 2.0.0 的环境部署

经过将近一周深夜调试到3、4点终于把环境配置好了(无数次的重新安装)囧。配置过程中也明白了很多关联的知识点,本文记录我成功搭建的过程。

6480
来自专栏君赏技术博客

【已解决】Carthage 集成 Framework 提示因为 Bitcode 无法打包

【已解决】Carthage 集成 Framework 提示因为 Bitcode 无法打包

1672

扫码关注云+社区