Hive:数据仓库
Apache Hive 是数据仓库软件便于阅读,写作,和管理大型数据集居住在分布式存储使用SQL。结构可以投射到数据已经存储。提供了一个命令行工具和JDBC驱动程序将用户连接到Hive
在搭建Hive之前要首先搭建好Hadoop,关于Hadoop的搭建 参考之前的 hadoop 2.x搭架文档
http://blog.csdn.net/liulihui1988/article/details/73189148
一、Hive 运行模式
1. 内嵌模式
将元数据保存在本地内嵌的 Derby 数据库中,这是使用 Hive 最简单的方式。但是这种方式缺点也比较明显,因为一个内嵌的 Derby 数据库每次只能访问一个数据文件,这也就意味着它不支持多会话连接。
2. 本地模式
这种模式是将元数据保存在本地独立的数据库中(一般是 MySQL),这用就可以支持多会话和多用户连接了。
3. 远程模式
此模式应用于 Hive 客户端较多的情况。把 MySQL 数据库独立出来,将元数据保存在远端独立的 MySQL 服务中,避免了在每个客户端都安装 MySQL 服务从而造成冗余浪费的情况。
二、安装 Hive
下载地址:http://apache.fayea.com/
apache-hive-2.1.1-bin.tar.gz 解压
tar -zxvf hiveapache-hive-2.1.1-bin.tar.gz -C /usr/local
修改配置文件,命令进入 cd /usr/local/hiveapache-hive-2.1.1-bin/conf 目录下拷贝hive-default.xml.template文件
cp -a hive-default.xml.template hive-site.xml
三、Mysql数据库安装
1、yum命令安装mysql 数据库
yum install mysql-server
CentOS7下解决yum install mysql-server没有可用包
执行一下命令:
# wget http://repo.mysql.com/mysql-community-release-el7-5.noarch.rpm
# wget http://repo.mysql.com/mysql-community-release-el7-5.noarch.rpm
mysql-community-release-el7-5.noarch.rpm
# rpm -ivh mysql-community-release-el7-5.noarch.rpm
1:mysql-community-release-el7-5 ################################# [100%]
# ls -1 /etc/yum.repos.d/mysql-community*
/etc/yum.repos.d/mysql-community.repo
/etc/yum.repos.d/mysql-community-source.repo
# yum install mysql-server
mysql数据库安装完成,启动数据库:
service mysql start
查看数据看端口:netstat -tunpl | grep 3306
登陆Mysql 设置用户权限,用grant命令对 Mysql数据库设置权限,命令登陆数据库
# mysql
mysql> grant all on *.* to root@'%' identified by 'root';
grant all(所有权限) on(所有数据库) (.)所有表 to root@(用户名)’%’(所有的id地址) identified by ‘root’(密码)
添加centos-node6访问数据库的权限
mysql> grant all on *.* to root@'centos-node6' identified by 'root';
创建一个 hive 数据库
create database hive
修改hive的配置文件
Hive 链接数据库 需要数据库驱动:导入数据库驱动 mysql-connector-java-5.1.35.jar,导入到apache-hive-2.1.1-bin下的lib目录下
scp mysql-connector-java-5.1.35.jar /usr/local/apache-hive-0.13.1-bin/lib/
# cd usr/local/apache-hive-0.13.1-bin/lib/
修改配置文件 hive-site.xml
vi hive-sitx.xml
更改链接的数据库服务器
配置对应的数据库服务器
<property>
<name>javax.jdo.option.ConnectionURL</name>
<value>jdbc:mysql://centos-node6/hive</value>
<description>JDBC connect string for a JDBC metastore</description>
</property>
链接数据库 driverClass
<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>