内嵌模式搭建Hive

374 阅读1分钟

持续创作,加速成长!这是我参与「掘金日新计划 · 6 月更文挑战」的第9天,点击查看活动详情

在此之前已经搭建好了一个三台机器的hadoop集群:blog.csdn.net/QYHuiiQ/art…

接下来在此基础上搭建hive。

  •   下载hive

dlcdn.apache.org/hive/

以hadoop02为节点搭建内嵌模式

  • 将hive安装包上传至hadoop02节点

  •  解压hive安装包
[root@hadoop02 wyh]# tar -zxvf apache-hive-2.3.9-bin.tar.gz
  • 配置环境变量
#在/etc/profile文件中添加如下配置
HIVE_HOME=/usr/local/wyh/apache-hive-2.3.9-bin
PATH=$PATH:$HIVE_HOME/bin
export HIVE_HOME PATH


#使配置生效
[root@hadoop02 wyh]# source /etc/profile
  • 配置hive-env.sh
[root@hadoop02 conf]# pwd
/usr/local/wyh/apache-hive-2.3.9-bin/conf
#拷贝并生成hive-env.sh文件
[root@hadoop02 conf]# cp hive-env.sh.template hive-env.sh

#编辑hive-env.sh,添加如下配置
export HIVE_CONF_DIR=/usr/local/wyh/apache-hive-2.3.9-bin/conf
export JAVA_HOME=/usr/local/wyh/jdk1.8.0_311
export HADOOP_HOME=/usr/local/wyh/hadoop-2.7.5
export HIVE_AUX_JARS_PATH=/usr/local/wyh/apache-hive-2.3.9-bin/lib
  • 配置hive-site.xml
#拷贝并生成hive-site.xml
[root@hadoop02 conf]# cp hive-default.xml.template hive-site.xml

[root@hadoop02 conf]# vi hive-site.xml
#将${system:java.io.tmpdir}替换为我们的tmp目录(iotmp,该目录会自动创建)。直接在当前模式下输入以下命令即可替换,不需要切换为insert模式
:%s#${system:java.io.tmpdir}#/usr/local/wyh/apache-hive-2.3.9-bin/iotmp#g
#执行完之后,会提示我们替换了4个地方。

#再将系统用户名替换为root
:%s/${system:user.name}/root/g
#执行完之后提示我们修改了3个地方。

修改完成之后,保存并退出。
  • 初始化hive

内嵌模式默认使用的数据库是derby。

进到家目录下:

[root@hadoop02 conf]# cd
[root@hadoop02 ~]# pwd
/root

初始化hive:

[root@hadoop02 ~]# schematool --initSchema -dbType derby

  •  启动hive
[root@hadoop02 ~]# hive

启动成功之后就会进入到hive的交互界面:

  •  测试hive数据库
hive>
    >
    >
    > show databases;
OK
default
Time taken: 7.683 seconds, Fetched: 1 row(s)
hive> show tables;
OK
Time taken: 0.101 seconds

#创建一个数据库test_db
hive> create database test_db;
OK
Time taken: 0.127 seconds
hive> show databases;
OK
default
test_db
Time taken: 0.004 seconds, Fetched: 2 row(s)
  • 退出hive
hive> quit;

这里要注意的是,在初始化hive时,我们是在家目录下初始化的,所以启动hive后我们所有数据的元数据都是保存在家目录下的,可以看到家目录下已经生成了下面的两个文件:

​ 可以大致看下这两个文件/目录大概保存了哪些内容:

 所以,在之后我们再想使用hive时,就必须还在家目录下启动hive才能读到这两个文件,从而读到元数据,在其他目录下启动hive就会报错。

  • 检验iotmp目录已自动生成

 以上就是hive内嵌模式的简单实现。