Hive
Hive
是什么
Hive是一个数据仓库工具
Hive提供了类SQL的语法,HQL,直接对存储在分布式存储系统(HDFS)上的数据,进行读、写、管理以及分析计算。
Hive可以为HDFS的存储的文件添加表结构映射。
Hive提供了两类操作接口,命令行接口,JDBC远程连接。
-
优点
使用方便:降低了Hadoop使用的学习成本
扩展性:Hive直接使用Hadoop提供的高性能高容错的分布式存储和计算平台 -
缺点
速度慢:面向海量数据,默认使用MR引擎
优化粒度较粗:开发者只能基于SQL层面做优化
Hive的安装
-
Hive需要依靠HDFS作为底层存储
-
需要依靠MR作为计算引擎
-
需要依靠MySQL存储Hive的元数据
-
版本:最新3.x 当前2.3.9
- 下载解压
-
修改配置文件
- hive-env.sh
HADOOP_HOME=/opt/hadoop-2.7.7
export JAVA_HOME=/opt/jdk1.8
- hive-site.xml
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<?xml-stylesheet type="text/xsl" href="configuration.xsl"?>
<configuration>
<property>
<name>javax.jdo.option.ConnectionURL</name>
<value>jdbc:mysql://bd1201:3306/metastore</value>
</property>
<property>
<name>javax.jdo.option.ConnectionDriverName</name>
<value>com.mysql.cj.jdbc.Driver</value>
</property>
<property>
<name>javax.jdo.option.ConnectionUserName</name>
<value>root</value>
</property>
<property>
<name>javax.jdo.option.ConnectionPassword</name>
<value>123456</value>
</property>
</configuration>
- 将mysql的java驱动jar包上传到Hive的lib目录
- 添加环境变量
echo 'export HIVE_HOME=/opt/hive-2.3.9' >> /etc/profile
echo 'export PATH=$HIVE_HOME/bin:$PATH' >> /etc/profile
source /etc/profile
- 初始化元数据库
schematool -initSchema -dbType mysql
- 启动Cli
hive