前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >大数据入门与实战-Hive

大数据入门与实战-Hive

作者头像
致Great
发布2019-03-15 14:12:40
5680
发布2019-03-15 14:12:40
举报
文章被收录于专栏:程序生活程序生活

1 Hive是什么

Hive是一个数据仓库基础工具在Hadoop中用来处理结构化数据。它架构在Hadoop之上,总归为大数据,并使得查询和分析方便。 最初,Hive是由Facebook开发,后来由Apache软件基金会开发,并作为进一步将它作为名义下Apache Hive为一个开源项目。它用在好多不同的公司。例如,亚马逊使用它在 Amazon Elastic MapReduce。

2 Hive不是

  • 一个关系数据库
  • 一个设计用于联机事务处理(OLTP)
  • 实时查询和行级更新的语言

3 Hive特点

它存储架构在一个数据库中并处理数据到HDFS。 它是专为OLAP设计。 它提供SQL类型语言查询叫HiveQL或HQL。 它是熟知,快速,可扩展和可扩展的。

4 Hive架构

下面的组件图描绘了Hive的结构:

5 Hive 工作原理

下表定义Hive和Hadoop框架的交互方式:

1 Execute Query Hive接口,如命令行或Web UI发送查询驱动程序(任何数据库驱动程序,如JDBC,ODBC等)来执行。 2 Get Plan 在驱动程序帮助下查询编译器,分析查询检查语法和查询计划或查询的要求。 3 Get Metadata 编译器发送元数据请求到Metastore(任何数据库)。 4 Send Metadata Metastore发送元数据,以编译器的响应。 5 Send Plan 编译器检查要求,并重新发送计划给驱动程序。到此为止,查询解析和编译完成。 6 Execute Plan 驱动程序发送的执行计划到执行引擎。 7 Execute Job 在内部,执行作业的过程是一个MapReduce工作。执行引擎发送作业给JobTracker,在名称节点并把它分配作业到TaskTracker,这是在数据节点。在这里,查询执行MapReduce工作。 7.1 Metadata Ops 与此同时,在执行时,执行引擎可以通过Metastore执行元数据操作。 8 Fetch Result 执行引擎接收来自数据节点的结果。 9 Send Results 执行引擎发送这些结果值给驱动程序。 10 Send Results 驱动程序将结果发送给Hive接口。

6 Hive的安装与配置

安装Hive之前,先安装hadoop,保证HDFS、YARN启动成功。默认情况下,Hive元数据保存在嵌入式数据库Derby中,只能允许一个会话连接,只适合简单的测试。为了支持多用户多会话,则需要一个独立的元数据库,我们使用 MySQL 作为元数据库。

6.1 安装MySQL

参考下面的三个教程: 安装mysql:https://www.jianshu.com/p/7cccdaa2d177 更改mysql密码:https://blog.csdn.net/lihao21/article/details/80692068 设置mysql开机自启动:https://www.cnblogs.com/yoyotl/p/5752437.html

1.1. 创建Hive元数据库

创建名称为hive的数据库,用于存储hive的元数据,如下图所示:

1.2. 用户授权

为root用户授权,使其能从外部IP访问mysql数据库,使用如下命令:

grant all privileges on . to 'root'@'%' identified by '123456';

使授权立即生效,使用如下命令:

flush privileges;

命令执行如下图所示:

1.3. 从windows环境连接mysql

使用windows环境下的mysql客户端工具Navicat for MySQL连接mysql:

6.2 安装Hive

1.1. 将下载的hive包拷贝到Linux环境中

将hive软件包拷贝到hadoop集群的某一台服务器上面,具体目录可根据情况设置。本教程中的大数据软件都安装在/opt目录下。如下图所示:

1.2. 解压hive软件包

使用如下命令解压hive软件包:tar –zxvf apache-hive-2.1.1-bin.tar.gz。

1.3. 配置Hive环境变量

在/etc/profile 或者~/.bashrc中配置hive环境变量:

export HIVE_HOME=hive****安装路径

export PATH=

PATH:
PATH:

HIVE_HOME/bin:

配置后的profile文件如下图所示:

使环境变量生效:

source /etc/profile

1.4. Hive配置文件

进入hive解压目录的conf目录,运行如下命令,复制配置文件:

[root@bigdata02 conf]# cp hive-default.xml.template hive-site.xml

