首先先简单介绍下hive:
Hive是一个基于Hadoop的数据仓库工具,可以将结构化的数据文件映射成一张数据表,并可以使用类似SQL的方式来对数据文件进行读写以及管理。这套Hive SQL 简称HQL。Hive的执行引擎可以是MR、Spark、Tez。
核心架构:
Hive官网地址
http://hive.apache.org/
下载地址
http://archive.apache.org/dist/hive/
hive的安装部署
Hive常用的安装分三种
(注意:Hive会自动监测Hadoop的环境变量,所以在安装hive之前就必须启动Hadoop,如未安装hadoop,请移步看本人的另一篇博客
地址:https://www.cnblogs.com/s1023/p/12439518.html)
第一种:本地模式(多用户模式)
使用hive自带默认元数据库derby来进行存储,通常用于测试
a.优点:使用简单,不用进行配置
b.缺点:只支持单session
安装步骤:
首先将下载好的hive安装包上传到linux上
1、解压hive,并配置环境变量
tar -zxvf apache-hive-1.2.1-bin.tar.gz -C /opt/module/
vi /etc/profile
source /etc/profile
export HIVE_HOME=/opt/app/hive
export PATH=$HIVE_HOME/bin:$PATH
2、配置hive-env.sh,如果不存在,就用hive.env.sh.template复制一个
export HIVE_CONF_DIR=/opt/app/hive/conf export JAVA_HOME=/opt/app/jdk export HADOOP_HOME=/opt/app/hadoop
3、启动hive:(注:启动之前要启动hdfs sbin/start-dfs.sh 和yarn sbin/start-yarn.sh )
bin/hive
进入后可以执行下面命令进行操作
show dataases; #查看数据库
show tables; #查看表
简单sql演示执行
# 创建表 create table dog(id int,name string); select * from dog; insert into dog values(1,"wangcai"); desc dog; #查看表结构 quit # 退出
配置安装mysql:
安装包准备
#查看mysql是否安装,如果安装了,卸载mysql rpm -qa|grep mysql #如果出现下面的提示,就说明系统已经有了mysql,要卸载 mysql-libs-5.1.73-7.el6.x86_64 # 卸载mysql rpm -e --nodeps mysql-libs-5.1.73-7.el6.x86_64
安装MySql服务器
==mysql安装的步骤介绍==
1.安装mysql服务端(先从本地上传服务端和客户端到服务器,尽量使用root用户操作)
rpm -ivh MySQL-server-5.6.rpm
#注意:如果是mini版本安装,提前要安装下面一个依赖库:
yum install libaio
2.查看产生的随机密码
cat /root/.mysql_secret
3.查看mysql状态
service mysql status
4.启动mysql
service mysql start
安装MySql客户端
1.安装mysql客户端
rpm -ivh MySQL-client-5.6.rpm
2.链接mysql
命令格式:mysql -u用户名 -p密码
mysql -uroot -pabcdefafd
注意:
abcdefafd为安装mysql服务端时第2部查看产生的随机密码,直接复制即可
3.修改密码
mysql>SET PASSWORD=PASSWORD('123123');
第二种模式:远程模式1
将元数据库放在该台机器上)(多用户模式)
通常使用关系型数据库来进行元数据存储(mysql、oracle等执行带jdbc驱动的数据库)
- 优点:支持多session
- 缺点:需要配置、还需要安装mysql等关系型数据库(已安装好)
步骤:
– 1、解压并配置环境变量
– 2、配置hive的配置文件
– cp hive-env.sh.template hive-env.sh vi hive-env.sh(可以配置jdk、hive的conf路径)
– 3、在Hive的conf配置hive的自定义配置文件 vi hive-site.xml:如下:
<configuration> <!--配置mysql的连接字符串--> <property> <name>javax.jdo.option.ConnectionURL</name> <value>jdbc:mysql://localhost:3306/hive?createDatabaseIfNotExist=true</value> <description>JDBC connect string for a JDBC metastore</description> </property> <!--配置mysql的连接驱动--> <property> <name>javax.jdo.option.ConnectionDriverName</name> <value>com.mysql.jdbc.Driver</value> <description>Driver class name for a JDBC metastore</description> </property> <!--配置登录mysql的用户--> <property> <name>javax.jdo.option.ConnectionUserName</name> <value>root</value> <description>username to use against metastore database</description> </property> <!--配置登录mysql的密码--> <property> <name>javax.jdo.option.ConnectionPassword</name> <value>123123</value> <description>password to use against metastore database</description> </property> </configuration>
4、将mysql的驱动包mysql-connector-java-5.1.27-bin.jar上传到$HIVE_HOME/lib下(==注意:驱动是jar结尾,不是tar结尾==)
5、启动hive
第三种模式:远程模式2
(将元数据库放在其他机器上)(多用户模式)
和1差不多,只是将元数据放在别的服务器上,这种的就是咱们常说的集群模式。
可以有一个hive的server和多个hive的client。