大数据分析赛 - 数据库环境配置

安装Hive

1.在master节点创建hive的安装目录

mkdir -p /usr/hive

2.解压hive

tar -zxvf /opt/bigbata/apache-hive-2.3.9-bin.tar.gz -C /usr/hive

3.修改环境变量

vi /etc/profile

# 在文件最后添加(注意HIVE_HOME目录)
# Hive env
export HIVE_HOME=/usr/hive/apache-hive-2.3.9-bin 
export PATH=$PATH:$HIVE_HOME/bin

# 重载环境变量
source /etc/profile

4.初始化 Hive 元数据库

在master上使用schematool初始化metastore的schema,初始化的时候注意要将mysql启动

schematool -dbType derby -initSchema

5.启动Hive

hive

6.退出

exit

安装MySQL(rpm)

1.查询并卸载系统自带的数据库:Mariadb

# 找到数据库mariadb,如果有会给出一个结果,结果是mariadb名称
rpm -qa | grep mariadb
# 如果存在就卸载
rpm -e --nodeps [mariadb名称]

2.解压mysql包

# 这里好多人会用tar -zxvf 进行解压会报错,改成 
tar -xvf mysql-5.7.38-1.el7.x86_64.rpm-bundle.tar -C /xxx/xxx/ 

3.执行安装

# 法一
yum localinstall -y install mysql-community-{common,libs,client,server}-*

# 法二
#1、安装依赖common 
rpm -ivh --nodeps --force mysql-community-common-5.7.38-1.el7.x86_64.rpm
#2、安装libs
rpm -ivh --nodeps --force mysql-community-libs-5.7.38-1.el7.x86_64.rpm 
# 
rpm -ivh --nodeps --force mysql-community-libs-compat-5.7.38-1.el7.x86_64.rpm
#3、安装客户端client 
rpm -ivh --nodeps --force mysql-community-client-5.7.38-1.el7.x86_64.rpm 
#4、安装服务server 
rpm -ivh --nodeps --force mysql-community-server-5.7.38-1.el7.x86_64.rpm 

注意:
如果安装server时报错缺少依赖libaio,执行:

yum insatll -y libaio

3.1 初始化数据库

mysqld --initialize --user=mysql

cd /usr/local/mysql/bin/
mysqld --initalize-insecure # 无密码初始化
mysqld --initalize # 有密码初始化,会随机生成一段密码,不好记,建议使用无密码初始化,后面再添加密码

4.检验是否安装成功

rpm -qa | grep mysql

5.查看mysql临时密码,复制到别处

grep 'temporary password' /var/log/mysqld.log`
`cat /var/log/mysqld.log

6.启动MySQL

# 启动
systemctl start mysqld 或者 service mysqld start

# 查看MySQL的状态
ps -ef|grep mysql
service mysqld status

7.使用临时密码登录mysql

mysql -uroot -p
# 输入密码

8.修改登录密码

想要把密码设置简单一点需要调整密码校验强度(low=最低)
set global validate_password_policy=LOW;

修改密码长度限制(任意长度)
set global validate_password_length=6;

正式修改密码
ALTER USER 'root'@'localhost' IDENTIFIED BY '123456';

修改后exit退出
利用修改的密码,登陆数据库

9.设置允许远程访问

# 切换到mysql数据
use mysql;

# 查看用户表(user)
select Host,User from user;

# 把root用户的host列修改为%(%为任何IP都可以访问,可换成具体IP地址。)

grant all privileges on *.* to 'root'@'%' identified by '123456' with grant option;


# 刷新立即生效
flush privileges;

10.退出数据库

exit

11.开通/关闭防火墙

# 第一种:关闭防火墙(centos7关闭防火墙的方式和centos6是不同的)
systemctl stop firewalld
# 第二种:开通防火墙,放开对3306的拦截

firewall-cmd --zone=public --list-ports # 查看防火墙所有开放的端口

firewalld-cmd --zone=public --add-port=3306/tcp --permanent # 开放3306端口

firewall-cmd --zone=public --remove-port=3306/tcp --permanent  #关闭3306端口

firewall-cmd --reload   # 配置立即生效


配置Hive

1. 添加数据驱动包

将mysql的驱动jar包mysql-connector-java-5.1.47-bin.jar拷入hive的lib目录下面: /opt/module/hive/apache-hive-2.1.0-bin/lib/ mysql-connector-java-5.1.47.jar

cp /xxx/xxx/mysql-connector-java-5.1.37.jar /usr/hive/hive-3.1.2/lib/

2. 配置文件

配置hive-env.sh

cd /usr/hive/apache-hive-2.1.1-bin/conf
mv hive-env.sh.template hive-env.sh

请添加图片描述

配置hive-site.xml
进入hive的conf目录下面复制一下hive-default.xml.template名子命名为:hive-site.xml
注意修改URL、密码、元数据要连接的地址、hiveserver2连接的主机名

