Hive安装配置

安装配置Hive

一、安装数据库mariadb

1、安装

yum install mariadb-server -y

2、配置

1)启动

systemctl start mariadb

2)设置开机启动

systemctl enable mariadb

3)首次安装需要进行数据库的配置,命令都和mysql的一样

mysql_secure_installation

4) 配置时出现的各个选项

# 输入数据库超级管理员root的密码(注意不是系统root的密码),第一次进入还没有设置密码则直接回车
Enter current password for root (enter for none):
# 设置密码,y
Set root password? [Y/n] y
# 新密码
New password: 
# 再次输入密码
Re-enter new password:
# 移除匿名用户, y
Remove anonymous users? [Y/n] y
# 拒绝root远程登录,n,不管y/n,都会拒绝root远程登录
Disallow root login remotely? [Y/n] n
# 删除test数据库,y:删除。n:不删除,数据库中会有一个test数据库,一般不需要
Remove test database and access to it? [Y/n] y
# 重新加载权限表,y。或者重启服务也许
Reload privilege tables now? [Y/n] y

3、测试

测试是否能够登录成功,出现 MariaDB [(none)]> 就表示已经能够正常登录使用MariaDB数据库了

[root@mini ~]# mysql -u root -p
Enter password:
Welcome to the MariaDB monitor.  Commands end with ; or \g.
Your MariaDB connection id is 8
Server version: 5.5.60-MariaDB MariaDB Server

Copyright (c) 2000, 2018, Oracle, MariaDB Corporation Ab and others.

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

MariaDB [(none)]>

4、设置MariaDB字符集为utf-8

1)/etc/my.cnf 文件

vim /etc/my.cnf

在 [mysqld] 标签下添加

init_connect='SET collation_connection = utf8_unicode_ci'
init_connect='SET NAMES utf8'
character-set-server=utf8
collation-server=utf8_unicode_ci
skip-character-set-client-handshake

2)/etc/my.cnf.d/client.cnf 文件

vim /etc/my.cnf.d/client.cnf 

在 [client] 标签下添加

default-character-set=utf8

3)/etc/my.cnf.d/mysql-clients.cnf 文件

vim /etc/my.cnf.d/mysql-clients.cnf

在 [mysql] 标签下添加

default-character-set=utf8

4)重启

systemctl restart mariadb

5)进入mariadb查看字符集

MariaDB [mysql]> show variables like "%character%";show variables like "%collation%";
+--------------------------+----------------------------+
| Variable_name            | Value                      |
+--------------------------+----------------------------+
| character_set_client     | utf8                       |
| character_set_connection | utf8                       |
| character_set_database   | utf8                       |
| character_set_filesystem | binary                     |
| character_set_results    | utf8                       |
| character_set_server     | utf8                       |
| character_set_system     | utf8                       |
| character_sets_dir       | /usr/share/mysql/charsets/ |
+--------------------------+----------------------------+
8 rows in set (0.00 sec)

+----------------------+-----------------+
| Variable_name        | Value           |
+----------------------+-----------------+
| collation_connection | utf8_unicode_ci |
| collation_database   | utf8_unicode_ci |
| collation_server     | utf8_unicode_ci |
+----------------------+-----------------+
3 rows in set (0.00 sec)

MariaDB [mysql]>

5、远程链接mariadb数据库

mariadb默认是拒绝 root 远程登录的。这里用的是 navicat 软件连接数据库

1)关闭防火墙

systemctl stop firewalld

2)在不关闭防火墙的情况下

(1)查看3306端口是否开启
firewall-cmd --query-port=3306/tcp
(2)开启3306端口
firewall-cmd --zone=public --add-port=3306/tcp --permanent
(3)重启防火墙
firewall-cmd --reload
(4)查看3306端口是否开启
firewall-cmd --query-port=3306/tcp

3)先查看mysql数据库中的user表

先通过本地链接进入数据库

mysql -u root -p
MariaDB [(none)]> use mysql;
MariaDB [(none)]> use mysql;

MariaDB [mysql]> select host, user from user;
+-----------+------+
| host      | user |
+-----------+------+
| 127.0.0.1 | root |
| ::1       | root |
| localhost | root |
+-----------+------+
3 rows in set (0.00 sec)

4)将与主机名相等的字段改为 “%” ,我的主机名为xx

MariaDB [mysql]> update user set host='%' where host='::1';
Query OK, 1 row affected (0.00 sec)
Rows matched: 1  Changed: 1  Warnings: 0

MariaDB [mysql]> select host, user from user;
+-----------+------+
| host      | user |
+-----------+------+
| %         | root |
| 127.0.0.1 | root |
| localhost | root |
+-----------+------+
3 rows in set (0.00 sec)

5)刷新权限表,或重启mariadb服务,一下二选一即可

flush privileges;
systemctl restart mariadb

注意:刷新权限表是在数据库中,重启服务是在外部命令行中

6)远程链接mariadb

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-TVkgFZWo-1653389985537)(C:\Users\24602\AppData\Roaming\Typora\typora-user-images\1653362737907.png)]

