1.前言
2.安装配置mysql
由于CentOS7之后会在系统中自带一个免费的数据库:mariadb,并且它的驱动和mysql的驱动是有冲突的,所以我们必须先要卸载他。(ps.mariadb和mysql是同一个作者创作的数据库,由于权益等其他问题才分开的,所以有兴趣的同志可以研究一下。)
首先用rpm命令查看一下是否有mariadb,然后再删除:
1rpm -qa | grep -i mariadb
可能会出现这种情况:
然后我们用rpm命令删除这个版本的mariadb:
1rpm -e --nodeps mariadb-libs-5.5.56-2.el7.x86_64
这个名字在不同版本的系统上可能不一样,大家需要注意。
如果是centos7之前的版本的话,可能会自带mysql,这是我们需要按照上述步骤删除mysql,这里不再赘述。
由于mysql的server端需要perl语言的支持,因此我们还需要在系统中安装perl支持:
1yum install perl -y
安装mysql,由于我们上面解压出来的几个rpm包有依赖关系,所以我们需要按照顺序执行安装
1
2
3
4rpm -ivh mysql-community-common-5.7.25-1.el7.x86_64.rpm
rpm -ivh mysql-community-libs-5.7.25-1.el7.x86_64.rpm
rpm -ivh mysql-community-client-5.7.25-1.el7.x86_64.rpm
rpm -ivh mysql-community-server-5.7.25-1.el7.x86_64.rpm
现在我们来配置mysql的启动,个人比较推荐使用服务的方式启动(centos7特有):
1systemctl start mysqld.service
我们在启动了mysql之后,这个时候等待一段时间,数据库需要进行初始化,这个时候我们可以看一下数据库的日志,会发现mysql帮我们初始化了一个root用户:
1cat /var/log/mysqld.log
这里的初始密码是:e0Kea-ah-eOn
由于服务已经启动了,所以可以用root和这个密码登陆了:
1mysql -u root -p
修改密码
1
2
3
4
5
6
7
8mysql> set password = password('123456');
ERROR 1819 (HY000): Your password does not satisfy the current policy requirements
mysql> set global validate_password_policy=0;
mysql> set global validate_password_length=1;
mysql> set global validate_password_mixed_case_count=2;
mysql> set password = password('123456');
mysql> grant all privileges on *.* to 'root' @'%' identified by '123456';
mysql> flush privileges;
设置开机启动
1chkconfig mysqld on
至此,我们的mysql数据库就已经安装完成,并能随系统启动和外部访问了。
3.安装hive
创建hive安装目录
1mkdir -p /usr/hive/
在/usr/hive目录下解压apache-hive-2.3.4-bin.tar.gz文件
1tar -xzvf apache-hive-2.3.4-bin.tar.gz
配置hive环境变量
1vi /etc/profile
1
2export HIVE_HOME=/usr/hive/apache-hive-2.3.4-bin
export PATH=${HIVE_HOME}/bin:$PATH
1source /etc/profile
4.配置hive
配置hive-site.xml
hive-site.xml配置可以参考hive配置文件目录下的hive-default.xml.template
其中ConnectionUserName和ConnectionPassword为mysql远程访问的用户名和密码,metadata为mysql数据库,随自己习惯命名。
1
2cd /usr/hive/apache-hive-2.3.4-bin/conf/
vi hive-site.xml
修改成如下内容
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27<?xml version="1.0" encoding="UTF-8" standalone="no"?>
javax.jdo.option.ConnectionURL
jdbc:mysql://10.7.130.148:3306/metadata?&createDatabaseIfNotExist=true&characterEncoding=UTF-8&useSSL=false
javax.jdo.option.ConnectionUserName
root
javax.jdo.option.ConnectionPassword
123456
javax.jdo.option.ConnectionDriverName
com.mysql.jdbc.Driver
datanucleus.schema.autoCreateAll
true
hive.metastore.schema.verification
false
注意:这里的hive-site.xml并没有配置hive.metastore.warehouse.dir属性,但是默认还是读取hdfs文件系统里面的/user/hive/warehouse,这里的hive.metastore.warehouse.dir很重要,在接下来配置spark与hive元数据共享上,spark-sql对接hdfs上都有体现,具体参考这里 Spark安装配置,单机模式(对接Hive,Hadoop)。这里暂时就不做配置了。
配置hive-env.sh
1
2cp hive-env.sh.template hive-env.sh
vi hive-env.sh
1
2HADOOP_HOME=/usr/hadoop/hadoop-2.7.0
export HIVE_CONF_DIR=/usr/hive/apache-hive-2.3.4-bin/conf
具体位置如图:
加载mysql驱动(注意版本问题)
我这里使用的是mysql-connector-java-5.1.32.jar,将其放到hive的lib目录下。
具体路径:/usr/hive/apache-hive-2.3.4-bin/lib
初始化数据库
1schematool -initSchema -dbType mysql
启动hive
启动hive之前先启动hadoop,不然会报Connection refused异常,在命令行jps看一下hadoop是否启动成功然后启动hive。
1hive
然后简单的测试
1show databases;
出现如下图所示即代表配置成功!