Hive3.1.2的搭建
Hive3.1.2的搭建
提前下好资料,并上传到集群:
我将文件上传到了/opt/software
中专门存储软件包的
我集群名:hadoop1、hadoop2、hadoop3
一、安装Hive
(一)、解压apache-hive-3.1.2-bin.tar.gz
tar -zxvf /opt/software/apache-hive-3.1.2-bin.tar.gz -C /opt/module/
将hive解压到/opt/module下
(二)、将apache-hive-3.1.2-bin
名字改为hive
mv apache-hive-3.1.2-bin hive
(三)、添加环境变量
在/etc/profile.d/my_env.sh
中添加环境
vim /etc/profile.d/my_env.sh
添加内容如下:
#hive
export HIVE_HOME=/opt/module/hive
export PATH=$PATH:$HIVE_HOME/bin
注意:HIVE_HOME
是自己Hive安装路径
为什么要在/etc/profile.d中添加环境变量?
- 可以看linux中添加环境变量
最后执行下面命令
立刻执行文件修改,让环境立刻生效
source /etc/profile
二、安装MySQL——元数据存储
(一)、mysql-connector-java-5.1.12.jar
移动到$HIVE_HOME/lib
中
mv /opt/software/mysql-connector-java-5.1.12.jar $HIVE_HOME/lib
(二)、删除自带的数据库
sudo rpm -e --nodeps mariadb-libs
(三)、解压mysql-5.7.36-1.el7.x86_64.rpm-bundle.tar
tar -xf mysql-5.7.36-1.el7.x86_64.rpm-bundle.tar
(四)、安装mysql
注意:安装mysql,一定要注意先后顺序
sudo rpm -ivh mysql-community-common-5.7.36-1.el7.x86_64.rpm
sudo rpm -ivh mysql-community-libs-5.7.36-1.el7.x86_64.rpm
sudo rpm -ivh mysql-community-libs-compat-5.7.36-1.el7.x86_64.rpm
sudo rpm -ivh mysql-community-client-5.7.36-1.el7.x86_64.rpm
sudo rpm -ivh mysql-community-server-5.7.36-1.el7.x86_64.rpm
(五)、MySQL初始化
sudo mysqld --initialize --user=mysql
(六)、查看初始密码
在/etc/my.cnf 查看日志存放位置
cat /etc/my.cnf
查看日志文件中初始密码
cat /var/log/mysql.log
n:3Evf/(Sled
(七)登陆MySQL
先启动MySQL服务
sudo systemctl start mysqld
注意:只需要启动一次即可,下次开机自启
登陆MySQL
mysql -u root -p
修改密码
set password=password("root");
可以先退出试一下是否将密码修改成功
(八)将MySQL设置为任意ip可以访问
注意:目前MySQL只能是本地能够访问
相关的配置文件,在mysql中的mysql库的user表中
在user 字段中,root用户的host是localhost(本地)
解决办法:
update mysql.user set host="%" where user='root';
再输入下面命令,立刻生效
flush privileges;
可以测试一下是否可以远程访问MySQL
我们将windows中Navicat进行远程登录
三、配置Hive
(一)、创建元数据库
用来替换derby进行存储hive的元数据
补充知识:
- derby主要是不符合,多用户登录,只能单用户使用,不符合多用户登录的需求
登录mysql
mysql -u root -p
创建数据库——metastore
create database metastore;
注意:metastore作为元数据库的库名,可以随便起名字,但是在后面的配置文件需要修改
(二)hive的配置文件
1.在hive目录下conf中创建一个hive-site.xml
<?xml version="1.0"?>
<?xml-stylesheet type="text/xsl" href="configuration.xsl"?>
<configuration>
<!-- jdbc 连接的 URL -->
<property>
<name>javax.jdo.option.ConnectionURL</name>
<value>jdbc:mysql://hadoop1:3306/metastore?useSSL=false</value>
</property>
<!-- jdbc 连接的 Driver-->
<property>
<name>javax.jdo.option.ConnectionDriverName</name>
<value>com.mysql.jdbc.Driver</value>
</property>
<!-- jdbc 连接的 username-->
<property>
<name>javax.jdo.option.ConnectionUserName</name>
<value>root</value>
</property>
<!-- jdbc 连接的 password -->
<property>
<name>javax.jdo.option.ConnectionPassword</name>
<value>root</value>
</property>
<!-- Hive 元数据存储版本的验证,默认是放在Derby上 -->
<property>
<name>hive.metastore.schema.verification</name>
<value>false</value>
</property>
<!--元数据存储授权-->
<property>
<name>hive.metastore.event.db.notification.api.auth</name>
<value>false</value>
</property>
<!-- Hive 默认在 HDFS 的工作目录,可以省略该配置 -->
<property>
<name>hive.metastore.warehouse.dir</name>
<value>/user/hive/warehouse</value>
</property>
<property>
<name>hive.cli.print.header</name>
<value>true</value>
</property>
</configuration>
注意:
<property>
<name>javax.jdo.option.ConnectionURL</name>
<value>jdbc:mysql://hadoop1:3306/metastore?useSSL=false</value>
</property>
其中value中的hadoop1
是我自己的主机名,metastore是元数据的库名
,前面在mysql中创建的
<!-- jdbc 连接的 password -->
<property>
<name>javax.jdo.option.ConnectionPassword</name>
<value>root</value>
</property>
其中的value是mysql的登录密码
,我的是root
(三)初始hive元数据
$HIVE_HOME/bin/schematool -initSchema -dbType mysql -verbose
(四) 启动hadoop
start-dfs.sh
start-yarn.sh
(五) hive
输入hive,即可使用
hive