注意:Hive会自动监测Hadoop的环境变量,如有就必须启动Hadoop)
内嵌模式
使用hive自带默认元数据库derby来进行存储,通常用于测试
- 优点:使用简单,不用进行配置
- 缺点:只支持单session。
安装步骤
1)解压hive并配置环境变量
[root@qianfeng01 local]# tar -zxvf apache-hive-3.1.2-bin.tar.gz -C /usr/local
#修改hive安装路径名,方便以后使用
[root@qianfeng01 local]# mv apache-hive-3.1.2-bin/ hive-3.1.2
[root@qianfeng01 local]# vi /etc/profile
# 添加如下内容:
export HIVE_HOME=/usr/local/hive-3.1.2
export PATH=$HIVE_HOME/bin:$PATH
#让profile生效
[root@qianfeng01 local]# source /etc/profile
2) 配置hive-env.sh
如果不存在,就用hive-env.sh.template复制一个
export HIVE_CONF_DIR=/usr/local/hive-3.1.2/conf
export JAVA_HOME=/usr/local/jdk
export HADOOP_HOME=/usr/local/hadoop
export HIVE_AUX_JARS_PATH=/usr/local/hive-3.1.2/lib
3) 配置hive-site.xml
hive-3.1.2中默认是没有hive-site.xml
,可以把conf/hive-default.xml.template
拷贝过来使用
[root@qianfeng01 conf]# cp hive-default.xml.template hive-site.xml
[root@qianfeng01 conf]# vi hive-site.xml
在vi模式下 % 全文搜索 s start开始 # 分隔符号 ${是文件中需要查找的内容} 后续内容是替换内容(需要#分隔)g 全部替换
%s#${system:java.io.tmpdir}#/usr/local/hive-3.1.2/iotmp#g
把hive-site.xml 中所有包含 ${system:java.io.tmpdir}替换成/usr/local/hive-3.1.2/iotmp
%s#${system:user.name}#root#g
如果系统默认没有指定系统用户名,那么要把配置${system:user.name}替换成当前用户名root
扩展:hive-site.xml中有两个重要的配置说明
<!-- 该参数主要指定Hive的数据存储目录 -->
<property>
<name>hive.metastore.warehouse.dir</name>
<value>/user/hive/warehouse</value>
<description>location of default database for the warehouse</description>
</property>
<!-- 该参数主要指定Hive的临时文件存储目录 -->
<property>
<name>hive.exec.scratchdir</name>
<value>/tmp/hive</value>
<description>HDFS root scratch dir for Hive jobs which gets created with write all (733) permission. For each connecting user, an HDFS scratch dir: ${hive.exec.scratchdir}/<username> is created, with ${hive.scratch.dir.permission}.</description>
</property>
在linux中新建上面两个目录,并且进行权限赋值(可选操作,hive会自动创建)
[root@qianfeng01 hive] # hdfs dfs -mkdir -p /user/hive/warehouse
[root@qianfeng01 hive] # hdfs dfs -mkdir -p /tmp/hive/
[root@qianfeng01 hive] # hdfs dfs -chmod 750 /user/hive/warehouse
[root@qianfeng01 hive] # hdfs dfs -chmod 777 /tmp/hive
- 启动hadoop
[root@qianfeng01 hadoop]# start-dfs.sh
[root@qianfeng01 hadoop]# start-yarn.sh
- 初始化hive
[root@qianfeng01 hive]# schematool --initSchema -dbType derby
- 启动hive
(注:启动之前要启动hdfs sbin/start-dfs.sh 和yarn sbin/start-yarn.sh )
[root@qianfeng01 hive]# bin/hive
#进入后可以执行下面命令进行操作:
hive>show databases; #查看数据库
hive>show tables; #查看表
简单sql演示执行
# 创建表
hive> create table dog(id int,name string);
hive> select * from dog;
hive> insert into dog values(1,"wangcai");
hive> desc dog; #查看表结构
hive> quit # 退出