这里写目录标题
- 1.Hive简介
- (1)直观的理解
- (2)Hive的特点
- 2.Hive的安装与配置
- (1)安装
- (2)配置
- 1)配置前的准备
- 2)配置hive-site.xml
- 3)将mysql-java驱动拷贝到 hive110/lib中
- 4)配置环境变量
- 5)初始化hive
- 6)启动hive访问hiveserver
- 7)启动hiveserver2
- 8)登入beeline客户端
- 9)取消繁琐的日志信息
1.Hive简介
(1)直观的理解
Hive是基于Hadoop的一个数据仓库工具,可以将结构化的数据文件映射为一张数据库表,并提供类SQL查询功能。
其本质是将SQL转换为MapReduce程序:
hive是要类SQL语句(HiveQL)来实现对hadoop下的数据管理。hive属于数据仓库的范畴,那么,数据库和数据仓库到底有什么区别了,这里简单说明一下:数据库侧重于OLTP(在线事务处理),数据仓库侧重OLAP(在线分析处理);也就是说,例如mysql类的数据库更侧重于短时间内的数据处理,反之。
无hive:使用者…->mapreduce…->hadoop数据(可能需要会mapreduce)
有hive:使用者…->HQL(SQL)->hive…->mapreduce…->hadoop数据(只需要会SQL语句)
(2)Hive的特点
•可扩展
Hive可以自由的扩展集群的规模,一般情况下不需要重启服务
•延展性
Hive支持用户自定义函数,用户可以根据自己的需求来实现自己的函数
•容错
良好的容错性,节点出现问题SQL仍可完成执行
2.Hive的安装与配置
(1)安装
hive的安装包在网上可以找到,可以通过xftp传到虚拟机的指定目录,以方便解压安装。
[root@chenzhen hadoop]# tar -zxvf hive-1.1.0-cdh5.14.2.tar.gz -C /opt/bigdata/hadoop/
解压到指定目录下之后,可以选择改一个简单点的名字。
(2)配置
1)配置前的准备
- 启动hadoop或hadoop ha
- 修改hive110的权限: chown -R root:root hive110/
- 安装mysql
- 准备mysql连接javar驱动包,存放到/opt/install/hadoop
找到hive下的conf目录
[root@chenzhen conf]# pwd
/opt/bigdata/hadoop/hive110/conf
2)配置hive-site.xml
新建hive-site.xml文件
------------ thrift => rpc -----------------
ipc => 同节点进程之间函数调用
rpc => 不同节点进程之间函数调用(微服的核心)
- thrift通过一个中间语言IDL(接口定义语言)来定义RPC的数据类型和接口,这些内容写在以.thrift结尾的文件中,
- 然后通过特殊的编译器来生成不同语言的代码,以满足不同需要的开发者,比如java开发者,就可以生成java代码,c++开发者可以生成c++代码,
- 生成的代码中不但包含目标语言的接口定义,方法,数据类型,还包含有RPC协议层和传输层的实现代码
vi hive-site.xml
写入以下配置
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<?xml-stylesheet type="text/xsl" href="configuration.xsl"?>
<configuration>
<property>
<name>hive.metastore.warehouse.dir</name>
<value>/hive110/warehouse</value>
</property>
<property>
<name>javax.jdo.option.ConnectionURL</name>mysql
<value>jdbc:mysql://192.168.182.10:3306/hive110?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>
<!--本地连接-->
<property>
<name>javax.jdo.option.ConnectionPassword</name>
<value>root</value>
</property>
<property>
<name>hive.server2.thrift.client.user</name>
<value>root</value>
</property>
<property>
<name>hive.server2.thrift.client.password</name>
<value>root</value>
</property>
</configuration>
3)将mysql-java驱动拷贝到 hive110/lib中
到自己的hive目录的lib下[root@chenzhen lib]# cp /opt/install/hadoop/mysql-connector-java-5.1.38.jar ./
4)配置环境变量
export HIVE_HOME=/opt/bigdata/hive110 export PATH=$PATH:$HIVE_HOME/bin
5)初始化hive
./schematool -dbType mysql -initSchema
6)启动hive访问hiveserver
[root@vwmaster bin]# ./hive
7)启动hiveserver2
nohup hiveserver2> /dev/null 2>&1 &
查看此时的RunJar情况
[root@master sbin]# jps | grep RunJar 18417 RunJar
8)登入beeline客户端
beeline -u jdbc:hive2://192.168.109.138:10000
查看此时的RunJar情况[root@master sbin]# jps | grep RunJar
18417 RunJar
17945 RunJar
关闭hive: kill掉hiveserver2的进程
kill -9 18417
9)取消繁琐的日志信息
临时取消 beeline
set hive.server2.logging.operation.level=NONE;
永久配置:配置后需要重启服务
在之前的配置文件中写入下面的配置
<property>
<name>hive.server2.logging.operation.enabled</name>
<value>true</value>
</property>
<property>
<name>hive.server2.logging.operation.level</name>
<value>NONE</value>
</property>
<property>
<name>hive.server2.logging.operation.log.location</name>
<value>/opt/bigdata/hive/hive110/oprlog</value>
</property>