Hive安装与配置
以下安装配置均是在虚拟机环境下进行的(我使用的是centos)
Hive简介
- HIve是一个基于hadoop的开源数据仓库工具,用于存储和处理海量的(半)结构化数据
- Hive将海量的数据存储于hadoop文件系统,而不是数据库,但提供了 一套类数据库的数据存储和处理机制,并采用HQL(类SQL)语言对这些数据进行自动化管理和处理,可以用来进行数据提取转化加载(ETL),这是一种可以存储、查询和分析存储在Hadoop中的大规模数据的机制
- Hive的本质是将SQL转换为SQL转换为MapReduce程序
- Hive诞生于Facebook的日志分析需求,面对海量的结构化数据,Hive以较低的成本完成了以往需要大规模数据库才能完成的任务,并且学习门槛相对较低,应用开发灵活而高效。
Hive的安装与配置(一)
Hive不存在集群,Hive不用配置是伪分布式还是完全分布式模式,它只是一个客户端工具,可以运行在集群的任意一个节点上
- 下载解压
apache-hive-2.3.3-bin.tar.gz
到/usr/local
- 重命名文件夹为
hive
- 修改所属组和所属用户(root环境下不需要这一步)
- 配置环境变量
~/.bashrc
[hadoop@s0 ~]$ sudo tar -zxvf downloads/apache-hive-2.3.3-bin.tar.gz -C /usr/local/
[hadoop@s0 ~]$ cd /usr/local/
[hadoop@s0 local]$ sudo mv apache-hive-2.3.3-bin/ hive
[hadoop@s0 local]$ sudo chown -R hadoop:hadoop hive
[hadoop@s0 ~]$ vi .bashrc
# 在.bashrc 中输入以下内容(前三行不是本次需要输入的内容):
export JAVA_HOME=/usr/local/jdk
export HADOOP_HOME=/usr/local/hadoop
export SPARK_HOME=/usr/local/spark
export HIVE_HOME=/usr/local/hive #输入此行
export PATH=$JAVA_HOME/bin:$HADOOP_HOME/sbin:$HADOOP_HOME/bin:$SPARK_HOME/bin:$HIVE_HOME/bin:$PATH
Hive的启动
- 启动hadoop集群(前面有博客介绍过,这里就不再介绍安装了)
[hadoop@s0 ~]$ start-all.sh # Yarn必须要启动
启动Hive之前要先启动Hadoop集群,不能只启动HDFS文件系统,Yarn也需要启动,因为以后执行Hive语句的时候会转化为MapReduce任务
- 启动hive
[hadoop@s0 ~]$ hive
启动时会报错:不能建立元数据库的错误
hive的元数据库
-
hive中的元数据(Metastore)
-
元数据包括表的名字、表的列和分区及其属性、表的属性(是否为外部表等)、表的数据所在目录等。
-
Hive 将元数据存储在关系型数据库中,目前只支持MySQL、Derby;原始的Hive默认使用Derby数据库
-
请注意区分,Hive存储的海量数据放在HDFS中,但是Hive自己的元数据放在关系型数据库中
-
元数据库默认使用内嵌的Derby数据库作为存储引擎;Derby引擎的缺点:一次只能打开一个会话
-
需要更换Hive的数据库为MySQL,使用MySQL作为外置存储引擎,支持多用户同时访问。
-
所以先要安装一下MySQL(本地方式),即MySQL数据库同hive安装在一个系统中。
安装配置MySQL
- 观察是否安装过MySQL
[hadoop@s0 ~]$ rpm -qa | grep -i mysql
mysql-libs-5.1.73-3.el6_5.x86_64
已存在mysql-libs-5.1.73-3.el6_5.x86_64的库(这是linux自带的)
- 在线安装MySQL
[hadoop@s0 ~]$ sudo yum install mysql-server
- 观察MySQL版本
[hadoop@s0 ~]$ mysql -V #是大写的V
mysql Ver 14