Hive是基于Hadoop的一个数据仓库工具,可以将结构化的数据文件映射为一张数据库表,并提供类SQL查询功能(HQL)。其本质是将SQL转换为MapReduce的任务进行运算,底层由HDFS来提供数据的存储,hive可以理解为一个将SQL转换为MapReduce的任务的工具。
因为什么使用Hive:
直接使用hadoop所面临的问题
人员学习成本太高 项目周期要求太短 MapReduce实现复杂查询逻辑开发难度太大
为什么要使用Hive
操作接口采用类SQL语法,提供快速开发的能力。 避免了去写MapReduce,减少开发人员的学习成本。 功能扩展很方便。
Hive的特点
可扩展
Hive可以自由的扩展集群的规模,一般情况下不需要重启服务。
延展性
Hive支持用户自定义函数,用户可以根据自己的需求来实现自己的函数。
容错
良好的容错性,节点出现问题SQL仍可完成执行。
Hive架构图
Hive和Hadoop的关系
Hive利用HDFS存储数据,利用MapReduce查询分析数据,踩在巨人的肩膀上实现业务
Hive的安装
第一步:在线安装mysql相关的软件包yum install mysql mysql-server mysql-devel
第二步:启动mysql的服务/etc/init.d/mysqld startchkconfig mysqld on
第三步:进入mysql的客户端然后进行授权use mysql;配置远程连接 grant all privileges on . to ‘root’@’%’ identified by ‘123456’ with grant option; flush privileges;
第四步 设置root用户链接mysql的密码update user set password=password(‘123456’) where user=‘root’; flush privileges;
修改hive的配置文件修改hive-env.sh
添加我们的hadoop的环境变量:
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
Hive Configuration Directory can be controlled by:
export HIVE_CONF_DIR=/export/servers/hive-1.1.0-cdh5.14.0/conf
修改hive-site.xml
cd /export/servers/hive-1.1.0-cdh5.14.0/conf
vim hive-site.xml
上传mysql的lib驱动包
将mysql的lib驱动包上传到hive的lib目录下
cd /export/servers/hive-1.1.0-cdh5.14.0/lib
将mysql-connector-java-5.1.38.jar 上传到这个目录下
使用方法
cd /export/servers/hive-1.1.0-cdh5.14.0
bin/hive
查看所有数据库 hive (default)> show databases;