【Hive总结】1. 简介

这里面我主要讲述的是我个人在项目开发过程中的简要总结。作者水平有限,仅供参考!我的Hive版本是hive2.0.0

一、Hive

1. Hive简介

(1)Hive是建立在Hadoop HDFS上的数据仓库基础架构
(2)Hive定义了简单的类似SQL查询语言,称为HQL它允许熟悉SQL的用户查询数据。 
(3)Hive的SQL解析引擎,它将SQL语句转移成M/R Job然后在Hadoop上执行。 

(4)Hive的表其实就是HDFS的目录/文件。

(5)Hive允许熟悉MapReduce开发者的开发自定义的mapper和reducer来处理內建mapper和reducer无法完成的复杂的分析工作。

 2. 元数据

Hive将元数据存储在数据库中(metastore),支持mysql、derby、oracle等传统数据库,默认为derby。  Hive中元数据包括表的名字,表的分区及其属性,表的属性(是否为外部表等),表的数据所在的目录等。 元数据被默认创建在derby数据库中,以表的形式保存数据。表的元信息、列元信息。

3. HQL执行流程

解析器、编译器、优化器完成HQL查询语句从词法分析、语法分析、编译、优化以及查询计划(plan)的生成。生成的查询计划存储在HDFS中,并在随后有MapReduce调用执行。 
过程:HQL语句——解析器:词法分析——编译器:生成HQL的执行计划——优化器:生成最优执行计划——执行。

4. Hive体系结构

(1)hadoop –用HDFS进行存储,利用mapreduce进行计算。 
(2)元数据存储(metastroe) 通常存储在关系数据库中,如mysql,derby。
(3) Hive Driver:驱动,包括编译器、解析器、优化器。 
        访问接口:

                  ①CLI:Command Line Interface;

                  ②通过JDBC/ODBC连接Thrift Server在连接驱动;

                  ③Web Console 控制台(只能查询)

5. Hive管理

(1)进入CLI方式 

     * 配置Hive的环境变量

     * 输入命令: hive --service cli   或是直接输入 hive

(2)web界面

  因为我的这个hive2.0.0的版本没有hwi的war包,所以需要自己下载hive2.0.0的源码包,然后进行打包。

  解压源码包后,进入hwi/web下,执行下面的命令

  

jar cvf hive-hwi-2.0.0.war ./* 

 【提示】war包的名字最好要与版本一致

  把生成的war包拷贝到hive的lib目录下。

 上述两步完事之后,编辑hive-site.xml文件

<property>
	<name>hive.hwi.listen.host</name>
	<value>0.0.0.0</value>
</property>
<property>
	<name>hivehwi.listen.port</name>
	<value>9999</value>
</property>
<property>
	<name>hive.hwi.war.file</name>
	<value>lib/hive-hwi.war</value>
</property>

 文件编辑好之后,拷贝jiar包

cp ${JAVA_HOME}/lib/tools.jar ${HIVE_HOME}/lib

 上面的4步完成之后,就此结束!

 启动web界面方式: hive –-service hwi  

【提示】多刷新几次!

(3)远程连接

 在hive服务的安装节点的hive-site.xml配置文件中添加以下配置

<property>
    <name>hive.server2.thrift.client.user</name>
    <value>root</value>
    <description>Username to use against thrift client</description>
</property>
<property>
    <name>hive.server2.thrift.client.password</name>
    <value>123456</value>
    <description>Password to use against thrift client</description>
</property>
<property>
	<name>hive.server2.thrift.port</name>
	<value>10000</value>
</property>
<property>
	<name>hive.server2.thrift.bind.host</name>
	<value>服务器IP</value>
</property>

在hadoop的hdfs 的配置文件core-site.xml中加入如下配置

<property>
  <name>hadoop.proxyuser.root.hosts</name>
  <value>*</value>
 </property>
 <property>
  <name>hadoop.proxyuser.root.groups</name>
  <value>*</value>
</property>

重新启动hadoop!

上述两步完成之后,启动hiveserver2!

前提是配置了hive的环境变量,输入下面的命令启动服务

hive --service hive2  或是直接输入hiveserver2

【提示】该服务启动的是10000端口

远程连接测试

直接输入beeline

beeline> !connect jdbc:hive2://Master:10000

用户名 root

密码 123456

猜你喜欢

转载自blog.csdn.net/FullStackDeveloper0/article/details/89437467