Hadoop技术生态之Hive数据仓库一(八)

Hive简介:     

    Hive是基于Hadoop的一个数据仓库管理工具,可以将结构化的数据文件映射为数据库表,提供sql查询统计功能(Hive 定义了简单的类 SQL 查询语言,称为 HQL),其底层实现是:将SQL语句转换为MapRecuce程序任务执行对应的查询功能(Yarn集群启动)。 

为什么要使用hive?      

    用户只需要在Hive中建立表和结构化数据之间的映射,就可以是实现各类复杂的数据查询统计功能,而这些功能通过编写MapReduce实现起来比较复杂,编写效率也不高。况且编写MR程序门槛也高,得有一定的编程功底。

    实现同样的查询统计功能,Hive只要简单的SQL语句(通过Hive框架转换为对应的MapReduce程序,并对其优化,最后提交Hadoop运行。),而编写MapReduce程序往往需要很长时间才能实现,若经验不足,编写的程序运行效率往往不高。

Hive的使用场景:

    Hive 的查询任务往往转换为MR程序提交Hadoop集群运行,那就不能指望快速响应,所以不适合那些需要低延迟的应用:联机事务处理(OLTP),web应用中查询模块的后台实现(往往要求秒级响应)。

    Hive往往做为数据仓库管理的工具,数据仓库中的数据往往很少进行更改,或者不更改,可以用来做联机分析处理(OLAP); 

    Hive往往用来处理GB,TB,PB级别的数据离线分析查询,所以查询结果在20分钟左右响应结果是正常的。

Hive 体系结构如下:
  客户端接口:
      有基于命令行的:CLI (单用户模式,多用户模式);
      通过Hive提供的 JAVA JDBC/ODBC API通过 Thrift提供的服务(Thrift Server)提交查询任务;
      通过HIVE提供的web项目管理监控HIVE(下载对应程序拷贝到HIVE里):Web UI
  元数据库
      用来管理Hive中数据库,表及对应的HDFS映射目录等等信息;(往往用MySQL作为元数据信息管理)
   Driver 
        是Hive客户端和Hadoop集群之间工作的桥梁纽带。Hive客户端的请求通过Driver组件转换为最终的提交Hadoop集群运行的MR任务。
       包括:解析器,编译器,MR任务优化器,执行器(辑执行计划转换成物理执行计划,如:生成MR,Spark任务等)

安装配置步骤:
1.拷贝下载包到Hadoop集群中的任意一台服务器上进行解压。
    如:tar -zxvf apache-hive-2.1.1-bin.tar.gz
    mv apache-hive-2.1.1-bin hive

2.配置Hive
    cd  /opt/mysoft/hive/conf

    mv hive-env.sh.template   hive-env.sh    
    vi   hive-env.sh  //修改启动配置项:
   //若当前机器上已经配置了JAVA_HOME环境变量,则可以省略(一般都配置过了)
   export JAVA_HOME=/opt/mysoft/jdk
   export HADOOP_HOME=/opt/mysoft/hadoop
   export HIVE_CONF_DIR=/opt/mysoft/hive/conf
   export HIVE_AUX_JARS_PATH=/opt/mysoft/hive/bin

 3.进入到hive/conf目录下,创建hive-site.xml配置文件(连接mysql数据,前提要先安装mysql)

configuration>
   <property>
    <name> javax.jdo.option.ConnectionURL</name>
    <value>jdbc:mysql://localhost:3306/myHive?createDatabaseIfNotExist=true</value>
  </property>

 <property>
    <name>javax.jdo.option.ConnectionDriverName</name>
    <value>com.mysql.jdbc.Driver</value>
    <description>Driver class name for a JDBC metastore</description>
  </property>

 <property>
    <name>javax.jdo.option.ConnectionUserName</name>
    <value>root</value>
    <description>Username to use against metastore database</description>
  </property>

 <property>
    <name>javax.jdo.option.ConnectionPassword</name>
    <value>123456</value>
    <description>password to use against metastore database</description>
  </property>

 <property>
   <name>hive.metastore.schema.verification</name>
   <value>false</value>
</property>
</configuration>

4.把mysql驱动jar包(mysql-connector-java-5.1.41-bin.jar)放到hive/lib目录下


5.初始化Hive (Hive2以后要求先初始化) 
    .bin/schematool -initSchema -dbType mysql

6.启动Hive 
   ./bin/hive

 

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

ansap

你的鼓励将是我创作的最大动力

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

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

打赏作者

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

抵扣说明:

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

余额充值