程序员人生 网站导航

Hadoop(七)――子项目Hive

栏目:综合技术时间:2016-03-19 09:46:10

    前边我们介绍了Hadoop项目的两大基础支柱HDFSMapReduce,随后又介绍了子项目Pig:1种用类似于SQL的、面向数据流的语言对HDFS下的数据进行处理的MapReduce上层客户端,这大大满足了那些不会Java,不会写MapReduce的程序员。但是对那些之前1直从事Oracle等关系型数据库数据分析的数据分析师,DBA等,还是有些辣手的。而Hadoop的另外一个子项目Hive则解决了这个问题。


    好,先看下这篇博客的脉络图:


 

    1,Hive的概念:Hive是基于Hadoop的1个数据仓库工具,可以将结构化的数据文件映照为1张数据库,并提供简单的sql查询功能,可以将sql语句转换为MapReduce任务进行运行。其优点是学习本钱低,可以通过类SQL语句(Hive QL)快速实现简单的MapReduce统计,没必要开发专门的MapReduce利用,10分合适数据仓库的统计分析。   我们可以将其看作是从SQLMapReduce映照器

 


    2,Hive的安装:首先要知道HiveHDFS中的数据组织为表,通过这类方式为HDFS数据赋予结构,而这些数据(例如表模式)称之为Hive的元数据,其寄存在metastore中。根据metastore寄存位置不同,我们可以分为3种安装模式:


       1,内嵌模式:metastore服务和Hive服务运行在同1个JVM中,包括1个内嵌的以本地磁盘作为存储的Derby数据库实例。此种安装简单,适用于学习,只允许1个会话连接


       2,本地独立模式:将元数据寄存在独立的数据库中,MySql是很受欢迎的选择,利用metastore服务连接到本地安装的MySql数据库中,支持多会话多用户连接。


       3,远程模式:元数据放置在远程的MySql数据库中,这样1个或多个metastore服务和Hive服务运行在不同的进程内。

 

    好,Hive的安装是子项目里边比较简单的,这里看下的内嵌模式的安装:


     A,下载并解压到用户目录下:

         tar xzf ./apache-hive⑴.2.1-bin.tar.gz

         解压的目录和其它项目都是类似的,不再讲述:



 B,设置环境变量:

       exportHIVE_HOME=/home/ljh/apache-hive⑴.2.1-bin

       exportPATH=$PATH:$HIVE_HOME/bin

       exportCLASSPATH=$CLASSPATH:$HIVE_HOME/bin

 

     C,配置文件设置:

        c.1,hive-env.sh

           复制: cp hive-env.sh.template hive-env.sh

                  设置hadoop_home:HADOOP_HOME=/home/ljh/hadoop⑴.2.1

                  设置hive的配置文件路径:export HIVE_CONF_DIR=/home/ljh/apache-hive⑴.2.1-bin/conf

 

        c.2,hive-site.xml

           复制:cp hive-default.xml.template hive-site.xml

           注意:内嵌模式这里不怎样需要配置,如果是独立模式,远程模式,则需要对mysql等进行配置,我们可以通过baidu,google进行各项参数的了解。

 

      D,启动hive:

       ./hive便可。

 

    其它方式安装参考:

http://sishuok.com/forum/blogPost/list/6221.html

http://blog.csdn.net/xqj198404/article/details/9109715

 


                      

    3,经常使用sql语句进行操作Hive无在意表的创建,删除,数据的增查(删和改其实都是增的操作),特点和里边的数据类型看这篇博客:http://blog.csdn.net/chenxingzhen001/article/details/20901045


       1,建表:create tabletest(id string ,name string)

              ROW FORMAT DELIMITED FIELDSTERMINATED BY |

              STORED AS TEXTFILE

 

       2,HDFS中的数据文件加载的表中:

              LOAD DATA LOCAL INPATH ./examples/files/test.txt OVERWRITE INTO TABLE test;

 

       3,将查询结果插入到表中,两个hive表中的数据进行过滤插入:

              insert overwrite tabletest2  select id,name from test where idis not null;

      

       4,查询:select id ,name from test;


       5,表连接:select test.id test1,name from test join test1 on(test.id=test1.id);

 

     这里只是简单的操作,具体的Hivesql语法,可以参考这篇文章,写的很好很全面:

http://www.cnblogs.com/HondaHsu/p/4346354.html

 

 


    4,Hive的体系架构:最经典的1张图:



 4.1,基本组成:

?用户接口,包括CLI,JDBC/ODBC,WebUI

?元数据存储,通常是存储在关系数据库如mysql, derby 中

------分隔线----------------------------

上一篇 ocp-521

下一篇 学习做人的道理

------分隔线----------------------------

最新技术推荐