一.hive使用前提
hive的运行要在hadoop集群上。Hive支持MapReduce/Spark/Tez等多种计算引擎。这里以MapReduce为例。hive相当于mapreduce的客户端。此外还需要mysql等数据库存储元数据(这里元数据的配置选择的是远程模式)。所以依赖于hadoop,jdk.所以使用hive时,必须先启动hdfs。(因为只要其读取操作文件。hive的文件实际存储在hdfs上)
关于hive存储元数据有三种模式,如下,具体详解参考:Hive的Metastore三种配置方式分析
- 内嵌模式:元数据保持在内嵌的derby模式,只允许一个会话连接(默认 hive带的数据库)
- 本地独立模式:在本地安装Mysql,把元据放到mySql内
- 远程模式:元数据放置在远程的Mysql数据库
二.Hive的部署与安装
0. hive以及常见大数据的安装包都可以到清华大学镜像去下:mirrors.tuna.tsinghua.edu.cn/apache/
1、解压Hive到安装目录
$ tar -zxf /opt/softwares/hive-0.13.1-cdh5.3.6.tar.gz -C /opt/modules/
2、重命名配置文件
$ mv hive-default.xml.template hive-site.xml
$ mv hive-env.sh.template hive-env.sh
3、在hive-env.sh 配置如下环境变量
JAVA_HOME=/opt/modules/jdk1.8.0_121
HADOOP_HOME=/opt/modules/cdh/hadoop-2.5.0-cdh5.3.6/
export HIVE_CONF_DIR=/opt/modules/cdh/hive-0.13.1-cdh5.3.6/conf
4、在linux里在线安装Mysql(前提是可以连外网,虚拟机的话要能连的了外网,ping的通外网。)
1.$ su - root 。需要切换到root权限
2.依次运行如下命令,从网络下载安装mysql服务端和客户端
# yum -y install mysql mysql-server mysql-devel
# wget dev.mysql.com/get/mysql-c…
# rpm -ivh mysql-community-release-el7-5.noarch.rpm
# yum -y install mysql-community-server
温馨提示:如果使用离线绿色版本(免安装版本)需要手动初始化Mysql数据库
5、配置Mysql相关参数
1.开启Mysql服务
# systemctl start mysqld.service
2. 设置root用户密码
# mysqladmin -uroot password '123456'
3.为用户以及其他机器节点授权
在mysql里面运行如下命令:
grant all on *.* to root@'hadoop102' identified by '123456';
grant:授权
all:所有权限
*.*:数据库名称.表名称
root:操作mysql的用户
@'':主机名
密码:123456
如果单独使用mysql -uroot -p123456可以登录mysql表明mysql安装成功
退出当前账户用 exit; 主要不要忽略了;
6,关联mysql和hive.先配置修改hive里的hive-site.xml文件
1. hive-site.xml
<-远程用hive连接数据库,主要修改hive里的四个配置文件->
<1.hadoop102连接mysql,并且在mysql里面创建metastore数据库。>
<2.添加mysql驱动路径到hive中,前提是已在hive的lib目录下,上传了mysql连接驱动的jar包>
<3和4是hive连接mysql数据库的账户和密码>
<property>
<name>javax.jdo.option.ConnectionURL</name>
<value>jdbc:mysql://hadoop102:3306/metastore?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>
三:修改Hive日志信息
1.重命名配置文件: hive-log4j.properties (选择性修改)
在/opt/modules/cdh/hive-0.13.1-cdh5.3.6/下 :
mkdir logs
hive.log.dir=/opt/modules/hive-0.13.1-cdh5.3.6/logs
2.先驱动包,再把里面的解压拷贝数据库驱动包到Hive根目录下的lib文件夹
$ cp -a mysql-connector-java-5.1.27-bin.jar /opt/modules/cdh/hive-0.13.1-cdh5.3.6/lib/
3.启动Hive和测试是否安装成功
1. $ bin/hive 出现下面字样则表示全部安装成功
17/07/22 09:04:02 WARN conf.HiveConf: DEPRECATED: hive.metastore.ds.retry.* no longer has any effect. Use hive.hmshandler.retry.* nstead Logging initialized using configuration in jar:file:/opt/modules/hive-0.13.1-cdh5.3.6/lib/hive-common-0.13.1-cdh5.3.6.jar!/hive-log4j.properties
2.在登录的hive中输入show databases 如果成功,则表示hive成功搭建 退出hive用exit;