前言
根据直接所搭建的HDFS-HA来搭建Hive,直通车点击我!!here!!!
简介
What is Hive!
- Hive是一种数据仓库软件,使用SQL来促进对分布式设备上存储的大体量的数据集进行读,写和管理!
- SQL(结构化查询语言),使用SQL的前提是需要有一张表!
- Hive分析数据必须可以映射为一个表结构!
- Hive提供了JDBC驱动和命令行工具,让用户连接Hive!
- Hive基于Hadoop,用来分析Hadoop上存储的结构化数据!
Hive的特征
-
Hive不是一个关系型数据库
-
Hive不是基于OLTP设计!
-
Hive不支持实时查询和行级别更新!
-
Hive在关系型数据库存储元数据,处理的数据存储在hadoop!
-
Hive基于OLAP设计
-
Hive提供了一个类SQL语言,称为HQL,方便查询!
-
Hive简单,易用,可扩展,可伸缩!
注意事项
-
Hive使用HQL(类SQL),分析HDFS上存储的结构化数据!
-
Hive 创建表、库等信息,属于schame (元数据),这些元数据,存储在RDMS(关系型数据库管理软件)!
-
Hive的本质是允许用户使用HQL,讲HQL转换为MapReduce模版,对HDFS上的数据进行查询!
-
Hive分析的数据是存储在hdfs上,hdfs不支持随机写,只支持追加写,所以在hive中不能 delete和update, 只能select和insert
运行条件
- Hve是运行在hadoop上的应用,所以必要依赖有hadoop,HDFS(数据源)。
- Hive自带derby轻量级关系数据库,但是有一定缺陷。不支持多实例操作一个db!
安装准备
- 由于derby的缺陷所以一般情况下都使用另一些支持多实例操作同一个库的关系数据库,这里笔者选择的是MySQL。(点击这里安装MySQL)
- MySQL安装完成以后,将root用户的host字段修改为%,这样root用户可以在任何一台主机上都能访问到数据库。
- 建议手动创建metastore数据库!metastore数据的编码必须为latin1!(数据库名字根据$HIVE_HOME/conf/hive-site.xml里的配置作更改)
安装Hive
将压缩包解压即可,笔者解压到 /opt/module 将目录名字修改为hive
修改配置文件(元数据配置到mysql)
根据官方文档配置参数,拷贝数据到hive-site.xml文件中
路径为 : $HIVE_HOME/conf/hive-site.xml
<?xml version="1.0"?>
<?xml-stylesheet type="text/xsl" href="configuration.xsl"?>
<configuration>
<property>
<name>javax.jdo.option.ConnectionURL</name>
<value>jdbc:mysql://hadoop102:3306/metastore?createDatabaseIfNotExist=true</value>
<description>JDBC connect string for a JDBC metastore</description>
</property>
<property>
<name>javax.jdo.option.ConnectionDriverName</name>
<value>com.mysql.jdbc.Driver</value>
<description>Driver class name for a JDBC metastore</description>
</property>
<property>
<name>javax.jdo.option.ConnectionUserName</name>
<value>root</value>
<description>username to use against metastore database</description>
</property>
<property>
<name>javax.jdo.option.ConnectionPassword</name>
<value>000000</value>
<description>password to use against metastore database</description>
</property>
</configuration>
javax.jdo.option.ConnectionURL:指定url注意‘’问号‘’前面的为数据库名字!和安装准备阶段的第三条对应!一般在这里修改库名!
javax.jdo.option.ConnectionUserName:指定用户名!
avax.jdo.option.ConnectionPassword:指定密码!
注意
- 如果这里配置错误则均会导致在用脚本启动hive时,session创建 实例失败!
- 导入mysql-connector-java-5.1.27-bin.jar到hive的lib目录下!!!如果没有导入依然会报错,同上!!
测试准备
使用脚本启动高可用集群,脚本参考点这里!!。
zhstart
查看启动状态
xcall jps
启动Hive
因为笔者之前启动过hive2服务所以kill掉确保现在是没有启动hive的!
目录切到hive,执行脚本命令启动
bin/hive
出现hive> 搭建成功!