欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  科技

Hive使用概述以及环境配置

程序员文章站 2022-05-13 17:37:39
本文概述: Hive产生背景 Hive是什么 为什么要使用Hive Hive部署架构 Hive与RDBMS的关系、区别 Hive的优缺点 Hive适用场景 Hive环境...

本文概述:

Hive产生背景

Hive是什么

为什么要使用Hive

Hive部署架构

Hive与RDBMS的关系、区别

Hive的优缺点

Hive适用场景

Hive环境搭建

Hive产生背景:

MapReduce编程的不便性

传统Rdbms人员的需要

Hive是什么:

由Facebook开源,最初用于解决海量结构化的日志数据统计问题

构建在Hadoop之上的数据仓库

Hive定义了一种类SQL查询语言:HQL(类似SQL,但不完全相同)

通常用于进行离线数据处理(采用MapReduec)

可以认为是一个HQL=>MR的语言翻译器

底层支持多种不同的执行引擎

支持多种不同的压缩格式、存储格式以及自定义函数

为什么要使用Hive:

简单,容易上手(提供类似SQL查询语言HQL)

为超大数据集设计的计算、扩展能力(MR作为计算引擎,HDFS作为存储系统

统一的元数据管理(可与Pig、Presto、Impala、SparkSQL等共享元数据)

Hive的体系架构

Hive使用概述以及环境配置

Hive部署架构

测试环境

Hive使用概述以及环境配置

生产环境

Hive使用概述以及环境配置

Hive与RDBMS的关系、区别

Hive使用概述以及环境配置

Hive的优缺点

优点:容易上手易用

缺点:并不能提供低延时或者实时性比较高的需求(各种启动、销毁进程的时间要长)

Hive适用场景

日志分析

海量结构化数据离线分析

Hive环境搭建

环境搭建之前先查看本地是否已经安装mysql数据库

1、下载

2、配置hive-site.xml文件

进入hive的conf目录下,拷贝文件hive-default.xml.template命名为hive-site.xml

cp hive-default.xml.template hive-site.xml

添加如下内容:


  	//39行
hive.exec.scratchdir
 	    /home/hadoop/app/hive/tmp/hive
hive用于存储不同阶段map/reduce的执行计划及存储中间输出结果的目录
//79行
hive.downloaded.resources.dir
/home/hadoop/app/hive/tmp/${hive.session.id}_resources
            hive下载资源的存储目录
       //1685行
       	     hive.querylog.location
             /home/hadoop/app/hive/tmp/hive
      	     hive结构日志存储目录
    	//3976行
       	 hive.server2.logging.operation.log.location
      	 /home/hadoop/app/hive/tmp/hive/operation_logs
      	 hive的操作日志目录
	//84行
        hive.scratch.dir.permission
        700
        hive访问hadoop文件权限设置
   	//529行
        javax.jdo.option.ConnectionPassword
        P@ssw0rd
        元数据存储的数据库的密码
    	//1044行
       	 javax.jdo.option.ConnectionUserName
       	 root
       	 元数据存储数据库的用户名
    	//545行
        javax.jdo.option.ConnectionURL
       	jdbc:mysql://localhost:3306/hive_metadatacreateDatabaseIfNotExist=true&characterEncoding=utf8
        元数据存储的数据库的url
    	//1020行
        javax.jdo.option.ConnectionDriverName
        com.mysql.jdbc.Driver
       	元数据存储的数据库的驱动
    	//741行
        datanucleus.schema.autoCreateAll
        true
       	 开启自动创建(生产环境中不推荐使用)
    //746行
        hive.metastore.schema.verification
        false
    //2445行
    	 hive.optimize.sort.dynamic.partition
    	 false
    //2775行
    hive.support.concurrency
        true
   找不到的话,在任意位置添加上即可
   	hive.enforce.bucketing
   	true
   //250行
   	hive.exec.dynamic.partition.mode
   	nonstrict
   //2870行
   	hive.txn.manager
   	org.apache.hadoop.hive.ql.lockmgr.DbTxnManager
   //2964行
   hive.compactor.initiator.on
   	true
   //2974行
   hive.compactor.worker.threads
   1
   找不到的话,在任意位置添加上即可
   	hive.in.test
   	true
   //1195
   	hive.cli.print.current.db
   	true
   

3、lib下面添加mysql依赖包

mysql-connector-java-5.1.7-bin

4、添加hive配置

#hive

export HIVE_HOME=/home/hadoop/app/hive

export PATH=$ZK_HOME/bin:$PATH

5、启动hive

hiveserver2

beeline -u jdbc:hive2://

成功之后mysql下会多出一个hive数据库