一.Hive介绍
Hive包含用户接口、元数据库、解析器和数据仓库等组件组成,其中用户接口包含shell客户端、JDBC、ODBC、Web接口等。元数据库主要是指定义在hive中的表结构信息,一般保存到关系型数据库中,默认是derby,一般使用mysql进行保存。解析器主要功能是将HQL语句转换为mapreduce代码。数据仓库就是由hdfs组成的数据存储容器。
(1)Hive组成
Hive包含用户接口、元数据库、解析器和数据仓库等组件组成,其中用户接口包含shell客户端、JDBC、ODBC、Web接口等。元数据库主要是指定义在hive中的表结构信息,一般保存到关系型数据库中,默认是derby,一般使用mysql进行保存。解析器主要功能是将HQL语句转换为mapreduce代码。数据仓库就是由hdfs组成的数据存储容器。
(2)Hive结构
(3)Hive安装
Hive根据metastore的存储位置不同,分为三种安装模式:内嵌模式,本地模式,远程模式。内嵌模式就是使用derdy存储元数据;本地模式是将hvie.metastore.local设置为true,就是说metastore和hive客户端安装在同一台机器上;远程模式指的是我们明确指定metastore安装的机器位置,而且可以指定多个,需要给定参数hive.metastore.uris并且hive.metastore.local必须设置为false。
Hive远程模式安装,使用mysql进行元数据的存储。安装步骤:
1. 安装mysql数据库。
2. hive本地模式安装。
二.安装mysql
1. 使用root用户: su root
2. 安装
yum install mysql
yum install mysql-server
yum install mysql-devel(可选)
3. 修改配置信息,添加: vim /etc/my.cnf
如果是rpm安装的话,则my.cnf在/usr目录
[mysql]
default-character-set=utf8
[mysqld]
character-set-server=utf8
lower_case_table_names=1
4. 启动mysql:
service mysqld restart/stop/start
启动时有可能会报以下的错:
MySQL server PID file could not be found![失败]
Starting MySQL...The server quit without updating PID file (/usr/local/mysql/data/snsgou.pid).[失败]
5. 配置超级用户名和密码,
mysqladmin -u root password 123456
6. root用户登录
mysql -u root -p 123456
可能会报错:
Access denied for user 'root'@'localhost' (using password: YES) 拒绝访问
我的解决方法是:将/usr/my.cnf配置文件加上skip-federated,再复制到/etc目录下,此举为跳过密码认证
7. 创建mysql用户:create user 'hive' identified by 'hive';
8. 授权:grant all privileges on *.* to 'hive'@'%' with grant option
9. 重启一下这个mysql服务。
10. 使用hive用户创建数据库并修改连接信息。
create database hive;
alter database hive character set latin1;
终端输入mysql,结果如图所示即安装成功
三. 安装hive
1. 下载hive:http://archive.cloudera.com/cdh5/cdh/5/hive-0.13.1-cdh5.3.6.tar.gz
2. hive的帮助文档位置:https://cwiki.apache.org/confluence/display/Hive/LanguageManual,
hive官网:http://hive.apache.org
3. 参考hive-site.xml文件
4. 将bin目录添加到path目录中,
vim ~/.bash_profile
export HIVE_HOME=/home/hadoop/bigdater/hive-0.13.1-cdh5.3.6/
export PATH=$PATH:$HIVE_HOME/bin
source ~/.bash_profile
5. 移动mysql驱动jar到hive的lib文件夹下。
6. 启动metastore服务(启动hdfs+yarn服务)
hive --service metastore &
7. 进入hive的客户端
hive
如下图所示