Hive产生背景
1)MapReduce的编程不便,需通过Java语言等编写程序
2) HDFS上的文缺失Schema(在数据库中的表名列名等),方便开发者通过SQL的方式处理结构化的数据,而不需要Java等编写程序
Hive是什么
1)facebook开源,最初为解决海量的结构化日志数据统计问题
2)构建中Hadoop上的数据仓库
3)Hive定义了一种SQL查询语言:HQL(类似SQl但又不完全相同)
4)通常进行离线处理(采用MapReduce)
5)多种不同的底层执行引擎(Hive on MapReduce/Tez/Spark)
6)支持多种不同的压缩格式,存储格式以及自定义函数
压缩格式:GZIP,LZO,Snappy,BZIP2..
存储格式:TextFile,SequenceFile,RCFile,ORC,PARquet
UDF:自定义函数
为什么使用Hive
1) 简单,容易上手(提供了类似SQL查询语言HQL)
2) 为超大数据集设计的计算、存储扩展能力(MR计算,HDFS存储)
3) 统一的元数据管理(可与Presto/Impala/SparkSQL等共享数据)
Hive环境搭建
1)使用版本:hive-1.1.0-cdh5.7.0.tar.gz
2) 下载:
wget http://archive.cloudera.com/cdh5/cdh/5/
3)解压:tar -zxvf hive-1.1.0-cdh5.7.0.tar.gz -C ~/app/
4)配置
(1) 系统环境变量(~/.bash_profile)
1 export HIVE_HOME=/root/app/hive-1.1.0-cdh5.7.0 2 3 export PATH=$HIVE_HOME/bin:$PATH
(2) 安装一个Mysql (可以参考我这篇博文)
命令 yum install ***
(3) 在conf下新建一个 hive-site.xml
插入以下内容
1 <configuration> 2 <property> 3 <name>javax.jdo.option.ConnectionURL</name> 4 <value>jdbc:mysql://localhost:3306/sparksql?createDatabaseIfNotExist=true</value> 5 </property> 6 <property> 7 <name>javax.jdo.option.ConnectionDriverName</name> 8 <value>com.mysql.jdbc.Driver</value> 9 </property> 10 11 <property> 12 <name>javax.jdo.option.ConnectionUserName</name> 13 <value>root</value> 14 </property> 15 16 <property> 17 <name>javax.jdo.option.ConnectionPassword</name> 18 <value>root</value> 19 </property 20 </configuration>
其中需要填写你的数据库用户名和密码以及连接数据库的驱动
(4) 拷贝数据库驱动(点击这里下载)到$HIVE_HOME/lib/下
(5) 启动Hive
命令: $HIVE_HOME/bin/hive
没有报错,至此Hive环境搭建完毕