cp hive-default.xml.template hive-site.xml
vim 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://master: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>123456</value>
    </property>
    <!-- Hive 元数据存储版本的验证 -->
    <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.metastore.uris</name>
        <value>thrift://master:9083</value>
	</property>
	
    <!-- 指定hiveserver2连接的主机名 -->
    <property>
        <name>hive.server2.thrift.bind.host</name>
        <value>master</value>
    </property>

    <!-- 指定hiveserver2连接的端口号 -->
    <property>
        <name>hive.server2.thrift.port</name>
        <value>10000</value>
	</property>
	

</configuration>

3、解决jline的版本冲突

将hive安装目录下的lib目录下的jline复制至hadoop目录下,具体操作如下

cd /usr/hive/apache-hive-2.1.1-bin/lib
cp jline-2.12.jar /usr/hadoop/hadoop-2.7.3/share/hadoop/yarn/lib

4. 登陆 MySQL

mysql -u root -p

5.启动hive验证

每次启动hive前要先启动hadoop集群

在master上操作

cd /usr/hadoop/hadoop-2.7.3
start-dfs.sh 
start-yarn.sh  

slave1上执行,初始化数据库

schematool -dbType mysql -initSchema

请添加图片描述

slave1上执行

cd /usr/hive/apache-hive-2.1.1-bin
bin/hive --service metastore

请添加图片描述

master上执行

cd /usr/hive/apache-hive-2.1.1-bin
bin/hive

输入命令show databases;
请添加图片描述

附. 初始化 Hive 元数据库

在master上使用schematool 初始化metastore的schema,初始化的时候注意要将mysql启动

schematool -initSchema -dbType mysql -verbose

附 安装MySQL(解压版)

1.查询并卸载系统自带的数据库:Mariadb

# 找到数据库mariadb,如果有会给出一个结果,结果是mariadb名称
rpm -qa | grep mariadb
# 如果存在就卸载
rpm -e --nodeps [mariadb名称]

2.创建mysql用户和用户组
为了方便数据库管理,对于安装的MySQL数据库,生产上我们都会建立一个mysql用户和mysql用户组。

# 先检查mysql用户和用户组有没有被使用
cat /etc/group | grep mysql
cat /etc/passwd | grep mysql

#查看mysql用户及用户组
more /etc/passwd | grep mysql
more /etc/group | grep mysql
more /etc/shadow | grep mysql

#删除mysql用户及用户组
userdel mysql
groupdel mysql

# 添加mysql用户组
groupadd mysql
# 添加mysql用户并加入用户组
useradd -g mysql mysql
# 修改mysql用户的登陆密码(这里根据需要设置,可以略过)
passwd mysql

######
useradd -r -g mysql mysql(创建mysql用户并将其添加至mysql用户组)

3.获取安装包和修改名称

# 解压安装包,解压后会有一个mysql-5.7.30-linux-glibc2.12-x86_64.tar.gz包
tar -xvf mysql-5.7.30-linux-glibc2.12-x86_64.tar # 不是gz包不需要z

# 解压mysql-5.7.30-linux-glibc2.12-x86_64.tar.gz包
tar -zxvf mysql-5.7.30-linux-glibc2.12-x86_64.tar.gz -C /xxx/xxx/
# 此时会生成一个目录mysql-5.7.30-linux-glibc2.12-x86_64,将其改名为mysql
mv mysql-5.7.30-linux-glibc2.12-x86_64 mysql


4.目录授权操作

# 按照下面的操作执行
cd /usr/local/
chown -R mysql mysql/
chgrp -R mysql mysql/
cd mysql/
mkdir data
chown -R mysql:mysql data


3.进入mysql文件夹中创建data和log目录用于存放数据和日志

cd mysql
mkdir data
mkdir log

3.将mysql文件夹的所有者改为mysql所属

chown -R mysql:mysql /usr/local/mysql

5.编辑mysql配置文件my.cnf,centos中在etc文件夹下默认有my.cnf文件(vim /etc/my.cnf)需要修改的配置如下:

socket=/temp/mysql.sock(socket通信设置)
basedir=/usr/local/mysql(mysql安装目录)
datadir=/usr/local/mysql/data(数据文件文职)
max_connections=1024(允许最大连接数)
lower_case_table_names(表名是否区分大小写,linux下mysql默认是要区分表名大小写的,0为区分  1为不区分)



默认这个配置文件是不存在的,需要创建,并且填入配置信息。

# 在/usr/local/mysql/目录下创建文件并编辑(使用vi或者vim)
vim my.cnf

具体配置信息:

[mysql]
socket=/var/lib/mysql/mysql.sock
default-character-set=utf8

[mysqld]
socket=/var/lib/mysql/mysql.sock
port=3306
basedir=/usr/local/mysql
datadir=/usr/local/mysql/data
max_connections=200
character-set-server=utf8
default-storage-engine=INNODB
lower_case_table_names=1
max_allowed_packet=16M
explicit_defaults_for_timestamp=true
sql_mode=STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION

[mysql.server]
user=mysql
basedir=/usr/local/mysql

6.安装数据库
进入/usr/local/mysql/目录下,执行安装操作

# 进入目录
cd /usr/local/mysql/
# 执行安装命令
bin/mysql_install_db --user=mysql --basedir=/usr/local/mysql/ --datadir=/usr/local/mysql/data/

