这篇文章给大家分享的是有关为什么使用Hive的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。
什么是Hive
Hive是基于Hadoop的一个数据仓库工具,可以将结构化的数据文件映射为一张数据库表,并提供简单的sql查询功能,可以将sql语句转换为MapReduce任务进行运行。同时,这个语言也允许熟悉 MapReduce 开发者的开发自定义的 mapper 和 reducer 来处理内建的 mapper 和 reducer 无法完成的复杂的分析工作。
为什么使用Hive
学习成本低,可以通过类SQL语句快速实现简单的MapReduce统计,不必开发专门的MapReduce应用,十分适合数据仓库的统计分析。
Hive 系统架构
用户接口主要有三个:CLI,JDBC/ODBC和 WebUI
CLI,即Shell命令行
JDBC/ODBC 是 Hive 的Java,与使用传统数据库JDBC的方式类似
WebGUI是通过浏览器访问 Hive
Metastore(Hive的元数据)
元数据包含了Hive包表的表名、字段分区属性等表的属性信息
默认使用Derby数据库作为默认的元数据仓库(嵌入式,只支持单session回话)
Hive与传统数据的对比
Hive | RDBMS | |
查询语言 | HQL | SQL |
数据存储 | HDFS | Raw Device or Local FS |
执行 | MapReduce | Excutor |
执行延迟 | 高 | 低 |
处理数据规模 | 大 | 小 |
索引 | 0.8版本后加入位图索引 | 有复杂的索引 |
Hive与hadoop 的调用关系
Hive安装
1. 下载hive源文件
2. 解压hive文件
3. 进入$HIVE_HOME/conf/修改文件
a) cp hive-env.sh.template hive-env.sh
b) cp hive-default.xml.template hive-site.xml
4. 修改$HIVE_HOME/bin的hive-env.sh,增加以下三行
a) export JAVA_HOME=/usr/local/jdk1.7.0_45
b) export HIVE_HOME=/usr/local/hive-0.14.0
c) export HADOOP_HOME=/usr/local/hadoop-2.6.0
5. 伪分布模式使用默认的Derby就可以直接启动Hive控制台了,但一般都会修改为MySQL
修改$HIVE_HOME/conf/hive-site.xml
<property>
<name>javax.jdo.option.ConnectionURL</name>
<value>jdbc:mysql://192.168.1.100:3306/crxy_job?
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>admin</value>
</property>
将MySQL的驱动包jar文件存放在HIVE_HOME/lib下
启动Hive,现在就可以执行Sql语句创建表了!
感谢各位的阅读!关于“为什么使用Hive”这篇文章就分享到这里了,希望以上内容可以对大家有一定的帮助,让大家可以学到更多知识,如果觉得文章不错,可以把它分享出去让更多的人看到吧!
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。