hive初级、进阶、高级
2014-10-30 21:51
316 查看
刚刚研究了hive,从定义,安装到hive命令、优化高级,不断完善中。。。
Hive的本质是将SQL转换成mapreduce程序。
操作接口采用类sql语法,提供快速开发能力
扩展功能比较方便
–zxvf hive-0.9.0-bin.tar.gz
修改hive/conf下的配置文件
cphive-default.xml.template hive-default.xml
cphive-default.xml hive-site.xml
cphive-env.sh.template hive-env.sh
hive-env.sh配置HADOOP_HOME=/home/user/hadoop,最好配置一下jvm堆大小,否则使用jdbc服务的时候很容易内存溢出export
HADOOP_HEAPSIZE=1024,大小视自己情况而定。
配置环境变量HIVE_HOME和PATH,vi
/etc/profile ,配置完成后source /etc/profile,使文件立即生效,配置如下:
到此为止,hive配置完成,输入hive,启动,输入show
databases进行验证、运行web接口:hive --service hwihttp://client:9999/hwi
启动hive的jdbc服务端thrift服务接口
hive --service hiveserver 50000
第一步:安装MySQL服务器端和MySQL客户端,并启动MySQL服务(我的安装在window下,hive在虚拟机下centos6.5),安装时需要允许远程登录(记得最后一步打钩,如果是在linux上,sudo
gedit /etc/mysql/my.cnf ,#bind-address=127.0.0.1 <---注释掉这一行就可以远程登录了)
第二步:安装Hive
第三步:为Hive建立相应的MySQL账户,并赋予足够的权限,执行命令如下:
$ mysql -uroot -pmysql
mysql> CREATE USER 'hive' IDENTIFIED BY 'mysql';
mysql> GRANT ALL PRIVILEGES ON *.* TO 'hive'@'%' WITH GRANTOPTION;
mysql> flush privileges;
第四步:建立
Hive 专用的元数据库,记得创建时用刚才创建的“hive”账号登陆。
mysql> exit;
$ mysql -uhive –pmysql
mysql> create database hive;
第五步:在Hive的conf目录下的文件“hive-site.xml”中增加如下配置:
<?xml version="1.0"?>
<?xml-stylesheettype="text/xsl" href="configuration.xsl"?>
<configuration>
<property>
<name>hive.metastore.local</name>
<value>true</value>
</property>
<property>
<name>javax.jdo.option.ConnectionURL</name>
<value>jdbc:mysql://192.168.11.157:3306/hive?characterEncoding=UTF-8</value>
</property>
<property>
<name>javax.jdo.option.ConnectionDriverName</name>
<value>com.mysql.jdbc.Driver</value>
</property>
<property>
<name>javax.jdo.option.ConnectionUserName</name>
<value>hive</value>
</property>
<property>
<name>javax.jdo.option.ConnectionPassword</name>
<value>mysql</value>
</property>
</configuration>
从前面我们知道我们的“hive-site.xml”是一个“hive-default.xml.template”的一个拷贝,里面的配置参数非常之多,但是并不是我们都需要的,我们知道,Hive系统会加载两个配置文件一个默认配置文件“hive-default.xml”,另一个就是用户自定义文件“hive-site.xml”。当“hive-site.xml”中的配置参数的值与“hive-default.xml”文件中不一致时,以用户自定义的为准。所以我们就把我们不需要的参数都删除掉,只留下上面所示的内容。
第六步:把MySQL的JDBC驱动包复制到Hive的lib目录下。
JDBC驱动包的版本:mysql-connector-java-5.1.18-bin.jar
第七步:启动
HiveShell,輸入hive,如果沒報錯,执行“show
tables;”命令,如果不报错,表明基于独立元数据库的
Hive 已经安装成功了。
第八步:验证Hive配置是否有误,进入Hive的shell新建表,在MySQL的Hive数据库中可以看到相应的元数据库信息。
1)在Hive上建立数据表
hive> CREATE TABLE xp(id INT,name string) ROW FORMAT DELIMITED FIELDSTERMINATED BY '\t';
2)从 MySQL数据库上查看元数据信息
用到的 SQL语句:
use hive; //使用 hive数据库库
show tables;//显示 hive数据库中的数据表
select * from TBLS;//查看 hive的元数据信息
到此Hive集成Mysql作为元数据已完成。
第一部分:Hive简介
Hive是基于hadoop的一个数据仓库工具,可以将结构化的数据文件映射成一张数据表,并提供类SQL的查询功能。Hive的本质是将SQL转换成mapreduce程序。
第二部分:为什么使用hive
避免去写mapreduce,减少开发人员的成本操作接口采用类sql语法,提供快速开发能力
扩展功能比较方便
第三部分:hive与hadoop的关系
由图可以看出,hive必须给予hadoop使用第四部分:hive与传统数据库对比
Hive | RDBMS | |
查询语言 | HQL | SQL |
数据存储 | HDFS | Raw Device or Local FS |
执行 | MapReduce | Excutor |
执行延迟 | 高 | 低 |
处理数据规模 | 大 | 小 |
索引 | 0.8版本后加入位图索引 | 有复杂的索引 |
第五部分:hive安装手顺
在随便一台有hadoop环境的机器上解压缩:hive-0.9.0-bin.tar.gz;tar–zxvf hive-0.9.0-bin.tar.gz
修改hive/conf下的配置文件
cphive-default.xml.template hive-default.xml
cphive-default.xml hive-site.xml
cphive-env.sh.template hive-env.sh
hive-env.sh配置HADOOP_HOME=/home/user/hadoop,最好配置一下jvm堆大小,否则使用jdbc服务的时候很容易内存溢出export
HADOOP_HEAPSIZE=1024,大小视自己情况而定。
配置环境变量HIVE_HOME和PATH,vi
/etc/profile ,配置完成后source /etc/profile,使文件立即生效,配置如下:
到此为止,hive配置完成,输入hive,启动,输入show
databases进行验证、运行web接口:hive --service hwihttp://client:9999/hwi
启动hive的jdbc服务端thrift服务接口
hive --service hiveserver 50000
第六部分:hive配置mysql
默认情况下,hive元数据保存在内嵌的Derby数据库中,只允许一个会话连接,为了支持多用户会话,则需要建立一个独立的元数据库,hive内部提供了对mysql很好的支持,配置一个独立的元数据库需要以下步骤:第一步:安装MySQL服务器端和MySQL客户端,并启动MySQL服务(我的安装在window下,hive在虚拟机下centos6.5),安装时需要允许远程登录(记得最后一步打钩,如果是在linux上,sudo
gedit /etc/mysql/my.cnf ,#bind-address=127.0.0.1 <---注释掉这一行就可以远程登录了)
第二步:安装Hive
第三步:为Hive建立相应的MySQL账户,并赋予足够的权限,执行命令如下:
$ mysql -uroot -pmysql
mysql> CREATE USER 'hive' IDENTIFIED BY 'mysql';
mysql> GRANT ALL PRIVILEGES ON *.* TO 'hive'@'%' WITH GRANTOPTION;
mysql> flush privileges;
第四步:建立
Hive 专用的元数据库,记得创建时用刚才创建的“hive”账号登陆。
mysql> exit;
$ mysql -uhive –pmysql
mysql> create database hive;
第五步:在Hive的conf目录下的文件“hive-site.xml”中增加如下配置:
<?xml version="1.0"?>
<?xml-stylesheettype="text/xsl" href="configuration.xsl"?>
<configuration>
<property>
<name>hive.metastore.local</name>
<value>true</value>
</property>
<property>
<name>javax.jdo.option.ConnectionURL</name>
<value>jdbc:mysql://192.168.11.157:3306/hive?characterEncoding=UTF-8</value>
</property>
<property>
<name>javax.jdo.option.ConnectionDriverName</name>
<value>com.mysql.jdbc.Driver</value>
</property>
<property>
<name>javax.jdo.option.ConnectionUserName</name>
<value>hive</value>
</property>
<property>
<name>javax.jdo.option.ConnectionPassword</name>
<value>mysql</value>
</property>
</configuration>
从前面我们知道我们的“hive-site.xml”是一个“hive-default.xml.template”的一个拷贝,里面的配置参数非常之多,但是并不是我们都需要的,我们知道,Hive系统会加载两个配置文件一个默认配置文件“hive-default.xml”,另一个就是用户自定义文件“hive-site.xml”。当“hive-site.xml”中的配置参数的值与“hive-default.xml”文件中不一致时,以用户自定义的为准。所以我们就把我们不需要的参数都删除掉,只留下上面所示的内容。
第六步:把MySQL的JDBC驱动包复制到Hive的lib目录下。
JDBC驱动包的版本:mysql-connector-java-5.1.18-bin.jar
第七步:启动
HiveShell,輸入hive,如果沒報錯,执行“show
tables;”命令,如果不报错,表明基于独立元数据库的
Hive 已经安装成功了。
第八步:验证Hive配置是否有误,进入Hive的shell新建表,在MySQL的Hive数据库中可以看到相应的元数据库信息。
1)在Hive上建立数据表
hive> CREATE TABLE xp(id INT,name string) ROW FORMAT DELIMITED FIELDSTERMINATED BY '\t';
2)从 MySQL数据库上查看元数据信息
用到的 SQL语句:
use hive; //使用 hive数据库库
show tables;//显示 hive数据库中的数据表
select * from TBLS;//查看 hive的元数据信息
到此Hive集成Mysql作为元数据已完成。
第七部分:hive内表、外表、分区表、命令
第八部分:hive优化
相关文章推荐
- Hive高级进阶与优化
- 三、HIVE 高级进阶笔记
- 干货|从初级到高级:运营汪的自我进阶修炼
- 初级管理者向高级管理者进阶的注意事项
- 免杀教程(从初级到高级)适合新手和进阶
- 网格系统高级进阶,很好懂
- 初级前端与高级前端的区别究竟有多大?
- Scala教程(十二)List操作高级进阶实战
- java学习路线-Java技术人员之路从初级到高级
- 进阶高级!帮你做能落地的界面之TAB的小短线
- Android开发高级进阶——多进程间通信
- SilkTest高级进阶系列7-用PostMessage模拟鼠标
- 高级工与初级工
- Git教程——高级进阶(一)
- 阅读郭林《第一行代码》的笔记——第13章 继续进阶,你还应该掌握的高级技巧
- POJ分类很好很有层次感 初级+水89 中级85 高级59 一共233道
- Android高级进阶二 Android OpenGL | ES介绍
- 送给入门新手----关于tableview 初级和高级
- linux 高级网络编程进阶之rawsocket
- c#初级、中级、高级程序员各需要???