Hive环境搭建和实例

Hive是由Facebook最初开发的基于Hadoop的数据仓库工具,提供了类SQL的查询语言Hive SQL(HQL)。

Hive是基于Hadoop的一个数据仓库工具,可以将结构化的数据文件映射为一张数据库表,并定义了一个类似于SQL的查询语言:HQL,提供了完整的sql查询功能,能够将用户编写的SQL语句 转化为相应的Mapreduce程序基于Hadoop执行。

其优点是学习成本低,可以通过类SQL语句快速实现简单的MapReduce统计,不必开发专门的MapReduce应用,十分适合数据仓库的统计分析。

在内部,Hive将用户的SQL语句转化为一系列的MapReduce作业,并提交到集群中运行。

在Hive中,数据通过表来组织,提供了一种将表结构附加(attaching)到HDFS中的数据的一种方式。诸如表的Schema等元数据存放在一个称为metastore的数据库中。默认情况下,metastor存放在本地,但是可以配置在远程共享,这通常在生成环境中使用。

Hive总体架构如下:

image_1aorqv69b184sbetjp6sni19e11g.png-494.8kB

下载安装

下载稳定版本,留意与Hadoop版本的兼容:

 
 
  1. wget https://mirrors.tuna.tsinghua.edu.cn/apache/hive/hive-2.0.0/apache-hive-2.0.0-bin.tar.gz
  2. tar -zxvf apache-hive-2.0.0-bin.tar.gz
  3. mv apache-hive-2.0.0-bin /home/hive-2.0.0
  4. vim /etc/profile
  5. export HIVE_HOME=/home/hive-2.0.0
  6. export PATH=$PATH:$HIVE_HOME/bin
  7. source /etc/profile

配置metastore

metastore的3种模式:

  • Embedded metastore:

image_1aorp4qq86fn1pnl126o72q1s2h9.png-143.1kB

  • Local metastore:

image_1aorp5rkd1g9ffkuk8a17s5hevm.png-259.1kB

  • Remote metastore

image_1aorp6k6t4slgsa1hlfiu61qds13.png-361.4kB

Local模式配置

创建数据库用作metastore:

 
 
  1. create database hive;

hive-site.xml

 
 
  1. <configuration>
  2. <property>
  3. <name>hive.metastore.local</name>
  4. <value>true</value>
  5. </property>
  6. <property>
  7. <name>javax.jdo.option.ConnectionURL</name>
  8. <value>jdbc:mysql://192.168.1.132:3306/hive?characterEncoding=UTF-8</value>
  9. </property>
  10. <property>
  11. <name>javax.jdo.option.ConnectionDriverName</name>
  12. <value>com.mysql.jdbc.Driver</value>
  13. </property>
  14. <property>
  15. <name>javax.jdo.option.ConnectionUserName</name>
  16. <value>root</value>
  17. </property>
  18. <property>
  19. <name>javax.jdo.option.ConnectionPassword</name>
  20. <value>yourpasssword</value>
  21. </property>
  22. </configuration>

把MySQL JDBC驱动上传到hive的lib目录下。

初始化:

 
 
  1. schematool -initSchema -dbType mysql

image_1aors6tf3u0r1eo1curatltq020.png-54.5kB

启动Hive:

 
 
  1. % hive

image_1aors80h79pooqo1ikphc055t2d.png-49kB

image_1aors9oj4vdb1q1q3fc1gqb1djr2q.png-14.5kB

Hive更多配置

Hive的配置文件采用类似于Hadoop的XML格式,为$HIVE_HOME/conf/hive-site.xml。配置文件目录可以通过运行时参数--config或者HIVE_CONF_DIR环境变量来修改。

会话(session)级别的参数可以在运行hive命令时使用-hiveconf指定。在Hive交互式窗口使用SET也可以设置参数。因此Hive参数有如下4级:

  • SET
  • -hiveconf
  • -hive-site.xml(and hadoop)
  • default(and hadoop default)

执行引擎

Hive默认使用MapReduce作为执行引擎,对Apache Tez和Spark的支持也正在进行中。后两者都是通用的DAG引擎,在性能上比MapReduce有较大的改善。执行引擎通过hive.execution.engine属性来配置,默认为mr,代表MapReduce。可以在每次会话时设置引擎,例如:

 
 
  1. hive> SET hive.execution.engine=tez;

(注意Tez首先要安装在Hadoop集群上)。

在Hive2中,已经不推荐使用MapReduce作为执行引擎,因此经常会收到一些警告信息。推荐Spark或者Tez作为执行引擎。

