一.什么是Hive?
Hive是建立在Hadoop上的工具.能够帮助用户屏蔽掉复杂的MapReduce逻辑,只需要用户使用简单的SQL语句即可完成一定的查询功能 Hive利用HDFS存储数据,利用MapReduce查询数据
二.Hive与传统数据库比对
Hive RDMS 查询语言 HQL SQL 数据存储 HDFS Raw Device or Local FS 执行 MapReduce Executor 执行延迟 高 低 处理数据规模 大 小 索引 0.8版本后加入 复杂索引机制
注:Hive具有SQL数据库的很多类似功能,但应用场景不同,只适合做批量数据统计分析
三.Hive部署
1.下载与安装
1)下载链接: https://pan.baidu.com/s/1ktOAPcRuctId60m_38tcQg 提取码: mk39 2)将hive安装包拖入opt目录下解压安装: tar -zxvf hive-1.1.0-cdh5.14.2.tar.gz
3)改名: mv hive-1.1.0-cdh5.14.2/ hive
4)删除安装包: rm -rf hive-1.1.0-cdh5.14.2.tar.gz
5)配置环境变量: vi /etc/profile
,添加以下内容:
export HIVE_PATH=/ opt/ hive
export PATH=$PATH :$HIVE_PATH / bin
6)输入: source /etc/profile
,使其生效
2.Hive需要提前装好MySQL
安装MySQL
grant all on * . * to root@'hadoop110' ;
flush privileges;
3.Hive配置文件修改
1.进入配置文件目录: cd /opt/hive/conf/ 2)新建hive-site.xml
文件: vi hive-site.xml
,添加如下内容:
<?xml version="1.0" ?>
<?xml- stylesheet type ="text/xsl" href="configuration.xsl" ?>
<configuration>
<property>
<name>hive. metastore. warehouse. dir </ name>
<value>hdfs:/ / hadoop110:9000/ hive/ warehouse</ value>
<description>管理表存储的位置, 可以是linux中的目录, 也可以是相对于fs. default. name有关的目录</ description>
</ property>
<property>
<name>hive. metastore. local</ name>
<value>true</ value>
</ property>
<! -- 指定hive元数据存储的MySQL地址 -- >
<property>
<name>javax. jdo. option. ConnectionURL</ name>
<value>jdbc:mysql:/ / 127. 0. 0. 1: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>
<! -- 元数据存储数据库的密码, ( 注:这里是mysql自己root用户的密码) -- >
<property>
<name>javax. jdo. option. ConnectionPassword</ name>
<value>ok</ value>
</ property>
<property>
<name>hive. server2. authentication</ name>
<value>NONE</ value>
</ property>
<property>
<name>hive. server2. thrift. client. user</ name>
<value>root</ value>
</ property>
<property>
<name>hive. server2. thrift. client. password</ name>
<value>ok</ value>
</ property>
</ configuration>
3)新建hive-env.sh
文件: vi hive-env.sh
,添加如下内容:
export HADOOP_HOME=/ opt/ hadoop- 2. 6. 0- cdh5. 14. 2
export HIVE_HOME=/ opt/ hive
export HADOOP_CONF_DIR=$HADOOP_HOME / etc/ hadoop
export HIVE_AUX_JARS_PATH=/ opt/ hive/ lib
export JAVA_HOME=/ opt/ jdk1. 8. 0_221
export HIVE_CONF_DIR=/ opt/ hive/ conf
4)修改hive-log4j.properties,配置hive的log,先改名, mv hive-log4j.properties.template hive-log4j.properties
进入文件: vi hive-log4j.properties
,之后按20gg快速定位,修改为如下内容:
hive. log. dir =/ opt/ hive/ logs
5)新建配置文件需要的目录:mkdir /opt/hive/warehouse
,mkdir /opt/hive/logs
6)将mysql-connector-java-5.1.0-bin.jar包拖到$HIVE_HOME/lib目录下 7)给hive文件赋权:chmod -R 777 /opt/hive
4.启动(需要先启动hdfs)
1)初始化mysql数据库: schematool -initSchema -dbType mysql
,效果如下: 2)输入: hive
,进入hive命令行模式,效果如下: 3)使用SQLyog可发现已建立hive数据库,如下: 4)输入: show tables;
效果如下(刚开始没有表): 5)创建一个再查看,效果如下: 6)输入:exit;
退出hive命令行 7)如果warehouse目录存储在hdfs上可以去50070端口查看创建的表,如下: