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)
export HIVE_HOME=/root/app/hive-1.1.0-cdh5.7.0 export PATH=$HIVE_HOME/bin:$PATH
(2) 安装一个Mysql (可以参考我这篇博文)
命令 yum install ***
(3) 在conf下新建一个 hive-site.xml
插入以下内容
<configuration>
<property>
<name>javax.jdo.option.ConnectionURL</name>
<value>jdbc:mysql://localhost:3306/sparksql?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
</configuration>
其中需要填写你的数据库用户名和密码以及连接数据库的驱动
(4) 拷贝数据库驱动(点击这里下载)到$HIVE_HOME/lib/下
(5) 启动Hive
命令: $HIVE_HOME/bin/hive
没有报错,至此Hive环境搭建完毕