二、安装配置Hive

1、下载

选择对应版本

地址:https://mirrors.tuna.tsinghua.edu.cn/apache/hive/

2、上传到操作系统中

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-xgzsjedO-1653389985538)(C:\Users\24602\AppData\Roaming\Typora\typora-user-images\1653381220844.png)]

3、解压

tar -zxvf apache-hive-2.3.9-bin.tar.gz

4、重命名

mv apache-hive-2.3.9-bin hive

5、移动到安装目录

mv hive /opt/

6、配置环境变量

vim /etc/profile
export HIVE_HOME=/opt/hive
export PATH=$PATH:$HIVE_HOME/bin

使配置文件生效

source /etc/profile

7、修改配置文件

1)进入conf目录

cd /opt/hive/conf

2)拷贝hive-env.sh.template文件为hive-env.sh

cp hive-env.sh.template hive-env.sh

3)打开hive-env.sh文件

vim hive-env.sh

4)在文件末尾增加如下参数

HADOOP_HOME=/opt/hadoop
export HIVE_CONF_DIR=/opt/hive/conf

5)使用vi命令新建一个hive-site.xml

vim hive-site.xml

6)在打开的hive-site.xml文件中配置如下信息

<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<?xml-stylesheet type="text/xsl" href="configuration.xsl"?>
<configuration>
  <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>
  <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>hive</value>
    <description>username to use against metastore database</description>
  </property>
  <property>
    <name>javax.jdo.option.ConnectionPassword</name>
    <value>hive</value>
    <description>password to use against metastore database</description>
  </property>
</configuration>

8、配置元数据库

1)从mysql官网中下载mysql驱动,地址如下

https://downloads.mysql.com/archives/c-j/

注意,下载5.1.49版本的即可,不要下载更高版本的。具体下载地址如下:

https://cdn.mysql.com/archives/mysql-connector-java-5.1/mysql-connector-java-5.1.49.tar.gz

2)将下载好的mysql驱动mysql-connector-java-5.1.49.tar.gz上传至主节点

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-eN0nzOkZ-1653389985539)(C:\Users\24602\AppData\Roaming\Typora\typora-user-images\1653382598890.png)]

3)解压mysql-connector-java-5.1.49.tar.gz

tar -zxvf mysql-connector-java-5.1.49.tar.gz

4)进入解压得到的mysql-connector-java-5.1.49目录,将mysql驱动文件mysql-connector-java-5.1.49.jar重命名mysql驱动文件的名称(去掉版本号)

cd mysql-connector-java-5.1.49
mv mysql-connector-java-5.1.49.jar mysql-connector-java.jar

5)将MySQL驱动移动到Hive安装目录的lib目录下

mv mysql-connector-java.jar /opt/hive/lib

6)登录Mariadb

mysql -u root -p

7)新建hive数据库,这个hive数据库与hive-site.xml中localhost:3306/hive的hive对应,用来保存hive元数据

create database hive;

8)配置mysql允许hive接入,将所有数据库的所有表的所有权限赋给hive用户,后面的hive是配置hive-site.xml中配置的连接密码:

grant all on *.* to hive@localhost identified by 'hive';

9)刷新mysql系统权限关系表

flush privileges;

重要:修改hive元数据库的编码为latin1,若不修改则会导致在hive cli中使用create database(创建数据库)、create table(创建表)、drop talbe(删除表)等命令时出现卡住或报错而无法正确执行的问题。

alter database hive character set latin1;

10)初始化schema

进入指定的目录

cd /opt/hive/bin

初始化,如果要使用默认的derby数据库则将命令中的mysql替换成derby即可

./schematool -initSchema -dbType mysql

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-m8m8c5Id-1653389985539)(C:\Users\24602\AppData\Roaming\Typora\typora-user-images\1653382941819.png)]

11)启动hive cli测试

注意:由于hive是使用HDFS来存储数据的,而且其语句默认是自动转换成MapReduce程序来执行的,所以在启动hive之前,需要先启动Hadoop集群,否则将启动失败。

(1)启动hadoop集群
start-all.sh
(2)启动Hive cli

需要在/tmp目录下创建一个hive目录

mkdir /tmp/hive
hive

/bin


初始化,如果要使用默认的derby数据库则将命令中的mysql替换成derby即可

```bash
./schematool -initSchema -dbType mysql

[外链图片转存中…(img-m8m8c5Id-1653389985539)]

11)启动hive cli测试

注意:由于hive是使用HDFS来存储数据的,而且其语句默认是自动转换成MapReduce程序来执行的,所以在启动hive之前,需要先启动Hadoop集群,否则将启动失败。

(1)启动hadoop集群
start-all.sh
(2)启动Hive cli

需要在/tmp目录下创建一个hive目录

mkdir /tmp/hive
hive

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-M6NqvkDw-1653389985539)(C:\Users\24602\AppData\Roaming\Typora\typora-user-images\1653383173708.png)]

你可能感兴趣的:(hive,mariadb,数据库)