《Hive 1》--Hive的简介、搭建hive、hive的架构、hive的工作流程、hive两种安装(基于Mysql)、hive on Mysql

Hive简介:

  1.什么是Hive?
      Hive:由Facebooke开源,用于解决海量结构化日志的数据统计 
      Hive是一个构建在Hadoop上的数据仓库框架(工具),可以将结构化的数据文件映射为一张表,并提供类似SQl查询功能。
      其设计目标是使Hadoop上的数据操作与传统SQL结合,让熟悉SQL编程的开发人员能够轻松向Hadoop平台转移。
    
      本质是:将HQL转化成MapReduce程序
          1)Hive处理的数据存储在HDFS中,元数据存储在关系型数据库中
          2)Hive分析数据底层的实现是MapReduce
          3)执行程序运行在Yarn上
    
    由于Hadoop基本上是用于处理数据的应用程序,并且大多数据仓库应用程序已经实现了SQL语言,
    因此,Hive是Hadoop生态系统中最有名和使用最广泛的项目.
    (Hive的简单体系结构图.png)

    客户端的连接方式可采用:                                                                                                                                                                          CLI(hive shell) 和 JDBC Driver (Java访问Hive) 、WEBUI(浏览器访问Hive)
    【注意:Hive实质就是客户端,不存在主从结构,搭建过程没有集群概念;】

  2.数据仓库和数据库:
      关系型数据库:OLTP联机事务处理 ACID,实时处理  -->持久化对数据的存储
      数据仓库:OLAP联机分析处理:统计、处理和加工(分析操作),离线处理,大数据集;
      --> 假如我们查询几年内的淘宝订单,数据从数据库里获得                                                                                                                     但是查询出来的淘宝订单的数据,它是一个数据的仓库,                                                                                                                   数据仓库中专门用来做一些查询数据库的SQL语句,很多数据称为仓库
           hive是以SQl的方式操作hadoop的框架


Hive数据有两部分组成: 
    1)hive数据存储在hdfs上
    2)  hive的元数据存储在关系型数据库中,hive默认的元数据存储在derby 


 3.搭建Hive
      准备:
         a.Hadoop集群搭建完成!
         b.zkServer.sh start 开启zookeeper
            start-dfs.sh  start 开启HDFS
            start-yarn.sh start开启yarn
           1).安装java
           2).安装Hadoop
           3).安装hive

$>cp /mnt/hgfs/工具/apache-hive-1.2.1-bin.tar.gz     ~/apps/
$>tar -zxvf apache-hive-1.2.1-bin.tar.gz 
$>ln -s apache-hive-1.2.1-bin hive

               配置环境变量:    

【~/.bash_profile】
 #hive install
 export HIVE_HOME=/home/hyxy/soft/hive
 export PATH=$HIVE_HOME/bin:$PATH
 $>source ~/.bash_profile

         4).开启集群相关服务:

 $>zkServer.sh start
 $>start-all.sh

         5).进入Hive

$>hive

         6).测试:

hive>show databases;
hive>use default;
hive>show tables;
hive>desc tables;
hive>create table text(id int ,name String);
hive>insert into text values(1,'zhangsan');
hive>select * from text;
hive>drop table text;
hive> quit;              //如不在原路径下,退出后之前表消失 即临时表,理解内嵌模式

        7)查看yarn :master:8088 
        hdfs: hadoop fs -lsr /
        rwx-wx-wx   - hyxy supergroup         0 2018-05-23 14:09 /tmp/hive
        drwx------   - hyxy supergroup          0 2018-05-23 14:38 /tmp/hive/hyxy
        drwxr-xr-x   - hyxy supergroup          0 2018-05-23 14:10 /user
        drwxr-xr-x   - hyxy supergroup          0 2018-05-23 14:10 /user/hive
        drwxr-xr-x   - hyxy supergroup          0 2018-05-23 14:33 /user/hive/warehouse
        drwxr-xr-x   - hyxy supergroup          0 2018-05-23 14:12 /user/hive/warehouse/text
        -rwxr-xr-x   2 hyxy supergroup         11 2018-05-23 14:12 /user/hive/warehouse/text/000000_0
        drwxr-xr-x   - hyxy supergroup          0 2018-05-23 14:33 /user/hive/warehouse/text1
        [hyxy@master Desktop]$ hadoop fs -cat /user/hive/warehouse/text/000000_0
        1zhangsan

        查看hive默认加载的配置文件:
        [hyxy@master conf]$ cat hive-default.xml.template   Hive配置是Hadoop之上的覆盖 - 它默认继承Hadoop配置变量

<property>
      <name>hive.user.install.directory</name>
      <value>hdfs:///user/</value>
      <description>
           If hive (in tez mode only) cannot find a usable hive jar in 
           "hive.jar.directory", 
           it will upload the hive jar to "hive.user.install.directory/user.name"
           and use it to run queries.
      </description>
</property>

<property>
      <name>javax.jdo.option.ConnectionURL</name>              
      <value>jdbc:derby:;databaseName=metastore_db;create=true</value>
      <description>JDBC connect string for a JDBC metastore</description>
</property>

     8)metastore_db 、derby.log (在当前路径下查看)  
            如果第一次我们在Desktop运行hive Cli客户端,
            第二次在~/soft运行hive Cli,因为没有metastore_db 、derby.log,所以之前创建的数据库不存在
            如果删除metastore_db 那么,hive 下的数据也不存在,但hdfs文件依然存在
            可以通过配置文件设置永远保存在一个路径下的metastore_db 、derby.log,这样不管在哪里都可以查询之前创建的数据

        
1.查看数据库 创建数据库 使用数据库 创建表

hive> show databases; 

hive> create database myhive; 
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值