Hive使用概述以及环境配置
本文概述:
Hive产生背景
Hive是什么
为什么要使用Hive
Hive部署架构
Hive与RDBMS的关系、区别
Hive的优缺点
Hive适用场景
Hive环境搭建
Hive产生背景:
MapReduce编程的不便性
传统Rdbms人员的需要
Hive是什么:
由Facebook开源,最初用于解决海量结构化的日志数据统计问题
构建在Hadoop之上的数据仓库
Hive定义了一种类SQL查询语言:HQL(类似SQL,但不完全相同)
通常用于进行离线数据处理(采用MapReduec)
可以认为是一个HQL=>MR的语言翻译器
底层支持多种不同的执行引擎
支持多种不同的压缩格式、存储格式以及自定义函数
为什么要使用Hive:
简单,容易上手(提供类似SQL查询语言HQL)
为超大数据集设计的计算、扩展能力(MR作为计算引擎,HDFS作为存储系统)
统一的元数据管理(可与Pig、Presto、Impala、SparkSQL等共享元数据)
Hive的体系架构
Hive部署架构
测试环境
生产环境
Hive与RDBMS的关系、区别
Hive的优缺点
优点:容易上手易用
缺点:并不能提供低延时或者实时性比较高的需求(各种启动、销毁进程的时间要长)
Hive适用场景
日志分析
海量结构化数据离线分析
Hive环境搭建
1、下载
2、配置hive-site.xml文件
进入hive的conf目录下,拷贝文件hive-default.xml.template命名为hive-site.xml
cp hive-default.xml.template hive-site.xml
添加如下内容:
//39行 hive.exec.scratchdir /home/hadoop/app/hive/tmp/hive hive用于存储不同阶段map/reduce的执行计划及存储中间输出结果的目录 //79行 hive.downloaded.resources.dir /home/hadoop/app/hive/tmp/${hive.session.id}_resources hive下载资源的存储目录 //1685行 hive.querylog.location /home/hadoop/app/hive/tmp/hive hive结构日志存储目录 //3976行 hive.server2.logging.operation.log.location /home/hadoop/app/hive/tmp/hive/operation_logs hive的操作日志目录 //84行 hive.scratch.dir.permission 700 hive访问hadoop文件权限设置 //529行 javax.jdo.option.ConnectionPassword P@ssw0rd 元数据存储的数据库的密码 //1044行 javax.jdo.option.ConnectionUserName root 元数据存储数据库的用户名 //545行 javax.jdo.option.ConnectionURL jdbc:mysql://localhost:3306/hive_metadatacreateDatabaseIfNotExist=true&characterEncoding=utf8 元数据存储的数据库的url //1020行 javax.jdo.option.ConnectionDriverName com.mysql.jdbc.Driver 元数据存储的数据库的驱动 //741行 datanucleus.schema.autoCreateAll true 开启自动创建(生产环境中不推荐使用) //746行 hive.metastore.schema.verification false //2445行 hive.optimize.sort.dynamic.partition false //2775行 hive.support.concurrency true 找不到的话,在任意位置添加上即可 hive.enforce.bucketing true //250行 hive.exec.dynamic.partition.mode nonstrict //2870行 hive.txn.manager org.apache.hadoop.hive.ql.lockmgr.DbTxnManager //2964行 hive.compactor.initiator.on true //2974行 hive.compactor.worker.threads 1 找不到的话,在任意位置添加上即可 hive.in.test true //1195 hive.cli.print.current.db true
3、lib下面添加mysql依赖包
mysql-connector-java-5.1.7-bin
4、添加hive配置
#hive
export HIVE_HOME=/home/hadoop/app/hive
export PATH=$ZK_HOME/bin:$PATH
5、启动hive
hiveserver2
beeline -u jdbc:hive2://
成功之后mysql下会多出一个hive数据库