安装成功输出的日志如下:

2019-03-08 18:11:07 [WARNING] mysql_install_db is deprecated. Please consider switching to mysqld --initialize
2019-03-08 18:11:24 [WARNING] The bootstrap log isn't empty:
2019-03-08 18:11:24 [WARNING] 2019-03-08T10:11:07.208602Z 0 [Warning] --bootstrap is deprecated. Please consider using --initialize instead

安装成功后设置文件及目录权限:

# 此时还是在mysql目录下执行
cp ./support-files/mysql.server /etc/init.d/mysqld
chown 777 my.cnf
chmod +x /etc/init.d/mysqld


6.初始化MySQL

cd /usr/local/mysql/bin/
mysqld --initalize-insecure(无密码初始化)
mysqld --initalize(有密码初始化,会随机生成一段密码,不好记,建议使用无密码初始化,后面再添加密码)

安装成功后如下图所示:
请添加图片描述

如果初始化报错mysqld: error while loading shared libraries: libaio.so.1则执行以下命令:
yum install libaio-devel.x86_64


service mysqld start(启动mysql服务)
service mysqld stop(停止服务)
service mysqld restart(重启服务)

7.配置环境变量添加mysql安装地址

# 修改配置文件/etc/profile,增加export PATH=$PATH:/usr/local/mysql/bin
vim /etc/profile
增加export PATH=$PATH:/usr/local/mysql/bin(在profile文件末尾添加)
# 立即生效
source /etc/profile

8.启动MySQL

# 启动脚本
/etc/init.d/mysqld restart

9.获取mysql初始密码

cat /root/.mysql_secret
# 输出的结果如下
Password set for user 'root@localhost' at 2019-03-08 17:40:42
poc3u0mO_luv # 这个就是对应的初始密码,随机生成的

修改密码和存在的问题解决方案

mysql -uroot -p # 登陆数据库
mysql -u root -p # 无密码初始化直接登录,有密码初始化输入随机生成的那串密码登录
# 此时输入密码后可能出现下面的问题
Can't connect to local MySQL server through socket '/tmp/mysql.sock'
# 解决方案如下:
# 首先保证在my.cnf文件中socket的配置如下:
[mysqld]
socket = /var/lib/mysql/mysql.sock
# 然后对/tmp/mysql.sock和/var/lib/mysql/mysql.sock建立软连接
ln -s /var/lib/mysql/mysql.sock /tmp/mysql.sock

上面的问题解决后重新输入用户名密码即可进入到mysql,可以将密码修改成自己的

-- 执行语句如下
ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY '123456';
flush privileges;
-- 操作结束后,通过exit命令退出,然后重新登录,验证修改的密码是否生效

修改root密码
ALTER USER 'root'@'localhost' IDENTIFIED BY 'root';

10.添加远程访问权限

-- 登录数据
-- 切换到mysql数据库
use mysql;
-- 更新权限
update user set host='%' where user = 'root';
-- 查询一下是否修改成功
select host,user from user;
-- 结果如下表示成功,root用户的host已经修改为'%'
--+-----------+---------------+
--| host      | user          |
--+-----------+---------------+
--| %         | root          |
--| localhost | mysql.session |
--| localhost | mysql.sys     |
--+-----------+---------------+
-- 上面的修改结束后,退出数据库,重启数据库服务生效
/etc/init.d/mysqld restart


开启数据库远程连接,默认只允许本机连接;

GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY 'root' WITH GRANT OPTION; (允许root用户可以从任何主机连接到mysql服务;如果要指定ip连接的话将%改为要允许连接的ip即可)
FLUSH PRIVILEGES;(使其生效)

11.设置开机自启动服务

# 将mysqld服务加入到系统服务
chkconfig --level 35 mysqld on
# 检查mysqld服务是否已经生效
chkconfig --list mysqld
# 增加mysqld服务控制脚本执行权限
chmod +x /etc/init.d/mysqld


添加服务并设置开机自启
1、将mysql脚本复制到etc资源目录
cp -a /usr/local/mysql/support-files/mysql.server /etc/rc.d/init.d/mysqld
2、修改资源目录下mysqld的可执行权限
chmod +x /etc/rc.d/init.d/mysqld

3、添加为系统服务

chkconfig --add mysqld(添加为系统服务)
chkconfig --list(查看系统服务列表,如果mysqld 3/4/5状态为on则表添加成功)
chkconfig --level 345 mysqld on(如果3/4/5为off则执行该命令开启)

4、启动MySQL

service mysqld start(启动mysql服务)
service mysqld stop(停止服务)
service mysqld restart(重启服务)

12.开通/关闭防火墙

# 第一种:关闭防火墙(centos7关闭防火墙的方式和centos6是不同的)
systemctl stop firewalld
# 第二种:开通防火墙,放开对3306的拦截

firewall-cmd --zone=public --list-ports # 查看防火墙所有开放的端口

firewalld-cmd --zone=public --add-port=3306/tcp --permanent # 开放3306端口

firewall-cmd --zone=public --remove-port=3306/tcp --permanent  #关闭3306端口

firewall-cmd --reload   # 配置立即生效
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值