Hive学习第一课:hive基础知识与体系架构

1、理论基础

1、什么是Hive?
    Hive是一个构建在Hadoop之上的数据仓库,提供类似sql的查询语句HiveQL对数据进行分析处理。
    Hive将HiveQL语句转换一系列成MapReduce作业并执行。
    目前,Hive除了支持MapReduce计算引擎,还支持Spark和Tez这两种分布式计算引擎。
    Hive3.0中MR已标记为过时。
    常用于离线批处理。

2、hive产生背景
    mapreduce编程繁琐性:
        一个标准的mapreduce程序包括Mapper、Reducer、Driver。
        写完mr程序后还要打包成jar包丢到集群上运行。
        更改需求之后可能需要更改大量代码,重新打包上传,十分不便。
        使用SQL对hdfs上的数据进行统计分析显然要好过写代码,降低了数据分析的门槛。
        hdfs上的文件没有schma(表结构)的概念,而hive可以对hdfs上的数据进行结构化处理。
    hive的优点:
        弹性易用
        方便扩展
        统一的元数据管理

3、RDBMS和hive的比较。
    hive处理的数据较大,PB级数据都行。RDBMS处理数据较少。
    hive实时性较差,一个hive的作业跑八个小时都可能跑不完。
    RDBMS也支持分布式、但节点数较少,构建在专用的机器上,成本昂贵。
    hive也支持事务(0.14版本开始支持),但离线批处理要事务干嘛?
    Hive支持统一的元数据管理:
        对于Hive/Impala/Spark SQL/Presto,在其中之一上创建表,其他任意都可以访问。


4、HiveServer2:
    hiveserver是一种可选服务,允许远程客户端可以使用各种编程语言向Hive提交请求并返回结果。 
    但HiveServer无法处理来自多个客户端的并发请求。
    所以HiveServer2对HiveServer进行了重写,来解决这些问题。
    执行“hiveserver2”即可启动该服务,该服务是一个阻塞服务。   

5、执行“hive”或者“hive --service cli”可以进入hive的shell客户端。
    0.14版本后,有一个基于hiveserver2的客户端工具Beeline出现,可以用来替代传统的hive客户端。
    Beeline支持嵌入模式(embedded mode)和远程模式(remote mode)。
    启动beeline需要先进行hadoop的配置(所有节点):
        vi core-site.xml
           key:hadoop.proxyuser.root.groups    value:*
           key:hadoop.proxyuser.root.hosts     value:*
        重启所有hadoop集群
        或者执行:
            bin/hdfs dfsadmin -fs hdfs://节点:8020 -refreshSuperUserGroupsConfiguration(hadoop所有节点)
      先启动hiveserver2
      启动beeline
        连接hiveserver2:
            !connect jdbc:hive2://Linux005:10000 root 123456(这是需要个用户名密码,正确不正确无所谓)
            
        

beeline中命令加!
    

8、hive的四种连接方式:

 

 

 

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

二百四十九先森

你的打赏是我努力的最大动力~

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值