日志设置

默认情况下,hive的错误日志保存在```{user.name}/hive.log目录下,java.io.tmpdir通常是/tmp。也可以在启动hive的时候设置:

 
 
  1. hive -hiveconf hive.log.dir='/tmp/${user.name}'

日志配置在HIVE_HOME/comg/hive-log4j.properties.修改该文件可以配置日志相关参数,也可以在启动的时候设置气质参数:

 
 
  1. hive -hiveconf hive.root.logger=DEBUG,console

简单实例

创建表

 
 
  1. create table records(year string , temperature int ,quality int) row format delimited fields terminated by '\t'

成功之后,我们可以在mysql的元数据中看到这个表的信息,在hive.TBLS表中:

image_1aorsikihfj11oe1n4dtttnf337.png-52.7kB

导入数据

将HDFS的文件导入Hive:

 
 
  1. load data inpath "/input/ncdc/micro-tab/sample.txt"
  2. overwrite into table records;

image_1aorsuf2q183ddh4hsrdbv1ii441.png-11.7kB

在/user/hive/warehouse目录下可以看到下面的文件:

image_1aorssii21s7r13k12h8t35191h3k.png-17.7kB

查询数据

Hive跟语法跟MySQL非常像,如下查询表中所有数据:

 
 
  1. select * from records;

image_1aort2sd41cipag61ot41ujk1mn64e.png-17.7kB

来一个分组查询:

 
 
  1. select year , max(temperature)
  2. from records
  3. where temperature != 9999 and quality in ( 0,1,4,5,9)
  4. group by year;

image_1aorta6771r3o1mgk1d0j54nl3c4r.png-70.4kB

可以看到Hive启动了一个MapReduce作业,计算得到最终结果。YARN管理界面可以看到该作业:

image_1aortcu3gc6tskf19qhaii1ia358.png-64.3kB

Hive Server

启动HiveServer2

 
 
  1. hiveserver2

image_1aorts7vhqpr14u0o3e1av91t8i5l.png-37kB

此时在默认的10020端口可以访问的hive界面:

image_1aorttlkgb9v1c7lmh6k821egn62.png-114.8kB

原文链接:https://www.zybuluo.com/BrandonLin/note/452905


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
当搭建Hive 3.1.3环境时,以下是一些基本的步骤: 1. 安装Java:确保你的机器上已经安装了Java。Hive 3.1.3需要Java 8或更高版本。 2. 下载Hive:从Apache Hive的官方网站(https://hive.apache.org/downloads.html)下载Hive 3.1.3的二进制文件。 3. 解压文件:将下载的文件解压到你选择的目录中。 4. 配置环境变量:设置Hive的环境变量。在你的终端或命令提示符中,找到并编辑`~/.bashrc`或`~/.bash_profile`文件,并将以下内容添加到文件末尾: ```shell export HIVE_HOME=/path/to/hive export PATH=$PATH:$HIVE_HOME/bin ``` 然后运行`source ~/.bashrc`或`source ~/.bash_profile`使变量生效。 5. 配置Hadoop:Hive需要连接到一个Hadoop集群。在Hive目录中,进入`conf`文件夹,复制`hive-default.xml.template`并将其重命名为`hive-site.xml`。然后编辑`hive-site.xml`文件,设置以下属性: ```xml <property> <name>hive.execution.engine</name> <value>mr</value> </property> <property> <name>hive.metastore.warehouse.dir</name> <value>/user/hive/warehouse</value> </property> <property> <name>javax.jdo.option.ConnectionURL</name> <value>jdbc:derby:;databaseName=/path/to/metastore_db;create=true</value> </property> ``` 注意替换上述代码中的路径为你的Hadoop配置和元数据存储路径。 6. 启动Hive Metastore:在Hive目录中,执行以下命令启动Hive Metastore服务: ```shell schematool -dbType derby -initSchema ``` 这将初始化Hive Metastore的数据库。 7. 启动Hive CLI或Beeline:根据你的需求,可以使用Hive CLI(命令行界面)或Beeline(JDBC客户端)连接到Hive。执行以下命令启动Hive CLI: ```shell hive ``` 或者执行以下命令启动Beeline: ```shell beeline -u jdbc:hive2://localhost:10000 ``` 这将连接到本地的Hive服务。 这些步骤应该帮助你搭建Hive 3.1.3环境。根据你的需求,你可能还需要进行其他配置和调整。请参考Apache Hive的官方文档(https://cwiki.apache.org/confluence/display/Hive/Home)以获取更多详细信息和进一步的指导。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值