Hadoop入门进阶课程8--Hive介绍和安装部署

本文详细介绍了Hive的安装部署过程,包括环境准备、Hive的特性、与关系数据库的区别,以及Hive架构。还讨论了Hive与MySQL的集成,并提供了在CentOS系统上搭建Hive环境的步骤,包括安装MySQL、设置Hive用户、安装与配置Hive等。最后,文章提到了常见问题及解决方法。
摘要由CSDN通过智能技术生成

1 搭建环境

部署节点操作系统为CentOS,防火墙和SElinux禁用,创建了一个shiyanlou用户并在系统根目录下创建/app目录,用于存放Hadoop等组件运行包。因为该目录用于安装hadoop等组件程序,用户对shiyanlou必须赋予rwx权限(一般做法是root用户在根目录下创建/app目录,并修改该目录拥有者为shiyanlou(chown –R shiyanlou:shiyanlou /app)。

Hadoop搭建环境:

  • 虚拟机操作系统: CentOS6.6 64位,单核,1G内存
  • JDK:1.7.0_55 64位
  • Hadoop:1.1.2

2 Hive介绍

Hive是Facebook开发的构建于Hadoop集群之上的数据仓库应用,它提供了类似于SQL语法的HQL语句作为数据访问接口,这使得普通分析人员的应用Hadoop的学习曲线变小,Hive有如下特性:
- Hive是基于Hadoop的一个数据仓库工具,可以将结构化的数据文件映射为一张数据库表,并使用sql语句转换为MapReduce任务进行运行。其优点是学习成本低,可以通过类SQL语句快速实现简单的MapReduce统计,不必开发专门的MapReduce应用,十分适合数据仓库的统计分析;
- Hive是建立在 Hadoop 上的数据仓库基础构架。它提供了一系列的工具,可以用来进行数据提取转化加载(ETL),这是一种可以存储、查询和分析存储在 Hadoop 中的大规模数据的机制。Hive 定义了简单的类 SQL 查询语言,称为 HQL,它允许熟悉 SQL 的用户查询数据。同时,这个语言也允许熟悉 MapReduce 开发者的开发自定义的 Mapper 和 Reducer 来处理内建的Mapper 和Reducer 无法完成的复杂的分析工作。

2.1 Hive与关系数据库的区别

使用Hive的命令行接口很像操作关系数据库,但是Hive和关系数据库还是有很大的不同, Hive与关系数据库的区别具体如下:
1. Hive和关系数据库存储文件的系统不同,Hive使用的是Hadoop的HDFS(Hadoop的分布式文件系统),关系数据库则是服务器本地的文件系统;
2. Hive使用的计算模型是Mapreduce,而关系数据库则是自身的计算模型;
3. 关系数据库都是为实时查询的业务进行设计的,而Hive则是为海量数据做数据挖掘设计的,实时性很差;实时性的区别导致Hive的应用场景和关系数据库有很大的不同;
4. Hive很容易扩展自己的存储能力和计算能力,这个是继承Hadoop的,而关系数据库在这个方面要比数据库差很多。

2.2 Hive架构

这里写图片描述

由上图可知,Hadoop的mapreduce是Hive架构的根基。Hive架构包括如下组件:CLI(command line interface)、JDBC/ODBC、Thrift Server、WEB GUI、metastore和Driver(Complier、Optimizer和Executor),这些组件分为两大类:服务端组件和客户端组件。

服务端组件:

  • Driver组件:该组件包括Complier、 Optimizer和Executor,它的作用是将HiveQL(类SQL)语句进行解析、编译优化,生成执行计划,然后调用底层的mapreduce计算框架;
  • Metastore组件:元数据服务组件,这个组件存储Hive的元数据,Hive的元数据存储在关系数据库里,Hive支持的关系数据库有derby和mysql。元数据对于Hive十分重要,因此Hive支持把metastore服务独立出来,安装到远程的服务器集群里,从而解耦Hive服务和metastore服务,保证Hive运行的健壮性;
  • Thrift服务:thrift是facebook开发的一个软件框架,它用来进行可扩展且跨语言的服务的开发,Hive集成了该服务,能让不同的编程语言调用hive的接口。

客户端组件:

  • CLI:command line interface,命令行接口。
  • Thrift客户端:上面的架构图里没有写上Thrift客户端,但是Hive架构的许多客户端接口是建立在thrift客户端之上,包括JDBC和ODBC接口。
  • WEBGUI:Hive客户端提供了一种通过网页的方式访问hive所提供的服务。这个接口对应Hive的hwi组件(hive web interface),使用前要启动hwi服务。

3 搭建Hive环境

3.1 安装MySql数据库(实验环境中已经安装无需再次安装)

3.1.1 下载mysql安装文件

下载地址:http://dev.mysql.com/downloads/mysql/#downloads ,使用系统为CentOS选择 Red Hat Enterprise Linux/Oracle系列,也可以在/home/shiyanlou/install-pack目录中找到这些安装包:
这里写图片描述

操作系统为64位,选择对应安装包进行下载:

这里写图片描述

这里写图片描述

这里写图片描述

下载在本地目录如下图:

这里写图片描述

3.1.2 安装mysql

使用命令查看是否已经安装过mysql:
- sudo rpm -qa | grep -i mysql

可以看到如下图的所示:

这里写图片描述

说明之前安装了mysql,可以参考4.1进行卸载旧的mysql。如果以前没有安装mysql则进入安装文件的目录,安装mysql服务端
- cd /home/shiyanlou/install-pack
- sudo rpm -ivh MySQL-server-5.6.21-1.el6.x86_64.rpm

这里写图片描述

出现异常,通过分析缺少libaio依赖包,使用如下命令进行安装:
- sudo yum install libaio

这里写图片描述

再次安装mysql,并安装mysql客户端、mysql-devel
- sudo rpm -ivh MySQL-server-5.6.21-1.el6.x86_64.rpm
- sudo rpm -ivh MySQL-client-5.6.21-1.el6.x86_64.rpm
- sudo rpm -ivh MySQL-devel-5.6.21-1.el6.x86_64.rpm

这里写图片描述

3.1.3 启动mysql服务

通过下面查看mysql服务状态:
- sudo service mysql status

如果mysql没有启动,通过如下命令进行启动:
- sudo service mysql start

这里写图片描述

3.1.4 设置root密码

在CentOS6.5操作系统使用如下命令给mysql设置root密码时,出现如下错误:
/usr/bin/mysqladmin -u root password ‘root’;

这里写图片描述

/usr/bin/mysqladmin: connect to server at ‘localhost’ failed
error: ‘Access denied for user ‘root’@’localhost’ (using password: NO)’
可以进入安全模式进行设置root密码

(1) 停止mysql服务

使用如下命令停止mysql服务:
- su

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值