[root@bigdata02 conf]# cp hive-env.sh.template hive-env.sh

1.4.1. 修改hive-env.sh文件

修改hive-env.sh文件,增加两行,根据实际情况修改安装路径:

export HADOOP_HOME=hadoop****安装路径

export HIVE_CONF_DIR=hive****安装路径/conf

1.4.2. 修改hive-site.xml文件

修改配置文件$HIVE_HOME/conf/hive-site.xml。

找到配置项hive.metastore.warehouse.dir,

hive.metastore.warehouse.dir的默认值为/user/hive/warehouse,保持不变

1.4.3. 设置元数据数据库

更换存储元数据的数据库,需要配置以下参数值:

javax.jdo.option.ConnectionURL // 数据库URL

javax.jdo.option.ConnectionDriverName // JDBC 驱动名称

javax.jdo.option.ConnectionUserName // 数据库用户名

javax.jdo.option.ConnectionPassword // 数据库密码

下面是使用mysql来存储元数据的配置信息,可以通过搜索其中的name值,如<name>javax.jdo.option.ConnectionURL</name>,找到对应的配置项进行修改:

<configuration>

<property>

<name>javax.jdo.option.ConnectionURL</name>

<value>jdbc:mysql://bigdata02:3306/hive?createDatabaseIfNotExist=true</value>

<description>JDBC connect string for a JDBC metastore</description>

</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>

</configuration>

1.4.4. 创建tmp目录

在$HIVE_HOME目录下创建tmp目录:

1.4.4.1. 继续修改配置文件 hive-site.xml

把${system:java.io.tmpdir} 改成 /opt/hive211/tmp //****上步骤中创建的****tmp****目录

**{system:user.name}** 改成
**{system:user.name}** 改成

{user.name}

注意:将****hive-site.xml****中所有出现****

****{system:java.io.tmpdir}****、****
****{system:java.io.tmpdir}****、****

{system:user.name} ****的地方都进行相应的修改。如下图,是其中一个地方的修改,供参考:

hive.metastore.schema.verification设置成false(可选):如果初始化元数据库出现认证问题,可以设置此参数,再次初始化。

1.4.5. 在hdfs上创建目录

使用如下HDFS命令,创建相应目录:

hdfs dfs -mkdir /tmp //hive的默认临时文件目录

hdfs dfs -mkdir -p /user/hive/warehouse //hive的warehouse默认目录

hadoop fs -chmod g+w /tmp //为tmp目录授权

hadoop fs -chmod g+w /user/hive/warehouse //为目录授权

1.4.6. 上传mysql驱动包

我们配置了hive的元数据库为mysql,hive连接mysql,需要mysql的jdbc驱动包 ,所以,需要将驱动包上传到$HIVE_HOME/lib 目录下

1.5. 初始化Hive元数据库

使用hive安装目录下bin目录中的schematool命令初始化元数据库:

schematool -dbType mysql -initSchema

看到如下提示,则初始化完成 :

1.6. 检测hive 是否安装成功

直接在命令行输入hive:

注意:此时hdfs和yarn必须是启动状态。

7 参考资料

Hive教程 https://cniao5.com/course/lessons/10185

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2019.03.09 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 1 Hive是什么
  • 2 Hive不是
  • 3 Hive特点
  • 4 Hive架构
  • 5 Hive 工作原理
  • 6 Hive的安装与配置
    • 6.1 安装MySQL
    • 1.1. 创建Hive元数据库
    • 1.2. 用户授权
    • 1.3. 从windows环境连接mysql
      • 6.2 安装Hive
      • 1.1. 将下载的hive包拷贝到Linux环境中
      • 1.2. 解压hive软件包
      • 1.3. 配置Hive环境变量
      • 1.4. Hive配置文件
        • 1.4.1. 修改hive-env.sh文件
          • 1.4.2. 修改hive-site.xml文件
            • 1.4.3. 设置元数据数据库
              • 1.4.4. 创建tmp目录
                • 1.4.4.1. 继续修改配置文件 hive-site.xml
              • 1.4.5. 在hdfs上创建目录
                • 1.4.6. 上传mysql驱动包
                • 1.5. 初始化Hive元数据库
                • 1.6. 检测hive 是否安装成功
                • 7 参考资料
                相关产品与服务
                大数据
                全栈大数据产品,面向海量数据场景,帮助您 “智理无数,心中有数”!
                领券
                问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档