1.Hive介绍
1.1什么是Hive
Hive相当于是站在hdfs和MapReduce的肩膀上的工具,可以将结构化的数据文件映射为一张数据库表,并提供类SQL查
询功能(HQL),其本质是将SQL转换为MapReduce的任务进行运算,底层由HDFS来提供数据的存储,hive可以理解为
一个将SQL转换为MapReduce的任务的工具。
1.2为什么使用Hive
面临的问题:
人员学习成本太高
项目周期要求太短
MapReduce实现复杂查询逻辑开发难度太大
为什么要使用Hive
操作接口采用类SQL语法,提供快速开发的能力。
避免了去写MapReduce,减少开发人员的学习成本。
功能扩展很方便。
1.3 Hive特点
1.可扩展
Hive可以自由的扩展集群的规模,一般情况下不需要重启服务。
2.延展性
Hive支持用户自定义函数,用户可以根据自己的需求来实现自己的函数。
3.容错
良好的容错性,节点出现问题SQL仍可完成执行。
2.Hive安装部署
2.1 安装和mysql相关的软件包
yum install mysql mysql-server mysql-devel
2.2永久启动MySQL
/etc/init.d/mysqld start
chkconfig mysqld on
2.3进入mysql的客户端然后进行授权
use mysql;
2.4 配置远程连接
grant all privileges on *.* to 'root'@'%' identified by '123456' with grant option;
2.5 刷新
flush privileges;
2.6设置root用户连接MySQL的密码
update user set password=password('123456') where user='root';
2.7 刷新
flush privileges;
2.8修改hive-env.sh文件的配置
cd /export/servers/hive-1.1.0-cdh5.14.0/conf
cp hive-env.sh.template hive-env.sh
vim hive-env.sh
HADOOP_HOME=/export/servers/hadoop-2.6.0-cdh5.14.0(在文本中默认是注释掉的,打开即可)
export HIVE_CONF_DIR=/export/servers/hive-1.1.0-cdh5.14.0/conf(这个也是如此)
2.9新建hive-site.sh
cd /export/servers/hive-1.1.0-cdh5.14.0/conf
vim hive-site.xml
<?xml-stylesheet-0 type="text/xsl" href="configuration.xsl"?>
<configuration>
<property>
<name>javax.jdo.option.ConnectionURL</name>
<value>jdbc:mysql://node03.hadoop.com: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>
<property>
<name>javax.jdo.option.ConnectionPassword</name>
<value>123456</value>
</property>
<property>
<name>hive.cli.print.current.db</name>
<value>true</value>
</property>
<property>
<name>hive.cli.print.header</name>
<value>true</value>
</property>
<property>
<name>hive.server2.thrift.bind.host</name>
<value>node03.hadoop.com</value>
</property>
2.10上传mysql的lib驱动包
将mysql的lib驱动包上传到hive的lib目录下