hive初级、进阶、高级

刚刚研究了hive,从定义,安装到hive命令、优化高级,不断完善中。。。

第一部分:Hive简介

Hive是基于hadoop的一个数据仓库工具,可以将结构化的数据文件映射成一张数据表,并提供类SQL的查询功能。

Hive的本质是将SQL转换成mapreduce程序。

第二部分:为什么使用hive

  1. 避免去写mapreduce,减少开发人员的成本

  2. 操作接口采用类sql语法,提供快速开发能力

  3. 扩展功能比较方便

第三部分:hivehadoop的关系

由图可以看出,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.gztar –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_HOMEPATHvi /etc/profile ,配置完成后source /etc/profile,使文件立即生效,配置如下:

到此为止,hive配置完成,输入hive,启动,输入show databases进行验证、运行web接口:hive --service hwihttp://client:9999/hwi

启动hivejdbc服务端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;

第五步:Hiveconf目录下的文件“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”文件中不一致时,以用户自定义的为准。所以我们就把我们不需要的参数都删除掉,只留下上面所示的内容。

第六步:MySQLJDBC驱动包复制到Hivelib目录下。
JDBC
驱动包的版本:mysql-connector-java-5.1.18-bin.jar

第七步:启动 HiveShell,輸入hive,如果沒報錯,执行“show tables;”命令,如果不报错,表明基于独立元数据库的 Hive 已经安装成功了。

第八步:验证Hive配置是否有误,进入Hiveshell新建表,MySQLHive数据库中可以看到相应的元数据库信息。
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优化

 

 


  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值