0x00 前言
Hive是一个数据仓库基础工具在Hadoop中用来处理结构化数据。它架构在Hadoop之上,总归为大数据,并使得查询和分析方便。并提供简单的sql查询功能,可以将sql语句转换为MapReduce任务进行运行。引自https://www.yiibai.com/hive/
本次在安装hadoop基础上配置安装HIVE数据仓库。Hadoop安装教程参考Centos7搭建Hadoop伪分布式集群详细步骤
0x01 配置安装HIVE
下载
首先下载HIVE,为了与Hadoop3.2.0,我选择的hive版本为3.1.1
配置环境变量
下载完成后进行解压,根据解压目录自行配置环境变量1
2vi .bashrc //配置环境变量
source .bashrc //使配置生效
修改配置文件
移动到HIVE安装目录下的conf
文件夹执行1
2
3
4
5
6
7cp 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,添加JAVA_HOME,HADOOP_HOME及HIVE配置文件目录,请根据自己环境自行修改如下
Schema初始化
执行schematool -initSchema -dbType derby
执行成功效果如下
如果执行failed,修改hive-3.1.1/scripts/metastore/upgrade/derby
目录下的hive-schema-2.1.0.derby.sql
按下图将框中内容使用注释符--
注释
重新执行schematool -initSchema -dbType derby
启动HIVE
Schema初始化成功后即可启动hive,命令hive
启动成功如下,如出现报错,请移至文末0x03 问题解决
查看笔者记录部分问题解决方法
0x02 HIVE命令
详细命令参考Hive常用命令
0x03 问题解决
expansion character问题
解决方法:修改报错的hive-site.xml
,将报错位置3210
行第96个字符删掉
${system:xxx}路径错误问题
出现该问题的主要原因是hive配置文件中不能使用冒号目录定义方法,可将其直接修改为目录。
如配置文件中用${system:java.io.tmpdir}
定义的路径改为/tmp/
,${system:user.name}
定义的路径改为${user.name}
,其他类似
可使用cat -n hive-site.xml |grep system:
定位到出现问题的位置