实验环境:
centos7
Mysql-5.7.24 使用yum源下载
hive-2.3.0
只需要在主节点完成即可
一、安装mysql
1.下载yum源
首先查看本机是否有自带数据库,如果有先卸载自带数据库
rpm -qa |grep mysql
rpm -qa|grep mariadb
删除
rpm -e --nodeps mariadb-libs-5.5.60-1.el7_5.x86_64
下载yum源,https://dev.mysql.com/downloads/repo/yum/
找到对应linux版本的源,这里使用的是red hat7所对应的yum源
2.安装源
进入到浏览器下载文件保存的位置(在此位置为‘下载’目录下),安装yum源
yum localinstall mysql80-community-release-el7-1.noarch.rpm
安装完成后可以用指令进行查看是否有相关文件
yum repolist enabled | grep "mysql.*-community.*"
3.设置mysql版本
设置要安装的版本,这里使用的是5.7,默认的版本为8
编辑文件
vim /etc/yum.repos.d/mysql-community.repo
修改mysql版本的enabled和gpgcheck的值,将想要下载的版本的enabled改为1,将默认版本的enabled改为0
4.安装mysql
yum install mysql-community-server //安装过程中一路y即可
5.启动服务
开启服务
service mysqld start 或 systemctl start mysqld
查看服务状态
service mysqld status 或 systemctl status mysqld
设置自启动(可选)
systemctl enable mysqld
6.修改密码
刚安装完成的mysql密码是随机的,无法直接登录,需要通过查看日志文件找到默认密码或者是修改配置文件后修改密码之后才可以登录
方法一:查找日志文件,找到默认密码
登录mysql
mysql -u root -p
此时随意输入密码,提示错误后查找日志
grep 'temporary password' /var/log/mysqld.log
可以看到localhost后( qhn:h)s2SPDj )即为随机密码,登录时用此密码即可登录
(需要注意的是,即使可以登录了还是需要修改一次密码,详细看下文修改密码安全策略)
方法二:修改配置文件,修改密码
编辑文件/etc/my.cnf
vi /etc/my.cnf
在末尾添加
skip-grant-tables
进入mysql
mysql -u root -p
use mysql
修改密码为root
update mysql.user set authentication_string=password('root') where user='root';
退出
exit
进入配置文件中将之前添加的skip-grant-tables注释或者删除
重启服务
service mysqld restart
7.修改mysql的密码安全策略
第一次安装完成后,即使修改了密码用root登录后还是会提示需要修改密码,此时需要按照标准进行修改,修改完成后修改配置参数,再重新还原。
登录后选择数据库时会提示需要修改密码
此时需要修改密码,但如果设置的比较简单,没有同时出现大写字母,小写字母,数字,特殊字符的话是没有办法修改的,例如
SET PASSWORD = PASSWORD('root');
所以,需要先设置一个复杂的密码,例如
alter user'root'@'localhost' IDENTIFIED BY 'MyNewPass@123';
设置完成后即可登录,选择数据库后,设置密码安全策略
首先,查看信息,如果是空的话则说明没有安装validate_password插件,此插件是默认安装的。
SHOW VARIABLES LIKE 'validate_password%';
设置参数
set global validate_password_policy=0; //设置等级为0,即不限制大小写字符和特殊字符等
set global validate_password_length=4; //设置密码长度,最短为4
设置完成后查询,参数发生改变即为正确
SHOW VARIABLES LIKE 'validate_password%';
设置完成后,即可将密码修改为简单的密码
alter user'root'@'localhost' IDENTIFIED BY 'root';
8.设置root远程连接数据库
登录选择数据库后,输入
grant all privileges on *.* to 'root'@'%' identified by 'root';
grant all privileges 表示赋于所有权限
on *.* 表示mysql中的所有数据对象
to ‘root’@’%’ 表示给root赋权,%允许root从任意ip连接
identified by ‘root’ 表示root从远程登录时使用的密码
从本机登录时还可以使用之前的密码
flush privileges; 刷新权限
如果出现提示密码不够安全的情况请按照步骤7设置安全策略
9.mysql修改字符集
查看当前字符集设置
show variables like "char%";
编辑配置文件/etc/my.cnf,添加
character_set_server=utf8
重启服务重新登录后查看发现全部都变成了utf8
二、hive安装
1.解压,重命名为hive-2.3.0
tar -zxvf apache-hive-2.3.0-bin.tar.gz
mv apache-hive-2.3.0-bin hive-2.3.0
2.将mysql-connector复制到hive/lib下
下载地址 https://mvnrepository.com/artifact/mysql/mysql-connector-java
cp mysql-connector-java-5.1.44.jar hive-2.3.0/lib/
3.配置环境变量
vi /etc/profile
添加
export HIVE_HOME=/home/hadoop/hive-2.3.0
export PATH=$PATH:$HIVE_HOME/bin
更新环境变量
source /etc/profile
4.进入conf配置文件中,将文件进行重命名
mv hive-env.sh.template hive-env.sh
mv hive-default.xml.template hive-default.xml
mv hive-log4j2.properties.template hive-log4j2.properties
mv hive-exec-log4j2.properties.template hive-exec-log4j2.properties
cp hive-default.xml hive-site.xml
5.启动hadoop集群,创建文件
hdfs dfs -mkdir -p /user/hive/warehouse
hdfs dfs -mkdir -p /user/hive/tmp
hdfs dfs -mkdir -p /user/hive/log
hdfs dfs -chmod -R 777 /user
6.创建本地目录
mkdir -p /home/hadoop/hive-2.3.0/tmp
chmod -R 777 /home/hadoop/hive-2.3.0/tmp
7.修改hive-site.xml
可以使用vim的查找功能,直接定位到具体的项,在命令行下输入/+内容,例如第一个为
/hive.exec.scratchdir 按n键 向下查找,N(shift+n)向上查找
修改hive.exec.scratchdir
<property>
<name>hive.exec.scratchdir</name>
<value>/user/hive/tmp</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>
修改 hive.metastore.warehouse.dir
property>
<name>hive.metastore.warehouse.dir</name>
<value>/user/hive/warehouse</value>
<description>location of default database for the warehouse</description>
</property>
修改hive.querylog.location
<property>
<name>hive.querylog.location</name>
<value>/user/hive/log</value>
<description>Location of Hive run time structured log file</description>
</property>
修改javax.jdo.option.ConnectionURL
<property>
<name>javax.jdo.option.ConnectionURL</name>
<value>jdbc:mysql://localhost:3306/hive?createDatabaseIfNotExist=true&characterEncoding=UTF-8&useSSL=false</value>
<description>
JDBC connect string for a JDBC metastore.
To use SSL to encrypt/authenticate the connection, provide database-specific SSL flag in the connection URL.
For example, jdbc:postgresql://myhost/db?ssl=true for postgres database.
</description>
</property>
修改javax.jdo.option.ConnectionDriverName
<property>
<name>javax.jdo.option.ConnectionDriverName</name>
<value>com.mysql.jdbc.Driver</value>
<description>Driver class name for a JDBC metastore</description>
</property>
修改javax.jdo.option.ConnectionUserName
<property>
<name>javax.jdo.option.ConnectionUserName</name>
<value>root</value>
<description>Username to use against metastore database</description>
</property>
修改javax.jdo.option.ConnectionPassword
<property>
<name>javax.jdo.option.ConnectionPassword</name>
<value>root</value>
<description>password to use against metastore database</description>
</property>
将文件中的${system:java.io.tmpdir}替换为 /home/hadoop/hive-2.3.0/tmp (对应自己创建的tmp目录位置)
{system:user.name} 改成 {user.name}
替换hive.exec.local.scratchdir
<property>
<name>hive.exec.local.scratchdir</name>
<value>/home/hadoop/hive-2.3.0/tmp/${user.name}</value>
<description>Local scratch space for Hive jobs</description>
</property>
替换hive.downloaded.resources.dir
<property>
<name>hive.downloaded.resources.dir</name>
<value>/home/hadoop/hive-2.3.0/tmp/${hive.session.id}_resources</value>
<description>Temporary local directory for added resources in the remote file system.</description>
</property>
替换hive.server2.logging.operation.log.location
<property>
<name>hive.server2.logging.operation.log.location</name>
<value>/home/hadoop/hive-2.3.0/tmp/${user.name}/operation_logs</value>
<description>Top level directory where operation logs are stored if logging functionality is enabled</description>
</property>
8.初始化hive
schematool -dbType mysql -initSchema
有可能会有jar包重复的提示,如果有的话则进入hive的lib中将重复的包删除,然后删除mysql中的hive表,重新进行初始化hive
9.进入hive
直接输入hive
查看数据库
show databases
查看表
show tables
10.退出hive
exit